Files
markitect-main/capabilities/testdrive-jsui/node_modules/css-tree/package.json
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

127 lines
4.0 KiB
JSON

{
"name": "css-tree",
"version": "2.3.1",
"description": "A tool set for CSS: fast detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations",
"author": "Roman Dvornov <rdvornov@gmail.com> (https://github.com/lahmatiy)",
"license": "MIT",
"repository": "csstree/csstree",
"keywords": [
"css",
"ast",
"tokenizer",
"parser",
"walker",
"lexer",
"generator",
"utils",
"syntax",
"validation"
],
"type": "module",
"module": "./lib/index.js",
"main": "./cjs/index.cjs",
"exports": {
".": {
"import": "./lib/index.js",
"require": "./cjs/index.cjs"
},
"./dist/*": "./dist/*.js",
"./package.json": "./package.json",
"./tokenizer": {
"import": "./lib/tokenizer/index.js",
"require": "./cjs/tokenizer/index.cjs"
},
"./parser": {
"import": "./lib/parser/index.js",
"require": "./cjs/parser/index.cjs"
},
"./selector-parser": {
"import": "./lib/parser/parse-selector.js",
"require": "./cjs/parser/parse-selector.cjs"
},
"./generator": {
"import": "./lib/generator/index.js",
"require": "./cjs/generator/index.cjs"
},
"./walker": {
"import": "./lib/walker/index.js",
"require": "./cjs/walker/index.cjs"
},
"./convertor": {
"import": "./lib/convertor/index.js",
"require": "./cjs/convertor/index.cjs"
},
"./lexer": {
"import": "./lib/lexer/index.js",
"require": "./cjs/lexer/index.cjs"
},
"./definition-syntax": {
"import": "./lib/definition-syntax/index.js",
"require": "./cjs/definition-syntax/index.cjs"
},
"./definition-syntax-data": {
"import": "./lib/data.js",
"require": "./cjs/data.cjs"
},
"./definition-syntax-data-patch": {
"import": "./lib/data-patch.js",
"require": "./cjs/data-patch.cjs"
},
"./utils": {
"import": "./lib/utils/index.js",
"require": "./cjs/utils/index.cjs"
}
},
"browser": {
"./cjs/data.cjs": "./dist/data.cjs",
"./cjs/version.cjs": "./dist/version.cjs",
"./lib/data.js": "./dist/data.js",
"./lib/version.js": "./dist/version.js"
},
"unpkg": "dist/csstree.esm.js",
"jsdelivr": "dist/csstree.esm.js",
"scripts": {
"watch": "npm run build -- --watch",
"build": "npm run bundle && npm run esm-to-cjs --",
"build-and-test": "npm run build && npm run test:dist && npm run test:cjs",
"bundle": "node scripts/bundle",
"bundle-and-test": "npm run bundle && npm run test:dist",
"esm-to-cjs": "node scripts/esm-to-cjs.cjs",
"esm-to-cjs-and-test": "npm run esm-to-cjs && npm run test:cjs",
"lint": "eslint lib scripts && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint",
"lint-and-test": "npm run lint && npm test",
"update:docs": "node scripts/update-docs",
"review:syntax-patch": "node scripts/review-syntax-patch",
"test": "mocha lib/__tests --reporter ${REPORTER:-progress}",
"test:cjs": "mocha cjs/__tests --reporter ${REPORTER:-progress}",
"test:dist": "mocha dist/__tests --reporter ${REPORTER:-progress}",
"coverage": "c8 --exclude lib/__tests --reporter=lcovonly npm test",
"prepublishOnly": "npm run lint-and-test && npm run build-and-test",
"hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null"
},
"dependencies": {
"mdn-data": "2.0.30",
"source-map-js": "^1.0.1"
},
"devDependencies": {
"c8": "^7.12.0",
"clap": "^2.0.1",
"esbuild": "^0.14.53",
"eslint": "^8.4.1",
"json-to-ast": "^2.1.0",
"mocha": "^9.2.2",
"rollup": "^2.68.0"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
},
"files": [
"data",
"dist",
"cjs",
"!cjs/__tests",
"lib",
"!lib/__tests"
]
}