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>
97 lines
3.2 KiB
JSON
97 lines
3.2 KiB
JSON
{
|
|
"name": "@sec-ant/readable-stream",
|
|
"description": "A tiny, zero-dependency yet spec-compliant asynchronous iterator polyfill/ponyfill for ReadableStreams.",
|
|
"private": false,
|
|
"version": "0.4.1",
|
|
"type": "module",
|
|
"files": ["./dist"],
|
|
"main": "./dist/index/index.js",
|
|
"module": "./dist/index/index.js",
|
|
"exports": {
|
|
".": "./dist/index/index.js",
|
|
"./asyncIterator": "./dist/index/asyncIterator.js",
|
|
"./fromAnyIterable": "./dist/index/fromAnyIterable.js",
|
|
"./ponyfill": "./dist/ponyfill/index.js",
|
|
"./ponyfill/asyncIterator": "./dist/ponyfill/asyncIterator.js",
|
|
"./ponyfill/fromAnyIterable": "./dist/ponyfill/fromAnyIterable.js",
|
|
"./polyfill": "./dist/polyfill/index.js",
|
|
"./polyfill/asyncIterator": "./dist/polyfill/asyncIterator.js",
|
|
"./polyfill/fromAnyIterable": "./dist/polyfill/fromAnyIterable.js",
|
|
"./async-iterator": {
|
|
"types": "./dist/types/async-iterator.d.ts"
|
|
}
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/Sec-ant/readable-stream.git"
|
|
},
|
|
"homepage": "https://github.com/Sec-ant/readable-stream",
|
|
"bugs": {
|
|
"url": "https://github.com/Sec-ant/readable-stream/issues",
|
|
"email": "zezhengwu@proton.me"
|
|
},
|
|
"keywords": [
|
|
"stream",
|
|
"web-streams",
|
|
"readablestream",
|
|
"async",
|
|
"asynchronous",
|
|
"iterator",
|
|
"iteration",
|
|
"async-iterator",
|
|
"polyfill",
|
|
"esm",
|
|
"from-iterable"
|
|
],
|
|
"author": {
|
|
"name": "Ze-Zheng Wu"
|
|
},
|
|
"license": "MIT",
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"scripts": {
|
|
"install:ci": "npm ci && npx playwright install --with-deps",
|
|
"install:codesandbox": "npm ci && ./scripts/prepare.sh",
|
|
"update-hooks": "simple-git-hooks",
|
|
"changeset": "changeset",
|
|
"bump": "changeset version 2>/dev/null | grep . && npm i; exit 0",
|
|
"type-check": "tsc --noEmit --emitDeclarationOnly false",
|
|
"format:prettier": "prettier . --write",
|
|
"format:biome": "biome format . --write",
|
|
"format": "conc \"npm:format:prettier\" \"npm:format:biome\"",
|
|
"check:biome": "biome check --apply .",
|
|
"check": "conc \"npm:format:prettier\" \"npm:check:biome\"",
|
|
"prebuild": "npm run check && npm run type-check",
|
|
"build": "vite build",
|
|
"copy": "copy-files-from-to",
|
|
"postbuild": "tsc && npm run copy",
|
|
"test:chromium": "vitest run --browser.name=chromium",
|
|
"test:firefox": "vitest run --browser.name=firefox",
|
|
"test": "npm run test:chromium && npm run test:firefox",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:ui": "vitest --ui --coverage",
|
|
"prepublishOnly": "npm run build",
|
|
"bump-biome:latest": "npm i -DE @biomejs/biome@latest",
|
|
"bump-biome:nightly": "npm i -DE @biomejs/biome@nightly"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "1.6.1",
|
|
"@changesets/cli": "^2.27.1",
|
|
"@commitlint/cli": "^19.1.0",
|
|
"@commitlint/config-conventional": "^19.1.0",
|
|
"@vitest/browser": "^1.3.1",
|
|
"@vitest/coverage-istanbul": "^1.3.1",
|
|
"@vitest/ui": "^1.3.1",
|
|
"concurrently": "^8.2.2",
|
|
"copy-files-from-to": "^3.9.1",
|
|
"lint-staged": "^15.2.2",
|
|
"playwright": "^1.42.1",
|
|
"prettier": "^3.2.5",
|
|
"simple-git-hooks": "^2.10.0",
|
|
"typescript": "^5.4.2",
|
|
"vite": "^5.1.6",
|
|
"vitest": "^1.3.1"
|
|
}
|
|
}
|