{"id":37958582,"url":"https://github.com/clj/filtercoffee","last_synced_at":"2026-01-16T18:02:09.462Z","repository":{"id":2252182,"uuid":"3207269","full_name":"clj/filtercoffee","owner":"clj","description":"A simple WSGI Middleware for compiling CoffeeScript to JavaScript on the fly","archived":false,"fork":false,"pushed_at":"2012-02-01T18:45:29.000Z","size":96,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-12-05T12:03:03.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clj.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-18T09:13:14.000Z","updated_at":"2014-01-26T01:26:44.000Z","dependencies_parsed_at":"2022-08-18T01:55:50.586Z","dependency_job_id":null,"html_url":"https://github.com/clj/filtercoffee","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"purl":"pkg:github/clj/filtercoffee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clj%2Ffiltercoffee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clj%2Ffiltercoffee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clj%2Ffiltercoffee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clj%2Ffiltercoffee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clj","download_url":"https://codeload.github.com/clj/filtercoffee/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clj%2Ffiltercoffee/sbom","scorecard":{"id":291865,"data":{"date":"2025-08-11","repo":{"name":"github.com/clj/filtercoffee","commit":"f645a9ea11770e145d693937054afa9d6b400b50"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T18:28:05.580Z","repository_id":2252182,"created_at":"2025-08-17T18:28:05.580Z","updated_at":"2025-08-17T18:28:05.580Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T18:02:09.358Z","updated_at":"2026-01-16T18:02:09.434Z","avatar_url":"https://github.com/clj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"FilterCoffee \n============\n\nFilterCoffee is a simple WSG middleware for compiling CoffeeScript to JavaScript\non the fly. It is intended for use in the development of WSGI applicatons, but\nfor deployed applications you should use some other strategy for delivering your\ncompiled CoffeeScript (e.g., write a script to compile all your CoffeeScripts to\nJavaScript).\n\nFilterCoffee caches the compiled CoffeeScripts in memory but will recompile\nscripts when they are modified. A CoffeeScript compilation error results in the\nrequest returning a ``500`` error containing the CoffeeScript error message in\nthe body. Error messages are also output to the ``wsgi.error`` stream so that\nthey will show up in your console or in your servers error log. \n\n\nInstallation\n------------\n\nFilterCoffee depends on CoffeeScript and in turn node.js. CoffeeScript expects\nthe ``coffee`` command to be available on the current PATH. See the installation\ninstructions for CoffeeScript for more information:\nhttp://coffeescript.org/#installation\n\nThere are a number of different ways to install CoffeeFilter:\n\nUsing PIP\n~~~~~~~~~\n\nThis is the preferred method. Run::\n\n  pip install filtercoffee\n\nFor an Individual Applicaiton\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCopy ``filtercoffee.py`` into an appropriate place in your WSGI applications\ncode.\n\nSystem Wide from Downloaded Source\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRun::\n\n  python setup.py install\n\nBasic Usage\n-----------\n\nYou can wrap your WSGI application in the FilterCoffee middleware like so\n(assuming that the variable ``app`` contains your WSGI application and the\nvariable ``debug`` is only set when the application is in development mode::\n\n  if debug:\n      import filtercoffee\n      app = filtercoffee.FilterCoffee(\n                  app,\n\t          static_dir='/path/to/static/files')\n\nFilterCoffee will now intercept any request that ends in ``.js`` and check if a\ncorresponding ``.coffee`` file exists. If a ``.coffee`` file exists it will be\ncompiled and the comiled output will be returned in the response (the compiled\noutput is also cached such that recompilation only occurs if the ``.coffee``\nfile changes). If no ``.coffee`` file exists, the original application is called\nto handle the request.\n\nAdvanced Usage\n--------------\n\nFilterCoffee has flexible support for deciding what it should consider a Coffee-\nor JavaScript. Check the arguments to FilterCoffee's ``__init__`` method.\n\nRelated Software\n----------------\n\n  http://github.com/dsc/coffeecup\n    Uses the ``coffee`` command's ``watch`` option to recompile files and leaves\n    the resulting JavaScript files in the file system. This is in contrast with\n    FilterCoffee which does its own caching and does not leave .js files in the\n    filesystem.\n\nChangelog\n=========\n\n0.3 Feb 01, 2012\n\n* Include README in source distribution\n\n0.2 Jan 25, 2012\n\n* Documentation Updates\n* PyPI\n\n0.1 Jan 17, 2012\n\n* Initial release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclj%2Ffiltercoffee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclj%2Ffiltercoffee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclj%2Ffiltercoffee/lists"}