import './nile-date-time-picker'; import '../nile-calendar'; import '../nile-input'; import type { Wall } from './nile-date-time-picker.test-helpers'; /***************************************************************************** * SECTION K — ADVERSARIAL AUDIT * Merged in from src/_audit/nile-date-time-picker.adversarial.test.ts so the * component has a single test file. Original header follows verbatim. ****************************************************************************/ /** * ADVERSARIAL AUDIT — nile-date-time-picker (variant="date-time-picker") * ============================================================================ * A single self-contained adversarial suite, consolidated from the 10-file * working set. It answers one question: can the component ever silently * produce or persist the WRONG INSTANT? * * Structure: * PART 1 independent oracle — Intl `longOffset` + explicit UTC arithmetic * PART 2 driver + invariant checker (the PHASE 16 payload contract) * PART 3 PHASE 1 oracle validation + driver smoke test * PART 4 PHASE 2 year range / calendar arithmetic (+ focused follow-ups) * PART 5 PHASE 3 timezone sweep (every runtime zone + static fallback) * PART 6 PHASE 4/5 DST transitions, gaps, overlaps * PART 7 PHASE 7/8/9/11/12 ms, boundaries, formats, round-trips, fuzzing * PART 8 PHASE 6 host-timezone independence digest * PART 9 PHASE 10/14/15 UI sequences, Set to now, Apply semantics * * THE ORACLE RULE: nothing below may validate the component with the * component's own helpers. `zoneOffsetMs`, `composeValueISO`, `wallClockInZone` * and `wallClockToInstant` are never used to compute an expected value. The * oracle reads Intl's PRINTED offset and does its own UTC arithmetic, which is * a different mechanism from the implementation's part-differencing. * * RUNTIME: this is an exhaustive sweep (hundreds of zones, every DST * transition, thousands of randomised cases), not a unit suite. See the note * at the bottom of this file about keeping it out of the default `yarn test`. * * Some checks are DIAGNOSTIC: they record current behaviour via console.warn * (grep for `[audit-`) rather than asserting a policy. Those are labelled. */ /** Temporal, only if the runtime genuinely has it. Never faked. */ export declare const TEMPORAL: any; /** `...Z` / `...±HH:MM` -> exact instant. Built by hand, not via `new Date`. */ export declare function parseInstantString(raw: string): number | null; /** Offset-less datetime -> wall clock digits only (no zone applied). */ export declare function parseOffsetLess(raw: string): Wall | null; export declare function isResolvable(zone: string): boolean;