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>
107 lines
2.8 KiB
Markdown
107 lines
2.8 KiB
Markdown
|
|
# MZ - Modernize node.js
|
|
|
|
[![NPM version][npm-image]][npm-url]
|
|
[![Build status][travis-image]][travis-url]
|
|
[![Test coverage][coveralls-image]][coveralls-url]
|
|
[![Dependency Status][david-image]][david-url]
|
|
[![License][license-image]][license-url]
|
|
[![Downloads][downloads-image]][downloads-url]
|
|
|
|
Modernize node.js to current ECMAScript specifications!
|
|
node.js will not update their API to ES6+ [for a while](https://github.com/joyent/node/issues/7549).
|
|
This library is a wrapper for various aspects of node.js' API.
|
|
|
|
## Installation and Usage
|
|
|
|
Set `mz` as a dependency and install it.
|
|
|
|
```bash
|
|
npm i mz
|
|
```
|
|
|
|
Then prefix the relevant `require()`s with `mz/`:
|
|
|
|
```js
|
|
var fs = require('mz/fs')
|
|
|
|
fs.exists(__filename).then(function (exists) {
|
|
if (exists) // do something
|
|
})
|
|
```
|
|
|
|
With ES2017, this will allow you to use async functions cleanly with node's core API:
|
|
|
|
```js
|
|
const fs = require('mz/fs')
|
|
|
|
|
|
async function doSomething () {
|
|
if (await fs.exists(__filename)) // do something
|
|
}
|
|
```
|
|
|
|
## Promisification
|
|
|
|
Many node methods are converted into promises.
|
|
Any properties that are deprecated or aren't asynchronous will simply be proxied.
|
|
The modules wrapped are:
|
|
|
|
- `child_process`
|
|
- `crypto`
|
|
- `dns`
|
|
- `fs` (uses `graceful-fs` if available)
|
|
- `readline`
|
|
- `zlib`
|
|
|
|
```js
|
|
var exec = require('mz/child_process').exec
|
|
|
|
exec('node --version').then(function (stdout) {
|
|
console.log(stdout)
|
|
})
|
|
```
|
|
|
|
## Promise Engine
|
|
|
|
`mz` uses [`any-promise`](https://github.com/kevinbeaty/any-promise).
|
|
|
|
## FAQ
|
|
|
|
### Can I use this in production?
|
|
|
|
Yes, Node 4.x ships with stable promises support. For older engines,
|
|
you should probably install your own promise implementation and register it with
|
|
`require('any-promise/register')('bluebird')`.
|
|
|
|
### Will this make my app faster?
|
|
|
|
Nope, probably slower actually.
|
|
|
|
### Can I add more features?
|
|
|
|
Sure.
|
|
Open an issue.
|
|
|
|
Currently, the plans are to eventually support:
|
|
|
|
- New APIs in node.js that are not available in older versions of node
|
|
- ECMAScript7 Streams
|
|
|
|
[bluebird]: https://github.com/petkaantonov/bluebird
|
|
|
|
[npm-image]: https://img.shields.io/npm/v/mz.svg?style=flat-square
|
|
[npm-url]: https://npmjs.org/package/mz
|
|
[github-tag]: http://img.shields.io/github/tag/normalize/mz.svg?style=flat-square
|
|
[github-url]: https://github.com/normalize/mz/tags
|
|
[travis-image]: https://img.shields.io/travis/normalize/mz.svg?style=flat-square
|
|
[travis-url]: https://travis-ci.org/normalize/mz
|
|
[coveralls-image]: https://img.shields.io/coveralls/normalize/mz.svg?style=flat-square
|
|
[coveralls-url]: https://coveralls.io/r/normalize/mz?branch=master
|
|
[david-image]: http://img.shields.io/david/normalize/mz.svg?style=flat-square
|
|
[david-url]: https://david-dm.org/normalize/mz
|
|
[license-image]: http://img.shields.io/npm/l/mz.svg?style=flat-square
|
|
[license-url]: LICENSE
|
|
[downloads-image]: http://img.shields.io/npm/dm/mz.svg?style=flat-square
|
|
[downloads-url]: https://npmjs.org/package/mz
|