Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| lib | ||
| browser.js | ||
| index.js | ||
| LICENSE | ||
| package.json | ||
| react-native.js | ||
| README.md | ||
Buffer for Array
Buffer for Array (B4A) provides a set of functions for bridging the gap between the Node.js Buffer class and the Uint8Array class. A browser compatibility layer is also included, making it possible to use B4A in both Node.js and browsers without having to worry about whether you're dealing with buffers or typed arrays.
Installation
npm i b4a
React Native
When imported from React Native b4a will make use of react-native-b4a for optimised buffer operations when available. All you need to do is install it:
npm i react-native-b4a
API
b4a.isBuffer(value)
See https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj
This will also return true when passed a Uint8Array.
b4a.isEncoding(encoding)
See https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding
b4a.alloc(size[, fill[, encoding]])
See https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding
b4a.allocUnsafe(size)
See https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize
b4a.allocUnsafeSlow(size)
See https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize
b4a.byteLength(string)
See https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding
b4a.compare(buf1, buf2)
See https://nodejs.org/api/buffer.html#static-method-buffercomparebuf1-buf2
b4a.concat(buffers[, totalLength])
See https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength
b4a.copy(source, target[, targetStart[, sourceStart[, sourceEnd]]])
See https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend
b4a.equals(buf1, buf2)
See https://nodejs.org/api/buffer.html#bufequalsotherbuffer
b4a.fill(buffer, value[, offset[, end]][, encoding])
See https://nodejs.org/api/buffer.html#buffillvalue-offset-end-encoding
b4a.from(array)
See https://nodejs.org/api/buffer.html#static-method-bufferfromarray
b4a.from(arrayBuffer[, byteOffset[, length]])
See https://nodejs.org/api/buffer.html#static-method-bufferfromarraybuffer-byteoffset-length
b4a.from(buffer)
See https://nodejs.org/api/buffer.html#static-method-bufferfrombuffer
b4a.from(string[, encoding])
See https://nodejs.org/api/buffer.html#static-method-bufferfromstring-encoding
b4a.includes(buffer, value[, byteOffset][, encoding])
See https://nodejs.org/api/buffer.html#bufincludesvalue-byteoffset-encoding
b4a.indexOf(buffer, value[, byteOffset][, encoding])
See https://nodejs.org/api/buffer.html#bufindexofvalue-byteoffset-encoding
b4a.lastIndexOf(buffer, value[, byteOffset][, encoding])
See https://nodejs.org/api/buffer.html#buflastindexofvalue-byteoffset-encoding
b4a.swap16(buffer)
See https://nodejs.org/api/buffer.html#bufswap16
b4a.swap32(buffer)
See https://nodejs.org/api/buffer.html#bufswap32
b4a.swap64(buffer)
See https://nodejs.org/api/buffer.html#bufswap64
b4a.toBuffer(buffer)
Convert a buffer to its canonical representation. In Node.js, the canonical representation is a Buffer. In the browser, the canonical representation is a Uint8Array.
b4a.toString(buffer, [encoding[, start[, end]]])
See https://nodejs.org/api/buffer.html#buftostringencoding-start-end
b4a.write(buffer, string[, offset[, length]][, encoding])
See https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding
b4a.writeDoubleLE(buffer, value[, offset])
See https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset
b4a.writeFloatLE(buffer, value[, offset])
See https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset
b4a.writeUInt32LE(buffer, value[, offset])
https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset
b4a.writeInt32LE(buffer, value[, offset])
See https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset
b4a.readDoubleLE(buffer[, offset])
See https://nodejs.org/api/buffer.html#bufreaddoubleleoffset
b4a.readFloatLE(buffer[, offset])
See https://nodejs.org/api/buffer.html#bufreadfloatleoffset
b4a.readUInt32LE(buffer[, offset])
See https://nodejs.org/api/buffer.html#bufreaduint32leoffset
b4a.readInt32LE(buffer[, offset])
See https://nodejs.org/api/buffer.html#bufreadint32leoffset
License
Apache 2.0