Files
markitect-main/capabilities/testdrive-jsui/node_modules/xmlchars/xmlchars.js
tegwick 17c62aadaa feat: complete testdrive-jsui capability extraction with full JavaScript test integration
Extract JavaScript UI framework functionality into dedicated testdrive-jsui capability
while maintaining 100% functionality preservation and integrating JavaScript tests
into the main Python test suite.

Phase 1 (Foundation Setup) - COMPLETED:
- Created capability directory structure with proper Python package layout
- Configured pyproject.toml with Node.js subprocess dependencies
- Set up package.json with Jest + JSDOM testing framework
- Implemented Python-JavaScript bridge for seamless test integration
- Created comprehensive capability Makefile with all testing targets
- Added detailed README documentation for capability usage

Phase 2 (Integration Layer) - COMPLETED:
- Built Python test wrappers for JavaScript test execution via subprocess
- Integrated with pytest discovery system for unified test experience
- Added capability targets to main Makefile delegation system
- Verified test integration works with main test suite

Phase 3 (Safe Migration) - COMPLETED:
- Copied (not moved) all JavaScript files to capability using safe copy-first approach
- Migrated 4 core JavaScript components and 11 test files (2,840+ lines)
- Verified all tests work in new location (11 Python tests + 7 JavaScript tests passing)
- Maintained dual-track testing capability for safety during transition

Phase 4 (Framework Enhancement) - COMPLETED:
- Enhanced testing framework with Python integration and coverage reporting
- Achieved 59% Python test coverage and 100% JavaScript test coverage
- Added performance benchmarking and component documentation

Phase 5 (Production Integration) - COMPLETED:
- Added standard 'test' target to capability Makefile for discovery system compatibility
- Integrated JavaScript tests into main Makefile with new targets:
  * test-js: Run JavaScript UI tests
  * test-all: Run all tests (Python + JavaScript + Capabilities)
- Updated help documentation to include new testing workflows
- Verified capability auto-discovery works via 'make test-capabilities'

Key Achievements:
- Zero-risk migration completed with copy-first safety approach
- Full Python-JavaScript test integration with 18 total passing tests
- JavaScript UI framework successfully extracted to dedicated capability
- Enhanced CI/CD integration with unified test command interface
- Clean architecture enabling future JavaScript framework evolution

Testing Status:
-  All Python integration tests passing (11/11)
-  All JavaScript component tests passing (7/7)
-  Capability discovery integration working
-  Main test suite integration complete
-  Test coverage reporting functional (59% Python, 100% JavaScript)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 22:29:30 +01:00

191 lines
6.7 KiB
JavaScript

"use strict";
/**
* Character classes for XML.
*
* @deprecated since 1.3.0. Import from the ``xml`` and ``xmlns`` hierarchies
* instead.
*
* @author Louis-Dominique Dubeau
* @license MIT
* @copyright Louis-Dominique Dubeau
*/
Object.defineProperty(exports, "__esModule", { value: true });
var ed4 = require("./xml/1.0/ed4");
var ed5 = require("./xml/1.0/ed5");
var nsed3 = require("./xmlns/1.0/ed3");
// tslint:disable-next-line:no-console
console.warn("DEPRECATION WARNING: the xmlchar *module* is deprecated: please \
replace e.g. require('xmlchars') with require('xmlchars/xml/...')");
/**
* Character class utilities for XML 1.0.
*/
// tslint:disable-next-line:no-namespace
var XML_1_0;
(function (XML_1_0) {
/**
* Fifth edition.
*/
var ED5;
(function (ED5) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.CHAR = ed5.CHAR;
fragments.S = ed5.S;
fragments.NAME_START_CHAR = ed5.NAME_START_CHAR;
fragments.NAME_CHAR = ed5.NAME_CHAR;
})(fragments = ED5.fragments || (ED5.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same name
* in the specification.
*/
var regexes;
(function (regexes) {
regexes.CHAR = ed5.CHAR_RE;
regexes.S = ed5.S_RE;
regexes.NAME_START_CHAR = ed5.NAME_START_CHAR_RE;
regexes.NAME_CHAR = ed5.NAME_CHAR_RE;
regexes.NAME = ed5.NAME_RE;
regexes.NMTOKEN = ed5.NMTOKEN_RE;
})(regexes = ED5.regexes || (ED5.regexes = {}));
/**
* Lists of characters.
*
* The names defined in this namespace are arrays of codepoints which
* contain the set of codepoints that an XML production encompasses. Note
* that many productions are too large to be reasonably represented as sets.
*/
var lists;
(function (lists) {
lists.S = ed5.S_LIST;
})(lists = ED5.lists || (ED5.lists = {}));
/**
* Determines whether a codepoint matches the ``CHAR`` production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``CHAR``.
*/
ED5.isChar = ed5.isChar;
/**
* Determines whether a codepoint matches the ``S`` (space) production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``S``.
*/
ED5.isS = ed5.isS;
/**
* Determines whether a codepoint matches the ``NAME_START_CHAR``
* production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.
*/
ED5.isNameStartChar = ed5.isNameStartChar;
/**
* Determines whether a codepoint matches the ``NAME_CHAR`` production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``NAME_CHAR``.
*/
ED5.isNameChar = ed5.isNameChar;
})(ED5 = XML_1_0.ED5 || (XML_1_0.ED5 = {}));
/**
* Fourth edition. These are deprecated in the 5th edition but some of the
* standards related to XML 1.0 (e.g. XML Schema 1.0) refer to these. So they
* are still generally useful.
*/
var ED4;
(function (ED4) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.CHAR = ed4.CHAR;
fragments.S = ed4.S;
fragments.BASE_CHAR = ed4.BASE_CHAR;
fragments.IDEOGRAPHIC = ed4.IDEOGRAPHIC;
fragments.COMBINING_CHAR = ed4.COMBINING_CHAR;
fragments.DIGIT = ed4.DIGIT;
fragments.EXTENDER = ed4.EXTENDER;
fragments.LETTER = ed4.LETTER;
fragments.NAME_CHAR = ed4.NAME_CHAR;
})(fragments = ED4.fragments || (ED4.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same
* name in the specification.
*/
var regexes;
(function (regexes) {
regexes.CHAR = ed4.CHAR_RE;
regexes.S = ed4.S_RE;
regexes.BASE_CHAR = ed4.BASE_CHAR_RE;
regexes.IDEOGRAPHIC = ed4.IDEOGRAPHIC_RE;
regexes.COMBINING_CHAR = ed4.COMBINING_CHAR_RE;
regexes.DIGIT = ed4.DIGIT_RE;
regexes.EXTENDER = ed4.EXTENDER_RE;
regexes.LETTER = ed4.LETTER_RE;
regexes.NAME_CHAR = ed4.NAME_CHAR_RE;
regexes.NAME = ed4.NAME_RE;
regexes.NMTOKEN = ed4.NMTOKEN_RE;
})(regexes = ED4.regexes || (ED4.regexes = {}));
})(ED4 = XML_1_0.ED4 || (XML_1_0.ED4 = {}));
})(XML_1_0 = exports.XML_1_0 || (exports.XML_1_0 = {}));
/**
* Character class utilities for XML NS 1.0.
*/
// tslint:disable-next-line:no-namespace
var XMLNS_1_0;
(function (XMLNS_1_0) {
/**
* Third edition.
*/
var ED3;
(function (ED3) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.NC_NAME_START_CHAR = nsed3.NC_NAME_START_CHAR;
fragments.NC_NAME_CHAR = nsed3.NC_NAME_CHAR;
})(fragments = ED3.fragments || (ED3.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same name
* in the specification.
*/
var regexes;
(function (regexes) {
regexes.NC_NAME_START_CHAR = nsed3.NC_NAME_START_CHAR_RE;
regexes.NC_NAME_CHAR = nsed3.NC_NAME_CHAR_RE;
regexes.NC_NAME = nsed3.NC_NAME_RE;
})(regexes = ED3.regexes || (ED3.regexes = {}));
/**
* Determines whether a codepoint matches
* [[regexes.NC_NAME_START_CHAR]].
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches.
*/
ED3.isNCNameStartChar = nsed3.isNCNameStartChar;
/**
* Determines whether a codepoint matches [[regexes.NC_NAME_CHAR]].
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches.
*/
ED3.isNCNameChar = nsed3.isNCNameChar;
})(ED3 = XMLNS_1_0.ED3 || (XMLNS_1_0.ED3 = {}));
})(XMLNS_1_0 = exports.XMLNS_1_0 || (exports.XMLNS_1_0 = {}));
//# sourceMappingURL=xmlchars.js.map