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>
96 lines
2.4 KiB
TypeScript
96 lines
2.4 KiB
TypeScript
import { Plugin } from 'postcss'
|
|
import { Stats } from 'browserslist'
|
|
|
|
declare function autoprefixer<T extends string[]>(
|
|
...args: [...T, autoprefixer.Options]
|
|
): Plugin & autoprefixer.ExportedAPI
|
|
|
|
declare function autoprefixer(
|
|
browsers: string[],
|
|
options?: autoprefixer.Options
|
|
): Plugin & autoprefixer.ExportedAPI
|
|
|
|
declare function autoprefixer(
|
|
options?: autoprefixer.Options
|
|
): Plugin & autoprefixer.ExportedAPI
|
|
|
|
declare namespace autoprefixer {
|
|
type GridValue = 'autoplace' | 'no-autoplace'
|
|
|
|
interface Options {
|
|
/** environment for `Browserslist` */
|
|
env?: string
|
|
|
|
/** should Autoprefixer use Visual Cascade, if CSS is uncompressed */
|
|
cascade?: boolean
|
|
|
|
/** should Autoprefixer add prefixes. */
|
|
add?: boolean
|
|
|
|
/** should Autoprefixer [remove outdated] prefixes */
|
|
remove?: boolean
|
|
|
|
/** should Autoprefixer add prefixes for @supports parameters. */
|
|
supports?: boolean
|
|
|
|
/** should Autoprefixer add prefixes for flexbox properties */
|
|
flexbox?: boolean | 'no-2009'
|
|
|
|
/** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */
|
|
grid?: boolean | GridValue
|
|
|
|
/** custom usage statistics for > 10% in my stats browsers query */
|
|
stats?: Stats
|
|
|
|
/**
|
|
* list of queries for target browsers.
|
|
* Try to not use it.
|
|
* The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json`
|
|
* to share target browsers with Babel, ESLint and Stylelint
|
|
*/
|
|
overrideBrowserslist?: string | string[]
|
|
|
|
/** do not raise error on unknown browser version in `Browserslist` config. */
|
|
ignoreUnknownVersions?: boolean
|
|
}
|
|
|
|
interface ExportedAPI {
|
|
/** Autoprefixer data */
|
|
data: {
|
|
browsers: { [browser: string]: object | undefined }
|
|
prefixes: { [prefixName: string]: object | undefined }
|
|
}
|
|
|
|
/** Autoprefixer default browsers */
|
|
defaults: string[]
|
|
|
|
/** Inspect with default Autoprefixer */
|
|
info(options?: { from?: string }): string
|
|
|
|
options: Options
|
|
|
|
browsers: string | string[]
|
|
}
|
|
|
|
/** Autoprefixer data */
|
|
let data: ExportedAPI['data']
|
|
|
|
/** Autoprefixer default browsers */
|
|
let defaults: ExportedAPI['defaults']
|
|
|
|
/** Inspect with default Autoprefixer */
|
|
let info: ExportedAPI['info']
|
|
|
|
let postcss: true
|
|
}
|
|
|
|
declare global {
|
|
namespace NodeJS {
|
|
interface ProcessEnv {
|
|
AUTOPREFIXER_GRID?: autoprefixer.GridValue
|
|
}
|
|
}
|
|
}
|
|
|
|
export = autoprefixer
|