albex 0.3.0 → 0.6.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/CHANGELOG.md +275 -0
- package/README.md +4 -2
- package/dist/albex-worker.js +1 -1
- package/dist/albex.d.ts +157 -17
- package/dist/albex.d.ts.map +1 -1
- package/dist/albex.js +405 -232
- package/dist/albex.js.map +1 -1
- package/dist/errors.d.ts +16 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -3
- package/dist/errors.js.map +1 -1
- package/dist/persistence.js +1 -1
- package/dist/profile.d.ts +11 -6
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +6 -13
- package/dist/profile.js.map +1 -1
- package/dist/resource-manager.js +1 -1
- package/dist/tiered-store.js +1 -1
- package/dist/wasm-bindings.d.ts +46 -5
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +102 -7
- package/dist/wasm-bindings.js.map +1 -1
- package/dist/worker-protocol.js +1 -1
- package/dist/worker-runtime.js +12 -3
- package/dist/worker-runtime.js.map +1 -1
- package/package.json +13 -9
- package/src/albex.ts +478 -246
- package/src/errors.ts +18 -2
- package/src/profile.ts +11 -10
- package/src/wasm-bindings.ts +157 -8
- package/src/worker-runtime.ts +12 -2
- package/wasm/pkg/albex_pdf.wasm +0 -0
- package/wasm/pkg/albex_wasm.wasm +0 -0
- package/wasm/pkg/albex_wasm_bg.wasm +0 -0
- package/wasm/pkg/albex_wasm_simd.wasm +0 -0
- package/wasm/pkg/albex_wasm_mini.wasm +0 -0
- package/wasm/pkg/albex_wasm_mini_simd.wasm +0 -0
- package/wasm/pkg/albex_wasm_pro.wasm +0 -0
- package/wasm/pkg/albex_wasm_pro_simd.wasm +0 -0
- package/wasm/pkg/albex_wasm_std.wasm +0 -0
- package/wasm/pkg/albex_wasm_std_simd.wasm +0 -0
package/dist/wasm-bindings.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* albex v0.
|
|
2
|
+
* albex v0.6.0
|
|
3
3
|
* Zero-config local full-text search for documents — runs entirely in the browser, no server, no upload.
|
|
4
4
|
* (c) 2026 RafaCalRob
|
|
5
5
|
* @license MIT
|
|
@@ -17,17 +17,112 @@
|
|
|
17
17
|
* in `wasm/src/lib.rs` and `pdf-wasm/src/lib.rs`.
|
|
18
18
|
*/
|
|
19
19
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
-
//
|
|
20
|
+
// Runtime validators
|
|
21
21
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
//
|
|
23
|
+
// These replace the pre-0.5.0 `as unknown as` casts. They check three
|
|
24
|
+
// things at instantiation time:
|
|
25
|
+
// 1. memory is a WebAssembly.Memory instance.
|
|
26
|
+
// 2. abiVersion() returns a number inside the supported range.
|
|
27
|
+
// 3. every required export exists and is a function.
|
|
28
|
+
//
|
|
29
|
+
// If any of these fails, the loader throws a typed error before the
|
|
30
|
+
// engine returns from init(). This eliminates the audit 3.2 issue:
|
|
31
|
+
// previously a missing export only surfaced when its call site ran.
|
|
32
|
+
/** Range of ABI versions this host code understands for the main module.
|
|
33
|
+
* Update both ends together with the Rust `abiVersion()` constant when
|
|
34
|
+
* the export surface changes. */
|
|
35
|
+
// 0.6.0 requires ABI 3 (trigram pre-filter + getLastIndexOverflow). The
|
|
36
|
+
// required-exports list below already makes any older binary fail the
|
|
37
|
+
// missing-exports check, so a tolerant lower bound was dead code — the range
|
|
38
|
+
// is pinned to the one ABI this host actually speaks (audit 0.6.0, finding #7).
|
|
39
|
+
const MAIN_ABI_MIN = 3;
|
|
40
|
+
const MAIN_ABI_MAX = 3;
|
|
41
|
+
/** Range of ABI versions for the PDF module. */
|
|
42
|
+
const PDF_ABI_MIN = 1;
|
|
43
|
+
const PDF_ABI_MAX = 3;
|
|
44
|
+
/** Required function names on the main WASM. Adding a new one here forces
|
|
45
|
+
* the validator to check it; removing one is a breaking ABI bump. */
|
|
46
|
+
const MAIN_REQUIRED = [
|
|
47
|
+
'abiVersion', 'getBuffer', 'init',
|
|
48
|
+
'setDocumentName', 'beginDocument', 'feedXmlBytes', 'endDocument',
|
|
49
|
+
'beginXlsx', 'feedXlsxBytes',
|
|
50
|
+
'feedText', 'flushParagraph',
|
|
51
|
+
'setMaxErrors', 'setThreshold', 'setMaxResults',
|
|
52
|
+
'prepareQuery', 'getQueryKind', 'getQueryBranchCount',
|
|
53
|
+
'getQueryBranchPattern', 'selectQueryBranch',
|
|
54
|
+
'setPattern', 'search',
|
|
55
|
+
'searchBegin', 'searchSlice', 'getSearchCursor', 'getSearchTotal',
|
|
56
|
+
'getResultCount',
|
|
57
|
+
'getResultDocId', 'getResultLocation', 'getResultScore',
|
|
58
|
+
'getResultStart', 'getResultEnd', 'getResultChunkIdx',
|
|
59
|
+
'getResultDocName', 'getResultMatchCount',
|
|
60
|
+
'getResultMatchStartAt', 'getResultMatchEndAt',
|
|
61
|
+
'getSnippet', 'getSnippetWindow', 'getSnippetWindowOffset',
|
|
62
|
+
'getStatBloomTested', 'getStatBloomPassed', 'getStatBitapMatched',
|
|
63
|
+
'getChunkCount', 'getDocCount', 'getTextUsed', 'getTextCapacity',
|
|
64
|
+
'getLastIndexOverflow',
|
|
65
|
+
'snapshotSize', 'snapshotChunk',
|
|
66
|
+
'restoreBegin', 'restoreFeed', 'restoreCommit',
|
|
67
|
+
'getDocId', 'getDocChunkCount', 'getDocName', 'isDocDeleted',
|
|
68
|
+
'removeDocument', 'compact',
|
|
69
|
+
'setLanguage',
|
|
70
|
+
'getTier', 'getMaxChunks', 'getMaxDocs', 'getNameCapacity',
|
|
71
|
+
'getChunksPtr', 'getChunkStructSize',
|
|
72
|
+
'setCandidateMask', 'clearCandidateMask',
|
|
73
|
+
'getDocContentHashPtr', 'getDocContentHashLen', 'setDocumentContentHash',
|
|
74
|
+
'hashBegin', 'hashFeed', 'hashFinish',
|
|
75
|
+
];
|
|
76
|
+
const PDF_REQUIRED = [
|
|
77
|
+
'abiVersion', 'allocInput', 'extractPdf',
|
|
78
|
+
'getPageLen', 'getPagePtr', 'getErrorLen', 'getErrorPtr',
|
|
79
|
+
'getPageCount', 'extractPageImages',
|
|
80
|
+
'getPageImageLen', 'getPageImagePtr', 'getPageImageKind',
|
|
81
|
+
];
|
|
82
|
+
/** Thrown when an instantiated WASM module fails the ABI contract. */
|
|
83
|
+
export class AlbexAbiMismatchError extends Error {
|
|
84
|
+
module;
|
|
85
|
+
missing;
|
|
86
|
+
version;
|
|
87
|
+
constructor(module, message, opts) {
|
|
88
|
+
super(message);
|
|
89
|
+
this.name = 'AlbexAbiMismatchError';
|
|
90
|
+
this.module = module;
|
|
91
|
+
if (opts?.missing)
|
|
92
|
+
this.missing = opts.missing;
|
|
93
|
+
if (opts?.version !== undefined)
|
|
94
|
+
this.version = opts.version;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function validateExports(exports, required, module, abiMin, abiMax) {
|
|
98
|
+
const mem = exports['memory'];
|
|
99
|
+
if (!(mem instanceof WebAssembly.Memory)) {
|
|
100
|
+
throw new AlbexAbiMismatchError(module, `${module}: \`memory\` is missing or not a WebAssembly.Memory instance.`);
|
|
101
|
+
}
|
|
102
|
+
const missing = [];
|
|
103
|
+
for (const name of required) {
|
|
104
|
+
if (typeof exports[name] !== 'function')
|
|
105
|
+
missing.push(name);
|
|
106
|
+
}
|
|
107
|
+
if (missing.length) {
|
|
108
|
+
throw new AlbexAbiMismatchError(module, `${module}: WASM binary missing required exports: ${missing.join(', ')}. ` +
|
|
109
|
+
`The .wasm was built with an incompatible source — rebuild with the current toolchain.`, { missing });
|
|
110
|
+
}
|
|
111
|
+
const version = exports['abiVersion']();
|
|
112
|
+
if (version < abiMin || version > abiMax) {
|
|
113
|
+
throw new AlbexAbiMismatchError(module, `${module}: abiVersion ${version} outside supported range [${abiMin}..${abiMax}]. ` +
|
|
114
|
+
`The host TypeScript expects a different binary — upgrade albex or rebuild the WASM.`, { version });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Validate and narrow `WebAssembly.Exports` to the typed Albex main
|
|
118
|
+
* interface. Throws `AlbexAbiMismatchError` if the contract is broken. */
|
|
27
119
|
export function asAlbexExports(exports) {
|
|
120
|
+
validateExports(exports, MAIN_REQUIRED, 'main', MAIN_ABI_MIN, MAIN_ABI_MAX);
|
|
28
121
|
return exports;
|
|
29
122
|
}
|
|
123
|
+
/** Validate and narrow `WebAssembly.Exports` to the typed PDF interface. */
|
|
30
124
|
export function asAlbexPdfExports(exports) {
|
|
125
|
+
validateExports(exports, PDF_REQUIRED, 'pdf', PDF_ABI_MIN, PDF_ABI_MAX);
|
|
31
126
|
return exports;
|
|
32
127
|
}
|
|
33
128
|
//# sourceMappingURL=wasm-bindings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-bindings.js","sourceRoot":"","sources":["../src/wasm-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"wasm-bindings.js","sourceRoot":"","sources":["../src/wasm-bindings.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-protocol.js
CHANGED
package/dist/worker-runtime.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* albex v0.
|
|
2
|
+
* albex v0.6.0
|
|
3
3
|
* Zero-config local full-text search for documents — runs entirely in the browser, no server, no upload.
|
|
4
4
|
* (c) 2026 RafaCalRob
|
|
5
5
|
* @license MIT
|
|
@@ -77,8 +77,8 @@ async function dispatch(op) {
|
|
|
77
77
|
return ensureEngine().listSnapshots();
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
|
|
81
|
-
const { id, op } =
|
|
80
|
+
async function handle(req) {
|
|
81
|
+
const { id, op } = req;
|
|
82
82
|
try {
|
|
83
83
|
const result = await dispatch(op);
|
|
84
84
|
const res = { id, ok: true, result };
|
|
@@ -96,5 +96,14 @@ self.onmessage = async (ev) => {
|
|
|
96
96
|
};
|
|
97
97
|
self.postMessage(res);
|
|
98
98
|
}
|
|
99
|
+
}
|
|
100
|
+
// Process messages strictly in arrival order. The engine guards its own
|
|
101
|
+
// state, but a sync `search` arriving mid-`indexFile` await would otherwise
|
|
102
|
+
// be rejected as "busy"; queueing keeps the worker's externally-observable
|
|
103
|
+
// behaviour serial and matches the main-thread engine's serialization.
|
|
104
|
+
let _queue = Promise.resolve();
|
|
105
|
+
self.onmessage = (ev) => {
|
|
106
|
+
const req = ev.data;
|
|
107
|
+
_queue = _queue.then(() => handle(req));
|
|
99
108
|
};
|
|
100
109
|
//# sourceMappingURL=worker-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../src/worker-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrD,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,SAAS,YAAY;IACnB,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAY;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,gEAAgE;YAChE,2BAA2B;YAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,gBAAgB;YACnB,OAAO,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,KAAK,SAAS;YACZ,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;QACnC,KAAK,oBAAoB;YACvB,OAAO,YAAY,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAC7C,KAAK,cAAc;YACjB,OAAO,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC1C,KAAK,cAAc;YACjB,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,KAAK,cAAc;YACjB,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe;YAClB,YAAY,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,KAAK,aAAa;YAChB,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM;YACT,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,YAAY;YACf,OAAO,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,gBAAgB;YACnB,OAAO,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,eAAe;YAClB,OAAO,YAAY,EAAE,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../src/worker-runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "albex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Zero-config local full-text search for documents — runs entirely in the browser, no server, no upload.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/albex.js",
|
|
@@ -42,18 +42,21 @@
|
|
|
42
42
|
],
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc && node scripts/banner.mjs",
|
|
45
|
-
"prepublishOnly": "npm run build",
|
|
46
|
-
"build:wasm": "node scripts/build-wasm.mjs
|
|
47
|
-
"build:wasm:
|
|
48
|
-
"build:wasm
|
|
49
|
-
"build:
|
|
50
|
-
"build:pdf-wasm": "cd pdf-wasm && cargo build --target wasm32-unknown-unknown --release && cp ../target/wasm32-unknown-unknown/release/albex_pdf.wasm ../wasm/pkg/albex_pdf.wasm && node scripts/wasm-banner.mjs",
|
|
51
|
-
"build:all": "npm run build:wasm:tiers && npm run build:pdf-wasm && npm run build",
|
|
45
|
+
"prepublishOnly": "npm run build:all && npm test",
|
|
46
|
+
"build:wasm": "node scripts/build-wasm.mjs && node scripts/wasm-banner.mjs",
|
|
47
|
+
"build:wasm:baseline": "node scripts/build-wasm.mjs --no-simd && node scripts/wasm-banner.mjs",
|
|
48
|
+
"build:pdf-wasm": "node scripts/build-pdf-wasm.mjs && node scripts/wasm-banner.mjs",
|
|
49
|
+
"build:all": "npm run build:wasm && npm run build:pdf-wasm && npm run build",
|
|
52
50
|
"typecheck": "tsc --noEmit",
|
|
53
51
|
"test": "vitest run",
|
|
54
52
|
"test:watch": "vitest",
|
|
55
53
|
"bench": "vitest bench --run",
|
|
56
|
-
"
|
|
54
|
+
"test:e2e": "playwright test",
|
|
55
|
+
"build:ocr": "npm --prefix packages/ocr run build",
|
|
56
|
+
"clean": "node scripts/clean.mjs",
|
|
57
|
+
"clean:all": "node scripts/clean.mjs --all",
|
|
58
|
+
"serve": "npx --yes serve@14 -p 5173 -L .",
|
|
59
|
+
"relaunch": "npm run clean && npm run build:all && npm run build:ocr && npm test && npm pack && node scripts/relaunch-banner.mjs && npm run serve"
|
|
57
60
|
},
|
|
58
61
|
"repository": {
|
|
59
62
|
"type": "git",
|
|
@@ -94,6 +97,7 @@
|
|
|
94
97
|
"node": ">=18"
|
|
95
98
|
},
|
|
96
99
|
"devDependencies": {
|
|
100
|
+
"@playwright/test": "^1.60.0",
|
|
97
101
|
"typescript": "^5.4.0",
|
|
98
102
|
"vitest": "^2.0.0"
|
|
99
103
|
}
|