{"id":2416827,"name":"surface","ecosystem":"npm","description":"A tiny middleware of RESTful API for koa.","homepage":"https://github.com/zedgu/surface","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/zedgu/surface","keywords_array":["RESTful","API","koa","middleware","JSON","XML","HTTP"],"namespace":null,"versions_count":31,"first_release_published_at":"2014-07-10T15:48:41.649Z","latest_release_published_at":"2016-06-02T06:33:55.532Z","latest_release_number":"0.8.1","last_synced_at":"2026-05-15T16:02:03.413Z","created_at":"2022-04-10T01:29:13.454Z","updated_at":"2026-05-15T16:02:03.413Z","registry_url":"https://www.npmjs.com/package/surface","install_command":"npm install surface","documentation_url":null,"metadata":{"funding":null,"dist-tags":{"latest":"0.8.1"}},"repo_metadata":{"id":57374958,"uuid":"21449202","full_name":"zedgu/surface","owner":"zedgu","description":"A tiny middleware of RESTful API for koa.","archived":false,"fork":false,"pushed_at":"2017-10-11T12:39:37.000Z","size":99,"stargazers_count":43,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-30T23:53:13.611Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zedgu.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-03T03:58:41.000Z","updated_at":"2025-07-15T13:14:22.000Z","dependencies_parsed_at":"2022-09-05T14:11:11.397Z","dependency_job_id":null,"html_url":"https://github.com/zedgu/surface","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/zedgu/surface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zedgu","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273244305,"owners_count":25070958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"owner_record":{"login":"zedgu","name":"Zed Gu","uuid":"522223","kind":"user","description":null,"email":"","website":"zgu.me","location":"Shanghai, China","twitter":null,"company":"Stepoch","icon_url":"https://avatars.githubusercontent.com/u/522223?u=6466ab02e77b211d0597ce7394754e9a929ee07f\u0026v=4","repositories_count":25,"last_synced_at":"2024-04-16T14:52:30.183Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/zedgu","funding_links":[],"total_stars":55,"followers":15,"following":8,"created_at":"2022-11-03T13:27:48.679Z","updated_at":"2024-04-16T14:52:39.929Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zedgu","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zedgu/repositories"},"tags":[{"name":"v0.7.13","sha":"a7050000976179b7cb5d1b6341a6e1d4704b4a60","kind":"tag","published_at":"2016-01-22T08:34:35.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.13","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.13/manifests"},{"name":"v0.7.12","sha":"f185f168aa7877753f801a2f6cc0ee55957f9b40","kind":"tag","published_at":"2015-06-08T12:50:31.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.12","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.12/manifests"},{"name":"v0.7.11","sha":"4aa209fd74ef8251a856f6b6d71897b94ad12615","kind":"tag","published_at":"2015-03-23T17:39:26.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.11","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.11/manifests"},{"name":"v0.7.10","sha":"eda30f5c4f419b404c8e6bcdcda633d2eda6838a","kind":"tag","published_at":"2015-02-25T11:48:07.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.10","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.10/manifests"},{"name":"v0.7.6","sha":"5924e3d12cf78f42c6b3320b3eead5381bf3a179","kind":"tag","published_at":"2014-12-10T09:00:30.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.6","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.6/manifests"},{"name":"v0.7.5","sha":"8738e866da948482990a0114f98a92b671417563","kind":"tag","published_at":"2014-10-16T13:53:45.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.5","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.5/manifests"},{"name":"v0.7.4","sha":"1d2cca9ff58a9e3e5bf3983c24c04ffb650d0bd7","kind":"commit","published_at":"2014-10-02T13:08:12.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.4","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"3677fc9e6c1b6dc8b8cdfa85742b162da0a8c8eb","kind":"tag","published_at":"2014-09-25T09:28:45.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.3","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"0ec574ef771194390c30c4f818015935eab6e8cc","kind":"tag","published_at":"2014-09-25T04:24:41.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.2","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"63072e4d6dcbcf6b38ba8a59dc45eac1d2240d67","kind":"tag","published_at":"2014-09-24T05:47:36.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.1","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"cde093cdc98e7ff2f791bce4a2cdc90ffca4d951","kind":"tag","published_at":"2014-09-15T09:48:59.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.7.0","html_url":"https://github.com/zedgu/surface/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.7.0/manifests"},{"name":"v0.6.5","sha":"0963e5e07af17a9c23452795772bc47b9df324b6","kind":"tag","published_at":"2014-09-13T12:16:13.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.6.5","html_url":"https://github.com/zedgu/surface/releases/tag/v0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.6.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.5/manifests"},{"name":"v0.6.4","sha":"0785e0c22ed125a5a6e44bdfc4ed64f52790059a","kind":"tag","published_at":"2014-09-06T12:46:21.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.6.4","html_url":"https://github.com/zedgu/surface/releases/tag/v0.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.4/manifests"},{"name":"v0.6.2","sha":"33fb8e19b1df3437e8d949cc3d055be3a0ed286f","kind":"tag","published_at":"2014-09-06T11:59:25.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.6.2","html_url":"https://github.com/zedgu/surface/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"54c3b9bd4de83cad9cb5d12c9d76fbb3d3514d54","kind":"tag","published_at":"2014-09-05T13:17:25.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.6.1","html_url":"https://github.com/zedgu/surface/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"a61b734be876f07fc2853b34fabc0ab17fe56314","kind":"tag","published_at":"2014-09-04T07:20:57.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.6.0","html_url":"https://github.com/zedgu/surface/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"c3fac48107fd3680fce5609ed7ac37e7118b50c2","kind":"tag","published_at":"2014-08-30T05:53:48.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.5.0","html_url":"https://github.com/zedgu/surface/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.5.0/manifests"},{"name":"v0.4.1","sha":"c430dbeadc6470b503a6dc8ffed9f2c5746fae18","kind":"tag","published_at":"2014-08-19T11:30:49.000Z","download_url":"https://codeload.github.com/zedgu/surface/tar.gz/v0.4.1","html_url":"https://github.com/zedgu/surface/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zedgu/surface@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/tags/v0.4.1/manifests"}]},"repo_metadata_updated_at":"2026-02-26T10:52:58.005Z","dependent_packages_count":1,"downloads":370,"downloads_period":"last-month","dependent_repos_count":6,"rankings":{"downloads":8.951728321796569,"dependent_repos_count":4.641440584517888,"dependent_packages_count":20.974713837819785,"stargazers_count":6.323350141920857,"forks_count":7.019993197871664,"docker_downloads_count":null,"average":9.582245216785353},"purl":"pkg:npm/surface","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/surface","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/npm/surface","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/surface/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-30T23:44:54.662Z","issues_count":3,"pull_requests_count":3,"avg_time_to_close_issue":1713858.0,"avg_time_to_close_pull_request":20871.5,"issues_closed_count":3,"pull_requests_closed_count":2,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":1.3333333333333333,"merged_pull_requests_count":2,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedgu%2Fsurface/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/surface/codemeta","maintainers":[{"uuid":"zedgu","login":"zedgu","name":null,"email":"heartcpu@gmail.com","url":null,"packages_count":7,"html_url":"https://www.npmjs.com/~zedgu","role":null,"created_at":"2022-11-14T15:11:38.857Z","updated_at":"2022-11-14T15:11:38.857Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/zedgu/packages"}]}