├── .gitattributes ├── .github ├── dependabot.yml ├── funding.yml └── workflows │ ├── automerge.yml │ ├── lint.yml │ ├── tag_and_release.yml │ ├── test.yml │ └── test_build.yml ├── .gitignore ├── .rubocop.yml ├── .ruby-version ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── bin ├── console ├── rake └── setup ├── ext └── selma │ ├── Cargo.toml │ ├── extconf.rb │ └── src │ ├── html.rs │ ├── html │ ├── element.rs │ ├── end_tag.rs │ └── text_chunk.rs │ ├── lib.rs │ ├── native_ref_wrap.rs │ ├── rewriter.rs │ ├── sanitizer.rs │ ├── selector.rs │ └── tags.rs ├── lib ├── selma.rb └── selma │ ├── config.rb │ ├── extension.rb │ ├── html.rb │ ├── html │ └── element.rb │ ├── rewriter.rb │ ├── sanitizer.rb │ ├── sanitizer │ ├── config.rb │ └── config │ │ ├── basic.rb │ │ ├── default.rb │ │ ├── relaxed.rb │ │ └── restricted.rb │ ├── selector.rb │ └── version.rb ├── rakelib ├── benchmark.rake ├── compile.rake ├── extension.rake ├── lint.rake └── test.rake ├── script ├── bootstrap ├── docker_build └── valgrind ├── selma.gemspec └── test ├── benchmark.rb ├── benchmark ├── html │ ├── document-lg.html │ ├── document-md.html │ ├── document-sm.html │ ├── fragment-large.html │ └── fragment-small.html └── selma_config.rb ├── fixtures ├── deleting_content.html └── docs.html ├── memcheck ├── Dockerfile ├── entrypoint.sh └── tools │ ├── rust-wrapper.sh │ └── userhack.sh ├── selma_maliciousness_test.rb ├── selma_rewriter_match_attribute_test.rb ├── selma_rewriter_match_element_test.rb ├── selma_rewriter_test.rb ├── selma_rewriter_text_test.rb ├── selma_sanitizer_comments_test.rb ├── selma_sanitizer_config_test.rb ├── selma_sanitizer_doctype_test.rb ├── selma_sanitizer_elements_test.rb ├── selma_sanitizer_malicious_html_test.rb ├── selma_sanitizer_parser_test.rb ├── selma_sanitizer_test.rb ├── selma_selector_test.rb └── test_helper.rb /.gitattributes: -------------------------------------------------------------------------------- 1 | # exclude HTML files from stats 2 | test/benchmark/** linguist-vendored 3 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/funding.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/funding.yml -------------------------------------------------------------------------------- /.github/workflows/automerge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/workflows/automerge.yml -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/tag_and_release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/workflows/tag_and_release.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.github/workflows/test_build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.github/workflows/test_build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.gitignore -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.4.1 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/Rakefile -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/bin/console -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/bin/rake -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/bin/setup -------------------------------------------------------------------------------- /ext/selma/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/Cargo.toml -------------------------------------------------------------------------------- /ext/selma/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/extconf.rb -------------------------------------------------------------------------------- /ext/selma/src/html.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/html.rs -------------------------------------------------------------------------------- /ext/selma/src/html/element.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/html/element.rs -------------------------------------------------------------------------------- /ext/selma/src/html/end_tag.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/html/end_tag.rs -------------------------------------------------------------------------------- /ext/selma/src/html/text_chunk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/html/text_chunk.rs -------------------------------------------------------------------------------- /ext/selma/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/lib.rs -------------------------------------------------------------------------------- /ext/selma/src/native_ref_wrap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/native_ref_wrap.rs -------------------------------------------------------------------------------- /ext/selma/src/rewriter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/rewriter.rs -------------------------------------------------------------------------------- /ext/selma/src/sanitizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/sanitizer.rs -------------------------------------------------------------------------------- /ext/selma/src/selector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/selector.rs -------------------------------------------------------------------------------- /ext/selma/src/tags.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/ext/selma/src/tags.rs -------------------------------------------------------------------------------- /lib/selma.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma.rb -------------------------------------------------------------------------------- /lib/selma/config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/config.rb -------------------------------------------------------------------------------- /lib/selma/extension.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/extension.rb -------------------------------------------------------------------------------- /lib/selma/html.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/html.rb -------------------------------------------------------------------------------- /lib/selma/html/element.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/html/element.rb -------------------------------------------------------------------------------- /lib/selma/rewriter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/rewriter.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer/config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer/config.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer/config/basic.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer/config/basic.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer/config/default.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer/config/default.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer/config/relaxed.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer/config/relaxed.rb -------------------------------------------------------------------------------- /lib/selma/sanitizer/config/restricted.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/sanitizer/config/restricted.rb -------------------------------------------------------------------------------- /lib/selma/selector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/lib/selma/selector.rb -------------------------------------------------------------------------------- /lib/selma/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Selma 4 | VERSION = "0.4.14" 5 | end 6 | -------------------------------------------------------------------------------- /rakelib/benchmark.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/rakelib/benchmark.rake -------------------------------------------------------------------------------- /rakelib/compile.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/rakelib/compile.rake -------------------------------------------------------------------------------- /rakelib/extension.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/rakelib/extension.rake -------------------------------------------------------------------------------- /rakelib/lint.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/rakelib/lint.rake -------------------------------------------------------------------------------- /rakelib/test.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/rakelib/test.rake -------------------------------------------------------------------------------- /script/bootstrap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/script/bootstrap -------------------------------------------------------------------------------- /script/docker_build: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/script/docker_build -------------------------------------------------------------------------------- /script/valgrind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/script/valgrind -------------------------------------------------------------------------------- /selma.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/selma.gemspec -------------------------------------------------------------------------------- /test/benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark.rb -------------------------------------------------------------------------------- /test/benchmark/html/document-lg.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/html/document-lg.html -------------------------------------------------------------------------------- /test/benchmark/html/document-md.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/html/document-md.html -------------------------------------------------------------------------------- /test/benchmark/html/document-sm.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/html/document-sm.html -------------------------------------------------------------------------------- /test/benchmark/html/fragment-large.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/html/fragment-large.html -------------------------------------------------------------------------------- /test/benchmark/html/fragment-small.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/html/fragment-small.html -------------------------------------------------------------------------------- /test/benchmark/selma_config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/benchmark/selma_config.rb -------------------------------------------------------------------------------- /test/fixtures/deleting_content.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/fixtures/deleting_content.html -------------------------------------------------------------------------------- /test/fixtures/docs.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/fixtures/docs.html -------------------------------------------------------------------------------- /test/memcheck/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/memcheck/Dockerfile -------------------------------------------------------------------------------- /test/memcheck/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/memcheck/entrypoint.sh -------------------------------------------------------------------------------- /test/memcheck/tools/rust-wrapper.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/memcheck/tools/rust-wrapper.sh -------------------------------------------------------------------------------- /test/memcheck/tools/userhack.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/memcheck/tools/userhack.sh -------------------------------------------------------------------------------- /test/selma_maliciousness_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_maliciousness_test.rb -------------------------------------------------------------------------------- /test/selma_rewriter_match_attribute_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_rewriter_match_attribute_test.rb -------------------------------------------------------------------------------- /test/selma_rewriter_match_element_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_rewriter_match_element_test.rb -------------------------------------------------------------------------------- /test/selma_rewriter_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_rewriter_test.rb -------------------------------------------------------------------------------- /test/selma_rewriter_text_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_rewriter_text_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_comments_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_comments_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_config_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_config_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_doctype_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_doctype_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_elements_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_elements_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_malicious_html_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_malicious_html_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_parser_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_parser_test.rb -------------------------------------------------------------------------------- /test/selma_sanitizer_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_sanitizer_test.rb -------------------------------------------------------------------------------- /test/selma_selector_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/selma_selector_test.rb -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gjtorikian/selma/HEAD/test/test_helper.rb --------------------------------------------------------------------------------