node tools/check.mjs
115 tinyDatagrid-Dateihashes geprüft.
tinyOT local source and WASM asset hashes verified.
168 JavaScript-Dateien geprüft, 0 Fehler.
python3 -c 'import ast,pathlib; files=sorted([*pathlib.Path("tools").glob("*.py"),*pathlib.Path("tests").glob("*.py")]); [ast.parse(p.read_text(encoding="utf-8"),filename=str(p)) for p in files]; print(str(len(files))+" Python files checked.")'
36 Python files checked.
go vet ./...
cd third_party/tinyOT && go vet ./...
/Users/simonwaldherr/git/SovereignOffice/third_party/tinyOT
python3 tests/public_config_test.py
....
----------------------------------------------------------------------
Ran 4 tests in 0.006s

OK
node --test  tests/*.test.mjs
✔ Code indentation handles single cursor, multiline selections and dedentation (0.827334ms)
✔ JSON formatting preserves duplicate keys, exact large numbers and string escapes (0.895542ms)
✔ Code source is inert project data with bounded language and file extensions (7.805833ms)
✔ language detection uses file names, extensions and the first line (0.462167ms)
✔ the syntax tokenizer marks comments, strings, keys, numbers and keywords per language (6.031542ms)
✔ tokenizing is lossless and linear even for large or malformed input (103.98875ms)
✔ CRC32 known vector (0.665167ms)
✔ ZIP store roundtrip including UTF-8 data (1.306167ms)
✔ ZIP rejects modified content (0.39175ms)
✔ ZIP rejects encryption (0.17425ms)
✔ ZIP traversal is rejected at write boundary (0.1025ms)
✔ ZIP validates the central directory (0.138834ms)
✔ ZIP caps entry count (1.045292ms)
✔ ZIP caps input size (0.085167ms)
✔ ZIP rejects random bytes and truncation (2.083ms)
✔ native file roundtrip creates independent ID (4.173708ms)
✔ native file rejects future manifest versions (0.144875ms)
✔ native file rejects hidden additional executable files (0.112916ms)
✔ document kinds are explicit (0.041375ms)
✔ presentation validates dimensions (0.067542ms)
✔ presentation blocks linked and SVG images (0.227875ms)
✔ presentation rejects duplicate object identities (0.068417ms)
✔ presentation uses an existing active slide (0.0365ms)
✔ database snapshot and script limits are checked (0.047917ms)
✔ JSON prototype keys are rejected (0.054459ms)
✔ URLs and images use restricted schemes (0.067542ms)
✔ SQL splitter preserves quoted semicolons (0.147625ms)
✔ SQL splitter ignores semicolons inside comments (0.030333ms)
✔ SQL splitter preserves dollar quotes (0.5155ms)
✔ SQL splitter rejects unclosed quotes/comments (0.15075ms)
✔ SQL transaction control stays with the host (0.06125ms)
✔ SQL response errors are not interpreted as empty success (0.052334ms)
✔ SQL result shape matches upstream wasmbridge (0.053292ms)
✔ CSV quotes commas, quotes and line breaks (0.409958ms)
✔ CSV prevents formula activation but retains numeric negatives (0.05375ms)
✔ CSV handles precise decimal values (0.227917ms)
✔ history discards redo branch after a new edit (0.298167ms)
✔ history snapshots do not share references (0.043ms)
✔ scene rotated bounds and hit testing (0.104125ms)
✔ alignment snapping is scale-aware and pure (0.141666ms)
✔ ZPL adapter converts actual text and box fields (0.247667ms)
✔ Markdown escapes raw HTML (1.081792ms)
✔ session saves edits made during an in-flight write (24.022ms)
✔ concurrent flush callers do not duplicate writes (10.791542ms)
✔ storage failure leaves the editor dirty and retryable (25.215625ms)
✔ conflict is not silently overwritten (13.022041ms)
✔ ZIP deflate reader roundtrips genuine compressed UTF-8 content (7.527041ms)
✔ ZIP deflate rejects output larger than declared length (1.202334ms)
✔ spreadsheet normalization does not introduce unnecessary legacy aliases (0.083708ms)
✔ legacy root aliases cannot bypass validated worksheet bounds (0.047459ms)
✔ spreadsheet duplicate cell coordinates are rejected (0.044708ms)
✔ native export normalizes unsafe styles without mutating the editor (0.244166ms)
✔ DOT import reads nodes, shapes, fills, edge chains and ignores comments (3.860709ms)
✔ DOT import copes with subgraphs, ports, undirected graphs and quoted ids (0.707375ms)
✔ long chains and very wide layers are wrapped or scaled to fit the 2048 pixel canvas (8.54975ms)
✔ automatic layout separates every node and keeps arrows inside the canvas, also with cycles (0.208375ms)
✔ exported DOT keeps labels, shapes, fills and positions through a round trip (1.285042ms)
✔ Mermaid import supports shapes, labelled links, chains, groups and styles (0.24275ms)
✔ Mermaid export reads back to the same graph (0.239ms)
✔ invalid or oversized diagrams are rejected with a clear message (1.54925ms)
✔ text is inert: html labels lose their markup and colours are validated (0.162416ms)
✔ the extension decides between DOT and Mermaid (0.150333ms)
✔ extensions route to one importer each, including the new Office, image, audio and text variants (7.042375ms)
✔ ZIP containers are classified by structure, templates and macro files included (1.957083ms)
✔ content wins over a wrong extension and the user is told (0.92125ms)
✔ unsupported and broken files fail with advice instead of a generic message (3.408917ms)
✔ unknown extensions and file names open as source code only when the content is text (0.302959ms)
✔ sniffing recognises signatures, UTF-16 text and rejects NUL-filled binaries (0.322417ms)
✔ the format overview is derived from the same table that routes imports (0.14075ms)
✔ interface language choices are bounded and browser language falls back predictably (0.91225ms)
✔ UI interpolation preserves Unicode, user data and unknown placeholders without interpreting HTML (0.144958ms)
✔ language persistence rejects invalid choices and reports blocked storage instead of reloading silently (0.250875ms)
✔ fallback inflates stored, fixed, dynamic and multi-block streams from zlib (64.0135ms)
✔ fallback rejects invalid blocks, truncation, trailing data and expansion above declared size (0.669625ms)
✔ OpenFormula converts qualified, absolute and relative references without changing strings (4.528167ms)
✔ RTF handles Unicode, ANSI escapes, grouping and literal braces safely (0.609417ms)
✔ RTF skips objects and unknown destinations and rejects malformed binary/groups (0.350083ms)
✔ TSV quotes embedded tabs and newlines, preserves Unicode and prevents formula activation (0.197167ms)
✔ local backup contains current document models but no server bindings or source IDs (3.906ms)
✔ a malformed model prevents preparation of the complete backup import (0.277083ms)
✔ backup models remain independent and document count is bounded (0.236041ms)
✔ a valid native document without a title still participates in the workspace backup (0.599417ms)
✔ PCM WAV interleaves stereo, preserves sample rate and clamps output (1.032708ms)
✔ WAV rejects truncation, declared length mismatch, unsupported codec and sample limits (0.242917ms)
✔ Audio selection across edits retains original source offsets (0.155041ms)
✔ Audio render applies edits, normalization and fades without changing source (0.147417ms)
✔ Media document kinds survive independent native project roundtrips (4.293708ms)
✔ Media validation rejects active resources, oversized layers and invalid audio offsets (0.283083ms)
✔ Diagram SVG escapes labels and keeps connectors attached at shape boundaries (0.257209ms)
✔ WAV reader decodes 8, 24 and 32 bit PCM, 32/64 bit float and WAVE_FORMAT_EXTENSIBLE (0.439375ms)
✔ WAV reader still refuses unsupported codecs, layouts and odd sizes (0.303833ms)
✔ AIFF and AIFC reader handles big-endian PCM, sowt and the 80-bit sample rate (1.620916ms)
✔ BMP export writes a bottom-up 24 bit bitmap with transparency flattened onto white (0.257666ms)
✔ Office ZIP paths and larger entry counts do not relax native container limits (3.056583ms)
✔ OPC relationships resolve relative, rooted and encoded package targets (0.2375ms)
✔ shared Excel formulas shift relative references without changing literals or absolute cells (0.754167ms)
✔ Excel dates preserve the 1900/1904 systems and the fictional leap day (0.261208ms)
✔ Excel basic number formats preserve percentages, currencies, zero padding and dates (2.806167ms)
✔ OpenFormula references preserve literals, absolute ranges and sheet names (1.652083ms)
✔ Office export values retain literal strings and date serial boundaries (0.491875ms)
✔ XLSX stores text as inline strings and formula results as numeric caches (0.59625ms)
✔ ODF package writes uncompressed mimetype first with manifest and OpenFormula (1.362792ms)
✔ DOCX includes relationships, styles, numbering and escaped Unicode text (0.2835ms)
✔ XLSX shares fonts, fills and number formats across unrelated cell styles (0.127917ms)
✔ Office exports normalize HTML/CSS RGB colors as well as hexadecimal colors (0.191292ms)
✔ public static profile preserves the optional self-host profile and source tree (588.650584ms)
✔ public clients reject every server capability before fetch even with stale credentials (0.863291ms)
✔ public manifests match their complete assets and exclude OT and source download from offline install (76.200625ms)
✔ public service worker denies API fallback at root and inside a subdirectory (13.1145ms)
✔ public builder refuses source directories and unrelated output folders (114.245583ms)
✔ production public build requires the real local SQL runtime (47.380625ms)
✔ source defaults remain offline-installable without Git-ignored optional runtimes (41.957167ms)
✔ YAML profile controls domain, legal pages, hosting and release validation (578.3475ms)
✔ asset server delivers the complete grid and body-free HEAD responses (146.44975ms)
✔ asset server revalidates weak, strong, list and wildcard ETags (6.176042ms)
✔ asset server retains method and loopback host restrictions (6.989834ms)
✔ server saves use quoted revision tags and same-origin credentials (15.424833ms)
✔ expired administrator sessions clear credentials without retrying a write (0.395209ms)
✔ missing optional API is distinguishable from a temporary proxy failure (0.284625ms)
✔ backup timeout covers slow response bodies without AbortSignal.timeout (12.711083ms)
✔ backup upload transmits original file bytes (0.373083ms)
✔ deployment policy is loaded without requiring policy support from older servers (0.651917ms)
✔ individual login, status and logout keep identity in memory (0.500709ms)
✔ account guest links accept only bounded random workspace routing (0.318042ms)
✔ session revocation clears client credentials only for current session (0.265167ms)
✔ LDAP configuration responses and per-user settings stay within authenticated APIs (0.257875ms)
✔ share management compares share revisions independently of document revisions (0.258709ms)
✔ guest metadata never transmits a password and does not clear an owner session (0.18775ms)
✔ Markdown tables escape pipes, line breaks and right-align number columns (0.657333ms)
✔ HTML tables are standalone documents with every cell escaped (0.326334ms)
✔ JSON records use the header row as field names with unique, non-empty keys (0.489792ms)
✔ computed values of every type become plain JSON data (0.193292ms)
✔ JSON Lines import unions keys, flattens nested values and names the failing line (2.6265ms)
✔ delimiter detection prefers the separator that is consistent across lines and ignores quoted text (0.216542ms)
✔ local examples cover every supported editor with stable, immutable catalog IDs (0.96625ms)
✔ each local template creates independently editable document content (69.299709ms)
✔ budget formulas use the actual grid engine and respond to edited costs (6.67925ms)
✔ expense formulas multiply quantities and subtract reimbursements (0.949459ms)
✔ audio example is a bounded real WAV with audible samples and non-destructive fades (23.379833ms)
✔ JSON starter is a real editable JSON source and SQL remains scoped, unexecuted local input (0.4375ms)
✔ PDF example has a complete page tree, bounded stream and valid byte offsets (0.348583ms)
✔ Office text decoding preserves UTF-8, both UTF-16 orders and Windows-1252 (1.133ms)
✔ Excel sep directive and semicolon output retain quoting and injection protection (0.524292ms)
✔ download names avoid Windows device names, trailing dots and multibyte path limits (0.303083ms)
✔ Excel semicolon CSV uses decimal commas only for numeric values (0.072959ms)
✔ real tinyOT WASM converges concurrent inserts with pending buffers and immutable retries (13.734917ms)
✔ POST acknowledgements can arrive before earlier canonical SSE events (0.866292ms)
✔ UTF-16 boundaries and remote cursor mapping preserve non-BMP characters (0.603167ms)
✔ locally supplied JSON and bitmap algorithms are available in the same WASM (5.413334ms)
✔ structured OT preserves independent Excel cells, formats and sheet identities (13.570417ms)
✔ rich text node edits converge while independent formatting is retained (4.398666ms)
✔ concurrent masked bitmap patches on one layer retain both drawings (8.555667ms)
✔ all remaining editor models emit granular structured operations (1.940041ms)
✔ simultaneous binary source replacements report conflict instead of discarding a file (1.535208ms)
✔ undo does not restore a scalar over a later edit from another account (1.203334ms)
ℹ tests 155
ℹ suites 0
ℹ pass 155
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1779.639208
go test  ./...
ok  	sovereignoffice	16.778s
?   	sovereignoffice/cmd/sovereign	[no test files]
cd third_party/tinyOT && go test  ./...
/Users/simonwaldherr/git/SovereignOffice/third_party/tinyOT
ok  	github.com/SimonWaldherr/tinyOT/bitmap	0.220s
?   	github.com/SimonWaldherr/tinyOT/core	[no test files]
ok  	github.com/SimonWaldherr/tinyOT/jsonot	0.219s
ok  	github.com/SimonWaldherr/tinyOT/server	0.252s
ok  	github.com/SimonWaldherr/tinyOT/text	0.189s
