Conversation
…, nav/asset/xml validators - Create js/core/rules.js with 50+ validation rule definitions and finding factory - Create js/core/model.js with normalized project model builder - Create js/validators/package-rules.js for ZIP structure validation - Create js/validators/xml-rules.js for XML schema validation (namespace, version, DOCTYPE, child ordering) - Create js/validators/nav-rules.js for ID uniqueness, cross-references, cycle detection, ordering - Create js/validators/idevice-rules.js with type validation against known registry - Create js/validators/asset-rules.js with full asset inventory, reference extraction, orphan detection - Create js/registries/idevice-types.js with 18 known iDevice types from ELPX spec - Refactor js/validator.js to orchestrate all modules with runFullValidation() API - Preserve all legacy API functions for backward compatibility - All 15 existing tests still pass Agent-Logs-Url: https://github.com/ateeducacion/elpx-validator/sessions/6e7022bc-c0e4-4e25-8c6d-1b80e78abc88 Co-authored-by: erseco <1876752+erseco@users.noreply.github.com>
…e summary, asset explorer, preview - Add summary banner with format badge and error/warning/info counts - Add tabbed navigation: Overview, Findings, Pages, iDevices, Assets, Preview - Add findings panel with severity/category filtering and structured finding cards - Add page tree with hierarchical navigation, blocks, and components - Add iDevice summary panel with type breakdown and known/unknown status - Add asset explorer with inventory table, filtering (all/referenced/orphaned/missing) - Add preview panel with sandboxed iframe and Blob URL virtual filesystem - Create js/preview/virtual-fs.js for asset preview via Blob URLs - Update index.html with all new UI panels and script tags for modules - Update styles.css with complete styling for all new components - Preserve legacy checklist in Overview tab for backward compatibility - All 15 existing tests still pass Agent-Logs-Url: https://github.com/ateeducacion/elpx-validator/sessions/6e7022bc-c0e4-4e25-8c6d-1b80e78abc88 Co-authored-by: erseco <1876752+erseco@users.noreply.github.com>
…tion Tests: - tests/rules.test.js: Rule catalog, finding factory, frozen objects - tests/model.test.js: Project model builder from content.xml - tests/idevice-registry.test.js: Known type registry, lookup, case-insensitivity - tests/package-rules.test.js: Package validation, path traversal, suspicious files - tests/xml-rules.test.js: XML schema validation, namespace, DOCTYPE, ordering - tests/nav-rules.test.js: ID uniqueness, cycles, cross-references, containment - tests/idevice-rules.test.js: Type recognition, JSON parsing, type-specific checks - tests/asset-rules.test.js: Inventory, references, orphans, missing, casing README: - Complete validation scope documentation - Rule catalog reference table - Architecture diagram with all modules - Known iDevice types table - Known limitations section - Development workflow (102 tests passing) Agent-Logs-Url: https://github.com/ateeducacion/elpx-validator/sessions/6e7022bc-c0e4-4e25-8c6d-1b80e78abc88 Co-authored-by: erseco <1876752+erseco@users.noreply.github.com>
…o, README example consistency - Fix XSS vulnerability: use textContent instead of innerHTML in setChecklistStatus - Add null/undefined check in escapeHtml helper function - Fix iDevice label: 'Quick Questions (Multiple)' → 'Quick Questions (Multiple Choice)' - Fix README example: use correct rule code IDEV001 (info) instead of IDEV003 (error) Agent-Logs-Url: https://github.com/ateeducacion/elpx-validator/sessions/6e7022bc-c0e4-4e25-8c6d-1b80e78abc88 Co-authored-by: erseco <1876752+erseco@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
erseco
April 6, 2026 20:34
View session
erseco
approved these changes
Apr 6, 2026
…tion or class' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
…tion or class' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Major redesign of the elpx-validator from a simple linear checklist into a comprehensive
.elpx/.elppackage inspector, validator, asset explorer, and preview tool, aligned with the ELPX format specification.All processing remains fully client-side in the browser. No server dependencies. Existing functionality is preserved.
What changed
Architecture refactoring
The monolithic
validator.jshas been refactored into a modular architecture with 10 modules:js/core/rules.jsjs/core/model.jsjs/registries/idevice-types.jsjs/validators/package-rules.jsjs/validators/xml-rules.jsjs/validators/nav-rules.jsjs/validators/idevice-rules.jsjs/validators/asset-rules.jsjs/preview/virtual-fs.jsjs/validator.jsNew validation layers
Package layer (PKG):* Required files, recommended dirs, path traversal, suspicious filenames, duplicate paths
XML/Schema layer (XML):* Namespace
http://www.intef.es/xsd/ode, version attribute, DOCTYPE check, child element ordering, unknown root childrenNavigation layer (NAV):* Page/block/component ID uniqueness, dangling parent references, cycle detection, sibling ordering, component containment mismatch
Metadata layer (META):*
odeId/odeVersionIdformat validation (14-digit timestamp + 6 uppercase alphanumeric),eXeVersionpresence, project titleiDevice layer (IDEV):* Registry of 18 known types from the ELPX spec,
jsonPropertiesparseability, type-specific checks (image references, URLs, download flags)Asset layer (ASSET):* Full inventory, reference extraction from
htmlView/jsonProperties/exported HTML,{{context_path}}normalization, orphan/missing detection, casing mismatchesUI redesign
From a flat checklist to a tabbed navigable inspector:
Summary banner shows format badge (
Modern ELPX/Legacy ELP) and error/warning/info counts.Testing
Documentation
Validation rule catalog
PKG001–PKG014XML001–XML008NAV001–NAV022META001–META006IDEV001–IDEV006ASSET001–ASSET005COMPAT001–COMPAT002Known limitations
content.dtdpresence.elp: Limited to metadata extraction