Skip to content

Modernize VAST Tester - #47

Open
aleksUIX wants to merge 11 commits into
IABTechLab:masterfrom
aleksUIX:iab-next-gen-vast-tester
Open

Modernize VAST Tester#47
aleksUIX wants to merge 11 commits into
IABTechLab:masterfrom
aleksUIX:iab-next-gen-vast-tester

Conversation

@aleksUIX

@aleksUIX aleksUIX commented Jun 8, 2026

Copy link
Copy Markdown

Summary

  • replay the rewritten tester on top of current upstream master
  • replace the legacy app surface with a modern Vite + React tester powered by vastlint
  • install vastlint, vastlint-client, and vastlint-react from npm instead of relying on a sibling local checkout
  • add deeper validation, wrapper inspection, playback diagnostics, tracker visibility, scenario presets, and exportable QA output
Screenshot 2026-06-07 at 6 08 43 PM Screenshot 2026-06-07 at 6 08 52 PM

What is included

  • validate pasted XML or remote VAST URLs
  • auto-fix deterministic issues exposed by vastlint
  • resolve and inspect wrapper chains with resolved-ad and media summaries
  • inline findings, playback console, tracking waterfall, macro preview, and compliance-oriented views
  • expanded scenario library for regression and demo coverage

Validation

  • npm install
  • npm run build

aleksUIX added 2 commits May 24, 2026 16:49
Restores shared ancestry with IAB upstream while preserving the current committed tester tree.
@aleksUIX aleksUIX changed the title Modernize VAST Tester with vastlint-powered validation and QA workflows Modernize VAST Tester Jun 8, 2026
@aleksUIX
aleksUIX marked this pull request as ready for review June 8, 2026 01:18
aleksUIX added 8 commits July 30, 2026 21:08
0.10.2 predates the CTV Ad Portfolio VAST 2.0 extension path, so the tester
reported nothing at all on a tag using <Extension type="ctv_ad_portfolio">
or <CreativeExtension type="tl_qrcode">.

0.11.0 added six rules for the 2.0 container plus the two Format-to-Signal
cross-checks, and 0.11.1 closed the NonLinear traversal hole where MediaFile,
Mezzanine, InteractiveCreativeFile and Icon went unvalidated under the CTV
content model. Catalog goes from 212 to 220 rules.

No API change; the build and typecheck are unaffected.
0.11.3 predates the CTV Ad Portfolio extension-container validation added
in 0.11.4, so the tester reported nothing for a defective <MediaFile>,
<Duration>, <Icon> or <Tracking> inside <Extension type="ctv_ad_portfolio">.
0.11.5 is the element-dispatch refactor, which reports identically.

Catalog stays at 220 rules. No API change; build and typecheck unaffected.
Adds VAST-4.4-qrcode-missing-image-url and
VAST-3.0-adparameters-xmlencoded-value, and <Duration> is now format-checked
under <NonLinear>. Catalog 220 to 222.
The tester now publishes to two independent providers from the same commit.
Cloudflare Pages stays the primary and is unchanged: `npm run deploy:pages`
still builds with the default base and uploads dist. The new workflow builds
the same tree with `--base=/VAST-Tester/` on the command line, so the base
path lives only in CI and vite.config.ts keeps producing a root-relative
build for Cloudflare.

tsconfig.node.json could not typecheck from a clean `npm ci`. It asked for
`types: ["node"]`, but @types/node is only an optional peer of vite and is
never installed by the committed lockfile; local builds passed only because
other tooling happened to pull it in. It also set no target or lib, so it
defaulted to ES5 and could not read vite's own declarations. It is now
self-contained: ES2022, no ambient types, skipLibCheck on. vite.config.ts
uses no Node globals, so nothing is lost.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant