├── .gitignore ├── LICENSE ├── README.md ├── examples ├── basic-usage.js ├── ecommerce-example.js ├── json-example.js ├── novel-example.js └── run-all.js ├── index.ts ├── package.json ├── pnpm-lock.yaml ├── src ├── engine.js ├── operators │ ├── array-index.js │ ├── attribute.js │ ├── concat.js │ ├── fallback.js │ ├── index.js │ └── regex-clean.js ├── rule-engine.js ├── selectors │ ├── css.js │ ├── index.js │ ├── js.js │ ├── json.js │ ├── regex.js │ ├── text.js │ └── xpath.js └── types.js ├── test-user-provided-code.js ├── test ├── css.test.js ├── edge-cases │ └── boundary-scenarios.test.js ├── helpers │ └── test-setup.js ├── integration │ └── advanced-scenarios.test.js ├── json.test.js ├── operators │ ├── basic-operators.test.js │ └── text-operators.test.js ├── performance │ └── performance.test.js ├── regex.test.js └── selectors │ ├── javascript.test.js │ ├── text.test.js │ └── xpath.test.js ├── tsconfig.json └── vitest.config.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/README.md -------------------------------------------------------------------------------- /examples/basic-usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/examples/basic-usage.js -------------------------------------------------------------------------------- /examples/ecommerce-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/examples/ecommerce-example.js -------------------------------------------------------------------------------- /examples/json-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/examples/json-example.js -------------------------------------------------------------------------------- /examples/novel-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/examples/novel-example.js -------------------------------------------------------------------------------- /examples/run-all.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/examples/run-all.js -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/index.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/engine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/engine.js -------------------------------------------------------------------------------- /src/operators/array-index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/array-index.js -------------------------------------------------------------------------------- /src/operators/attribute.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/attribute.js -------------------------------------------------------------------------------- /src/operators/concat.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/concat.js -------------------------------------------------------------------------------- /src/operators/fallback.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/fallback.js -------------------------------------------------------------------------------- /src/operators/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/index.js -------------------------------------------------------------------------------- /src/operators/regex-clean.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/operators/regex-clean.js -------------------------------------------------------------------------------- /src/rule-engine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/rule-engine.js -------------------------------------------------------------------------------- /src/selectors/css.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/css.js -------------------------------------------------------------------------------- /src/selectors/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/index.js -------------------------------------------------------------------------------- /src/selectors/js.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/js.js -------------------------------------------------------------------------------- /src/selectors/json.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/json.js -------------------------------------------------------------------------------- /src/selectors/regex.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/regex.js -------------------------------------------------------------------------------- /src/selectors/text.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/text.js -------------------------------------------------------------------------------- /src/selectors/xpath.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/selectors/xpath.js -------------------------------------------------------------------------------- /src/types.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/src/types.js -------------------------------------------------------------------------------- /test-user-provided-code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test-user-provided-code.js -------------------------------------------------------------------------------- /test/css.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/css.test.js -------------------------------------------------------------------------------- /test/edge-cases/boundary-scenarios.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/edge-cases/boundary-scenarios.test.js -------------------------------------------------------------------------------- /test/helpers/test-setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/helpers/test-setup.js -------------------------------------------------------------------------------- /test/integration/advanced-scenarios.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/integration/advanced-scenarios.test.js -------------------------------------------------------------------------------- /test/json.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/json.test.js -------------------------------------------------------------------------------- /test/operators/basic-operators.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/operators/basic-operators.test.js -------------------------------------------------------------------------------- /test/operators/text-operators.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/operators/text-operators.test.js -------------------------------------------------------------------------------- /test/performance/performance.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/performance/performance.test.js -------------------------------------------------------------------------------- /test/regex.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/regex.test.js -------------------------------------------------------------------------------- /test/selectors/javascript.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/selectors/javascript.test.js -------------------------------------------------------------------------------- /test/selectors/text.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/selectors/text.test.js -------------------------------------------------------------------------------- /test/selectors/xpath.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/test/selectors/xpath.test.js -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vitest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegadoTeam/legado-rule/HEAD/vitest.config.js --------------------------------------------------------------------------------