{"_id":"@abct/framework","_rev":"2-d6554c443e091d2b9fef0113536845f9","name":"@abct/framework","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@abct/framework","version":"1.0.0","keywords":["playwright","yaml","self-healing","automation","framework","no-code","spec-generation","autogen"],"author":{"name":"Laxmi Kushwaha"},"license":"MIT","_id":"@abct/framework@1.0.0","maintainers":[{"name":"laxmik","email":"laks.kushwaha@gmail.com"}],"homepage":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework","bugs":{"url":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework/issues"},"bin":{"abct":"dist/cli.js"},"dist":{"shasum":"10d522ebe3872c4edaef8b614a9706056350a30e","tarball":"https://registry.npmjs.org/@abct/framework/-/framework-1.0.0.tgz","fileCount":37,"integrity":"sha512-JdR1ZOg1XqWtq/3N35yXdYo6/qVpsEIjorwOoue9PBhD6nY8Vs5x7VDGMfsRNdUPW+yMD1vpoXp2s9P22F9MrQ==","signatures":[{"sig":"MEUCIFibYEZFNpZWskutbPlopw622lzcLxXtuR5Z3qwbaRk2AiEA4fSPPl98juXzWJt+52IUgUuZP5HihbFNbVHVxj1gbQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511872},"main":"dist/registerYaml.js","type":"commonjs","types":"./dist/registerYaml.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/registerYaml.js","require":"./dist/registerYaml.js"},"./cli":{"import":"./dist/cli.js","require":"./dist/cli.js"},"./registerYaml":{"import":"./dist/registerYaml.js","require":"./dist/registerYaml.js"},"./framework/specGen":{"import":"./dist/framework/specGen.js","require":"./dist/framework/specGen.js"},"./framework/locatorHub":{"import":"./dist/framework/locatorHub.js","require":"./dist/framework/locatorHub.js"},"./framework/locatorStore":{"import":"./dist/framework/locators/locatorStore.js","require":"./dist/framework/locators/locatorStore.js"},"./tools/generateLocators":{"import":"./dist/tools/generateLocators.js","require":"./dist/tools/generateLocators.js"}},"gitHead":"5b1747a83562bd60ee5d536616de9749d4f89641","scripts":{"e2e":"abct run","test":"playwright test","build":"npm run clean && tsup --config tsup.config.ts","clean":"rimraf dist","prepack":"npm run build","e2e:auto":"cross-env AUTO_LOCATORS=missing abct run","e2e:regen":"cross-env AUTO_LOCATORS=always abct run","e2e:smoke":"abct run --tags=smoke","test:auto":"cross-env AUTO_LOCATORS=missing playwright test","test:regen":"cross-env AUTO_LOCATORS=always playwright test","build:watch":"tsup --config tsup.config.ts --watch","postinstall":"node -e \"try{require('./dist/scripts/postinstall.js')}catch(e){console.warn('[abct] postinstall skipped:', e.message)}\"","e2e:browsers":"abct install-browsers"},"_npmUser":{"name":"laxmik","email":"laks.kushwaha@gmail.com"},"repository":{"url":"git+https://github.com/Laxmi-Kushwaha/abct_e2e_framework.git","type":"git"},"_npmVersion":"10.9.2","description":"Tech-agnostic no-code Playwright + YAML self-healing E2E test framework","directories":{},"_nodeVersion":"22.14.0","dependencies":{"yaml":"2.5.1","cheerio":"1.0.0","js-yaml":"4.1.0","picocolors":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.0.1","rimraf":"6.0.1","cross-env":"10.0.0","typescript":"5.6.2","@types/node":"20.14.10"},"peerDependencies":{"@playwright/test":">=1.43 <2"},"optionalDependencies":{"allure-commandline":"^2.29.0"},"_npmOperationalInternal":{"tmp":"tmp/framework_1.0.0_1755708946763_0.03397007094326843","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@abct/framework","version":"1.0.2","description":"Tech-agnostic no-code Playwright + YAML self-healing E2E test framework","author":{"name":"Laxmi Kushwaha"},"license":"MIT","homepage":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework","repository":{"type":"git","url":"git+https://github.com/Laxmi-Kushwaha/abct_e2e_framework.git"},"bugs":{"url":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework/issues"},"type":"commonjs","main":"dist/registerYaml.js","types":"./dist/registerYaml.d.ts","exports":{".":{"require":"./dist/registerYaml.js","import":"./dist/registerYaml.js"},"./registerYaml":{"require":"./dist/registerYaml.js","import":"./dist/registerYaml.js"},"./cli":{"require":"./dist/cli.js","import":"./dist/cli.js"},"./framework/specGen":{"require":"./dist/framework/specGen.js","import":"./dist/framework/specGen.js"},"./framework/locatorStore":{"require":"./dist/framework/locators/locatorStore.js","import":"./dist/framework/locators/locatorStore.js"},"./framework/locatorHub":{"require":"./dist/framework/locatorHub.js","import":"./dist/framework/locatorHub.js"},"./tools/generateLocators":{"require":"./dist/tools/generateLocators.js","import":"./dist/tools/generateLocators.js"}},"bin":{"abct":"dist/cli.js"},"scripts":{"clean":"rimraf dist","build":"npm run clean && tsup --config tsup.config.ts","build:watch":"tsup --config tsup.config.ts --watch","prepack":"npm run build","postinstall":"node -e \"try{require('./dist/scripts/postinstall.js')}catch(e){console.warn('[abct] postinstall skipped:', e.message)}\"","test":"playwright test","test:auto":"cross-env AUTO_LOCATORS=missing playwright test","test:regen":"cross-env AUTO_LOCATORS=always playwright test","e2e":"abct run","e2e:auto":"cross-env AUTO_LOCATORS=missing abct run","e2e:regen":"cross-env AUTO_LOCATORS=always abct run","e2e:smoke":"abct run --tags=smoke","e2e:browsers":"abct install-browsers"},"dependencies":{"yaml":"2.5.1","cheerio":"1.0.0","js-yaml":"4.1.0","picocolors":"1.0.0"},"peerDependencies":{"@playwright/test":">=1.43 <2"},"devDependencies":{"@types/node":"20.14.10","cross-env":"10.0.0","rimraf":"6.0.1","tsup":"8.0.1","typescript":"5.6.2"},"optionalDependencies":{"allure-commandline":"^2.29.0"},"keywords":["playwright","yaml","self-healing","automation","framework","no-code","spec-generation","autogen"],"engines":{"node":">=18"},"publishConfig":{"access":"public"},"_id":"@abct/framework@1.0.2","gitHead":"a9b1cd2b24ca4ac7fa2812bc5d630b8f90fc43c1","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-xepo5PMCynXph8U1z6pJ/DEO5+CeD6jlBU/nvLteQUekuSsNbX9tgDVRroO1sr0hhf1e62asOAYGFQOikZSRZw==","shasum":"db28ba3e0e3e67c72ebb7f17e0436d245894e543","tarball":"https://registry.npmjs.org/@abct/framework/-/framework-1.0.2.tgz","fileCount":37,"unpackedSize":512141,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCfm/mduKPlFhLNXbuDWn7teP34he4hQmB3p9Dpc4OjkwIhAP6vtrCBwvragXIZLXILPtXVQLp/zuThGJtgwHRXEz7t"}]},"_npmUser":{"name":"laxmik","email":"laks.kushwaha@gmail.com"},"directories":{},"maintainers":[{"name":"laxmik","email":"laks.kushwaha@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/framework_1.0.2_1755711242111_0.5614496038405481"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-20T16:55:46.602Z","modified":"2025-08-20T17:34:02.920Z","1.0.0":"2025-08-20T16:55:46.968Z","1.0.2":"2025-08-20T17:34:02.697Z"},"bugs":{"url":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework/issues"},"author":{"name":"Laxmi Kushwaha"},"license":"MIT","homepage":"https://github.com/Laxmi-Kushwaha/abct_e2e_framework","keywords":["playwright","yaml","self-healing","automation","framework","no-code","spec-generation","autogen"],"repository":{"type":"git","url":"git+https://github.com/Laxmi-Kushwaha/abct_e2e_framework.git"},"description":"Tech-agnostic no-code Playwright + YAML self-healing E2E test framework","maintainers":[{"name":"laxmik","email":"laks.kushwaha@gmail.com"}],"readme":"# abct-framework\r\n\r\n[![npm version](https://img.shields.io/npm/v/abct-framework.svg)](https://www.npmjs.com/package/abct-framework)\r\n[![License: MIT (Repo)](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\r\n[![License: MIT (Official)](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## 🚀 Overview\r\n\r\n**abct-framework** (Anybody Can Test) is a **no-code, technology-agnostic test automation framework** built on top of [Playwright](https://playwright.dev/) and [YAML](https://yaml.org/).  \r\nIt enables testers, developers, and non-technical users to write and execute end-to-end (E2E) tests **without coding**, while supporting **self-healing locators** and **auto-spec generation**.\r\n\r\n---\r\n\r\n## ✨ Features\r\n\r\n- 📝 **YAML-based test cases** — Write readable, declarative specs.\r\n- 🎭 **Playwright powered** — Reliable cross-browser automation.\r\n- 🔄 **Self-healing locators** — Automatically fixes broken selectors.\r\n- ⚡ **Auto-spec generation** — Generate draft test cases from UI screens.\r\n- 🔍 **Tag filtering** — Run subsets of tests easily (`--tags=@smoke`).\r\n- 📊 **Reporting support** — Plug into Playwright reports & CI/CD tools.\r\n- 🛠 **No-code friendly** — Designed for teams with mixed skill levels.\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @abct/framework\r\n```\r\n\r\nOr locally (if consuming from tarball):\r\n\r\n```bash\r\nnpm install ./@abct/framework-<version>.tgz\r\n```\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\nCreate a simple test spec in YAML (`tests/specs/sample-login.yaml`):\r\n\r\n```yaml\r\nsuite: Login Test Suite\r\ntags: [smoke, login]\r\nsteps:\r\n  - goto: https://example.com/login\r\n  - type:\r\n      locator: login.username\r\n      text: testuser\r\n  - type:\r\n      locator: login.password\r\n      text: password123\r\n  - click:\r\n      locator: login.submit\r\n  - assertVisible:\r\n      locator: home.dashboard\r\n```\r\n\r\nRun the test:\r\n\r\n```bash\r\nnpx abct run tests/specs/sample-login.yaml\r\n```\r\n\r\n---\r\n\r\n## 🔧 Scripts\r\n\r\nIn your consumer project’s **package.json**, you can configure scripts like:\r\n\r\n```json\r\n\"scripts\": {\r\n  \"test\": \"abct run\",\r\n  \"test:auto\": \"cross-env AUTO_LOCATORS=missing abct run\",\r\n  \"test:regen\": \"cross-env AUTO_LOCATORS=always abct run\",\r\n  \"e2e:smoke\": \"abct run --tags=smoke\",\r\n  \"e2e:browsers\": \"abct install-browsers\"\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🛡 License\r\n\r\nThis project is licensed under the terms of the **MIT License**.  \r\nSee the [LICENSE](LICENSE) file for details.\r\n\r\n---\r\n\r\n## 👤 Author\r\n\r\n**Laxmi Kushwaha**  \r\n📧 Contact: *to be added*  \r\n📦 npm: [abct-framework](https://www.npmjs.com/package/abct-framework)\r\n","readmeFilename":"Readme.md"}