{"id":172368,"name":null,"description":"A test-first approach to developing a REST-ful API in Node.js","url":"https://github.com/cedrickchee/tdd-node-pg-knex","last_synced_at":"2025-09-09T22:03:44.212Z","repository":{"id":138118969,"uuid":"276364806","full_name":"cedrickchee/tdd-node-pg-knex","owner":"cedrickchee","description":"A test-first approach to developing a REST-ful API in Node.js","archived":false,"fork":false,"pushed_at":"2023-01-11T16:39:24.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-12T07:27:31.975Z","etag":null,"topics":["knexjs-nodejs-db-migration","nodejs","postgresql","red-green-refactor","tdd","tdd-javascript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/cedrickchee.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-01T11:55:12.000Z","updated_at":"2025-02-21T15:52:46.000Z","dependencies_parsed_at":"2024-03-26T12:15:33.742Z","dependency_job_id":null,"html_url":"https://github.com/cedrickchee/tdd-node-pg-knex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cedrickchee/tdd-node-pg-knex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedrickchee","download_url":"https://codeload.github.com/cedrickchee/tdd-node-pg-knex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274368122,"owners_count":25272354,"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-09T02:00:10.223Z","response_time":80,"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":{"login":"cedrickchee","name":"Cedric Chee","uuid":"145605","kind":"user","description":"Lead Software Engineer | LLMs | full stack Go/JS dev, backend | product dev @ startups | 🧑‍🎓 CompSci | alumni: fast.ai, Antler.co","email":"","website":"https://cedricchee.com","location":"PID 1","twitter":"cedric_chee","company":"InvictusByte","icon_url":"https://avatars.githubusercontent.com/u/145605?u=301e6088253a429b4a89da3d65ae0c76578a3d72\u0026v=4","repositories_count":227,"last_synced_at":"2024-04-19T19:26:32.837Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/cedrickchee","funding_links":[],"total_stars":3544,"followers":254,"following":1,"created_at":"2022-11-02T21:51:29.219Z","updated_at":"2024-04-19T19:26:46.914Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedrickchee","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedrickchee/repositories"},"packages":[],"commits":{"id":6164325,"full_name":"cedrickchee/tdd-node-pg-knex","default_branch":"master","committers":null,"total_commits":null,"total_committers":null,"total_bot_commits":null,"total_bot_committers":null,"mean_commits":null,"dds":null,"past_year_committers":null,"past_year_total_commits":null,"past_year_total_committers":null,"past_year_total_bot_commits":null,"past_year_total_bot_committers":null,"past_year_mean_commits":null,"past_year_dds":null,"last_synced_at":null,"last_synced_commit":null,"created_at":"2024-11-17T23:09:49.267Z","updated_at":"2024-11-17T23:09:49.267Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:17:06.873Z","repositories_count":5537895,"commits_count":874610347,"contributors_count":32275623,"owners_count":918967,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"cedrickchee/tdd-node-pg-knex","html_url":"https://github.com/cedrickchee/tdd-node-pg-knex","last_synced_at":"2025-03-12T07:23:41.129Z","status":null,"issues_count":0,"pull_requests_count":1,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":41.0,"issues_closed_count":0,"pull_requests_closed_count":1,"pull_request_authors_count":1,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":1,"bot_issues_count":0,"bot_pull_requests_count":1,"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,"created_at":"2024-11-17T23:09:49.783Z","updated_at":"2025-03-12T07:23:41.130Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Ftdd-node-pg-knex/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":1},"issue_author_associations_count":{},"pull_request_author_associations_count":{"CONTRIBUTOR":1},"issue_authors":{},"pull_request_authors":{"dependabot[bot]":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:00:11.778Z","repositories_count":10198390,"issues_count":32261014,"pull_requests_count":101829205,"authors_count":10741465,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{},"last_year":{}},"keywords":["knexjs-nodejs-db-migration","nodejs","postgresql","red-green-refactor","tdd","tdd-javascript"],"dependencies":[{"ecosystem":"npm","filepath":"package-lock.json","sha":null,"kind":"lockfile","created_at":"2024-03-26T12:15:33.393Z","updated_at":"2024-03-26T12:15:33.393Z","repository_link":"https://github.com/cedrickchee/tdd-node-pg-knex/blob/master/package-lock.json","dependencies":[{"id":17049784119,"package_name":"@types/chai","ecosystem":"npm","requirements":"4.2.11","direct":false,"kind":"development","optional":false},{"id":17049784120,"package_name":"@types/cookiejar","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":17049784121,"package_name":"@types/node","ecosystem":"npm","requirements":"14.0.14","direct":false,"kind":"development","optional":false},{"id":17049784122,"package_name":"@types/superagent","ecosystem":"npm","requirements":"3.8.7","direct":false,"kind":"development","optional":false},{"id":17049784123,"package_name":"accepts","ecosystem":"npm","requirements":"1.3.7","direct":false,"kind":"runtime","optional":false},{"id":17049784124,"package_name":"ansi-colors","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":17049784125,"package_name":"ansi-regex","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784126,"package_name":"ansi-styles","ecosystem":"npm","requirements":"3.2.1","direct":false,"kind":"development","optional":false},{"id":17049784127,"package_name":"anymatch","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":17049784128,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":17049784129,"package_name":"array-flatten","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":17049784130,"package_name":"array.prototype.map","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784131,"package_name":"assertion-error","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":17049784133,"package_name":"asynckit","ecosystem":"npm","requirements":"0.4.0","direct":false,"kind":"development","optional":false},{"id":17049784134,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":17049784136,"package_name":"basic-auth","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":17049784138,"package_name":"binary-extensions","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":17049784140,"package_name":"body-parser","ecosystem":"npm","requirements":"1.18.3","direct":false,"kind":"runtime","optional":false},{"id":17049784141,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":17049784144,"package_name":"browser-stdout","ecosystem":"npm","requirements":"1.3.1","direct":false,"kind":"development","optional":false},{"id":17049784146,"package_name":"buffer-writer","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784149,"package_name":"bytes","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784151,"package_name":"camelcase","ecosystem":"npm","requirements":"5.3.1","direct":false,"kind":"development","optional":false},{"id":17049784153,"package_name":"chai","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"development","optional":false},{"id":17049784155,"package_name":"chai-http","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":17049784157,"package_name":"chalk","ecosystem":"npm","requirements":"2.4.2","direct":false,"kind":"development","optional":false},{"id":17049784161,"package_name":"supports-color","ecosystem":"npm","requirements":"5.5.0","direct":false,"kind":"development","optional":false},{"id":17049784163,"package_name":"check-error","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784165,"package_name":"chokidar","ecosystem":"npm","requirements":"3.3.1","direct":false,"kind":"development","optional":false},{"id":17049784167,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":17049784168,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":17049784170,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":17049784172,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":17049784173,"package_name":"cliui","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":17049784175,"package_name":"ansi-regex","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":17049784176,"package_name":"string-width","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":17049784178,"package_name":"strip-ansi","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"development","optional":false},{"id":17049784179,"package_name":"color-convert","ecosystem":"npm","requirements":"1.9.3","direct":false,"kind":"development","optional":false},{"id":17049784181,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":17049784183,"package_name":"colorette","ecosystem":"npm","requirements":"2.0.19","direct":false,"kind":"runtime","optional":false},{"id":17049784184,"package_name":"combined-stream","ecosystem":"npm","requirements":"1.0.8","direct":false,"kind":"development","optional":false},{"id":17049784186,"package_name":"commander","ecosystem":"npm","requirements":"9.5.0","direct":false,"kind":"runtime","optional":false},{"id":17049784187,"package_name":"component-emitter","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":17049784189,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":17049784191,"package_name":"content-disposition","ecosystem":"npm","requirements":"0.5.2","direct":false,"kind":"runtime","optional":false},{"id":17049784192,"package_name":"content-type","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":17049784194,"package_name":"cookie","ecosystem":"npm","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":17049784196,"package_name":"cookie-parser","ecosystem":"npm","requirements":"1.4.5","direct":false,"kind":"runtime","optional":false},{"id":17049784198,"package_name":"cookie-signature","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":17049784200,"package_name":"cookiejar","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":17049784201,"package_name":"core-util-is","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784203,"package_name":"debug","ecosystem":"npm","requirements":"2.6.9","direct":false,"kind":"runtime","optional":false},{"id":17049784205,"package_name":"decamelize","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":17049784206,"package_name":"deep-eql","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":17049784208,"package_name":"define-properties","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":17049784210,"package_name":"delayed-stream","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":17049784212,"package_name":"depd","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784214,"package_name":"destroy","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":17049784215,"package_name":"diff","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":17049784217,"package_name":"dotenv","ecosystem":"npm","requirements":"8.2.0","direct":false,"kind":"runtime","optional":false},{"id":17049784218,"package_name":"ee-first","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":17049784220,"package_name":"emoji-regex","ecosystem":"npm","requirements":"7.0.3","direct":false,"kind":"development","optional":false},{"id":17049784222,"package_name":"encodeurl","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":17049784224,"package_name":"es-abstract","ecosystem":"npm","requirements":"1.17.6","direct":false,"kind":"development","optional":false},{"id":17049784225,"package_name":"es-array-method-boxes-properly","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":17049784227,"package_name":"es-get-iterator","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":17049784229,"package_name":"isarray","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":17049784231,"package_name":"es-to-primitive","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":17049784233,"package_name":"escalade","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":17049784234,"package_name":"escape-html","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":17049784236,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":17049784238,"package_name":"esm","ecosystem":"npm","requirements":"3.2.25","direct":false,"kind":"runtime","optional":false},{"id":17049784239,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":17049784241,"package_name":"etag","ecosystem":"npm","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":17049784243,"package_name":"express","ecosystem":"npm","requirements":"4.16.4","direct":false,"kind":"runtime","optional":false},{"id":17049784245,"package_name":"cookie","ecosystem":"npm","requirements":"0.3.1","direct":false,"kind":"runtime","optional":false},{"id":17049784246,"package_name":"extend","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":17049784248,"package_name":"finalhandler","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":17049784250,"package_name":"find-up","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":17049784252,"package_name":"flat","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":17049784254,"package_name":"is-buffer","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":17049784256,"package_name":"form-data","ecosystem":"npm","requirements":"2.5.1","direct":false,"kind":"development","optional":false},{"id":17049784257,"package_name":"formidable","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"development","optional":false},{"id":17049784259,"package_name":"forwarded","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784260,"package_name":"fresh","ecosystem":"npm","requirements":"0.5.2","direct":false,"kind":"runtime","optional":false},{"id":17049784262,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":17049784263,"package_name":"fsevents","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"development","optional":false},{"id":17049784265,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":17049784267,"package_name":"get-caller-file","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":17049784268,"package_name":"get-func-name","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784269,"package_name":"get-package-type","ecosystem":"npm","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":17049784271,"package_name":"getopts","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":17049784272,"package_name":"glob","ecosystem":"npm","requirements":"7.1.6","direct":false,"kind":"development","optional":false},{"id":17049784274,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"development","optional":false},{"id":17049784276,"package_name":"growl","ecosystem":"npm","requirements":"1.10.5","direct":false,"kind":"development","optional":false},{"id":17049784277,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":17049784279,"package_name":"has-flag","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784281,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":17049784283,"package_name":"he","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":17049784284,"package_name":"http-errors","ecosystem":"npm","requirements":"1.6.3","direct":false,"kind":"runtime","optional":false},{"id":17049784286,"package_name":"iconv-lite","ecosystem":"npm","requirements":"0.4.23","direct":false,"kind":"runtime","optional":false},{"id":17049784288,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":17049784290,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":17049784291,"package_name":"interpret","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":17049784293,"package_name":"ip-regex","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":17049784294,"package_name":"ipaddr.js","ecosystem":"npm","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":17049784296,"package_name":"is-arguments","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":17049784298,"package_name":"is-binary-path","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":17049784299,"package_name":"is-callable","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":17049784301,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.11.0","direct":false,"kind":"runtime","optional":false},{"id":17049784304,"package_name":"is-date-object","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784306,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":17049784308,"package_name":"is-fullwidth-code-point","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784309,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":17049784311,"package_name":"is-ip","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784313,"package_name":"is-map","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":17049784314,"package_name":"is-regex","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":17049784316,"package_name":"is-set","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":17049784318,"package_name":"is-string","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":17049784320,"package_name":"is-symbol","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":17049784321,"package_name":"isarray","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":17049784323,"package_name":"isexe","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784325,"package_name":"iterate-iterator","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":17049784327,"package_name":"iterate-value","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784328,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.13.1","direct":false,"kind":"development","optional":false},{"id":17049784329,"package_name":"knex","ecosystem":"npm","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":17049784331,"package_name":"debug","ecosystem":"npm","requirements":"4.3.4","direct":false,"kind":"runtime","optional":false},{"id":17049784332,"package_name":"lodash","ecosystem":"npm","requirements":"4.17.21","direct":false,"kind":"runtime","optional":false},{"id":17049784334,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784336,"package_name":"locate-path","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":17049784337,"package_name":"lodash","ecosystem":"npm","requirements":"4.17.15","direct":false,"kind":"development","optional":false},{"id":17049784339,"package_name":"log-symbols","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784341,"package_name":"media-typer","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":17049784342,"package_name":"merge-descriptors","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":17049784344,"package_name":"methods","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784345,"package_name":"mime","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":17049784347,"package_name":"mime-db","ecosystem":"npm","requirements":"1.44.0","direct":false,"kind":"runtime","optional":false},{"id":17049784348,"package_name":"mime-types","ecosystem":"npm","requirements":"2.1.27","direct":false,"kind":"runtime","optional":false},{"id":17049784350,"package_name":"minimatch","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":17049784352,"package_name":"mocha","ecosystem":"npm","requirements":"8.0.1","direct":false,"kind":"development","optional":false},{"id":17049784354,"package_name":"debug","ecosystem":"npm","requirements":"3.2.6","direct":false,"kind":"development","optional":false},{"id":17049784355,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":17049784357,"package_name":"which","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":17049784359,"package_name":"morgan","ecosystem":"npm","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":17049784360,"package_name":"ms","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784362,"package_name":"negotiator","ecosystem":"npm","requirements":"0.6.2","direct":false,"kind":"runtime","optional":false},{"id":17049784364,"package_name":"normalize-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784365,"package_name":"object-inspect","ecosystem":"npm","requirements":"1.8.0","direct":false,"kind":"development","optional":false},{"id":17049784367,"package_name":"object-keys","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":17049784368,"package_name":"object.assign","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":17049784370,"package_name":"on-finished","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":17049784371,"package_name":"on-headers","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":17049784373,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":17049784374,"package_name":"p-limit","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":17049784376,"package_name":"p-locate","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":17049784378,"package_name":"p-try","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":17049784379,"package_name":"packet-reader","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784381,"package_name":"parseurl","ecosystem":"npm","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":17049784382,"package_name":"path-exists","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":17049784384,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":17049784385,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":17049784387,"package_name":"path-to-regexp","ecosystem":"npm","requirements":"0.1.7","direct":false,"kind":"runtime","optional":false},{"id":17049784389,"package_name":"pathval","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":17049784391,"package_name":"pg","ecosystem":"npm","requirements":"8.2.1","direct":false,"kind":"runtime","optional":false},{"id":17049784393,"package_name":"pg-connection-string","ecosystem":"npm","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":17049784395,"package_name":"semver","ecosystem":"npm","requirements":"4.3.2","direct":false,"kind":"runtime","optional":false},{"id":17049784397,"package_name":"pg-connection-string","ecosystem":"npm","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":17049784399,"package_name":"pg-int8","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":17049784401,"package_name":"pg-pool","ecosystem":"npm","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":17049784403,"package_name":"pg-protocol","ecosystem":"npm","requirements":"1.2.4","direct":false,"kind":"runtime","optional":false},{"id":17049784404,"package_name":"pg-types","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":17049784406,"package_name":"pgpass","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":17049784408,"package_name":"picomatch","ecosystem":"npm","requirements":"2.2.2","direct":false,"kind":"development","optional":false},{"id":17049784410,"package_name":"postgres-array","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784412,"package_name":"postgres-bytea","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784413,"package_name":"postgres-date","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":17049784415,"package_name":"postgres-interval","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":17049784417,"package_name":"process-nextick-args","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":17049784419,"package_name":"promise.allsettled","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784421,"package_name":"proxy-addr","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"runtime","optional":false},{"id":17049784423,"package_name":"qs","ecosystem":"npm","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":17049784424,"package_name":"range-parser","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":17049784426,"package_name":"raw-body","ecosystem":"npm","requirements":"2.3.3","direct":false,"kind":"runtime","optional":false},{"id":17049784428,"package_name":"readable-stream","ecosystem":"npm","requirements":"2.3.7","direct":false,"kind":"development","optional":false},{"id":17049784430,"package_name":"readdirp","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"development","optional":false},{"id":17049784432,"package_name":"rechoir","ecosystem":"npm","requirements":"0.8.0","direct":false,"kind":"runtime","optional":false},{"id":17049784433,"package_name":"require-directory","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":17049784435,"package_name":"require-main-filename","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784437,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.1","direct":false,"kind":"runtime","optional":false},{"id":17049784439,"package_name":"resolve-from","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784441,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784443,"package_name":"safer-buffer","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784444,"package_name":"semver","ecosystem":"npm","requirements":"7.3.2","direct":false,"kind":"runtime","optional":false},{"id":17049784446,"package_name":"send","ecosystem":"npm","requirements":"0.16.2","direct":false,"kind":"runtime","optional":false},{"id":17049784449,"package_name":"serialize-javascript","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784451,"package_name":"serve-static","ecosystem":"npm","requirements":"1.13.2","direct":false,"kind":"runtime","optional":false},{"id":17049784453,"package_name":"set-blocking","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784455,"package_name":"setprototypeof","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":17049784457,"package_name":"split","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":17049784459,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":17049784461,"package_name":"statuses","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":17049784463,"package_name":"string-width","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":17049784465,"package_name":"string.prototype.trimend","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":17049784467,"package_name":"string.prototype.trimstart","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":17049784469,"package_name":"string_decoder","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":17049784471,"package_name":"strip-ansi","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":17049784473,"package_name":"strip-json-comments","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":17049784475,"package_name":"superagent","ecosystem":"npm","requirements":"3.8.3","direct":false,"kind":"development","optional":false},{"id":17049784477,"package_name":"supports-color","ecosystem":"npm","requirements":"7.1.0","direct":false,"kind":"development","optional":false},{"id":17049784479,"package_name":"has-flag","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":17049784481,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784483,"package_name":"tarn","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":17049784486,"package_name":"through","ecosystem":"npm","requirements":"2.3.8","direct":false,"kind":"runtime","optional":false},{"id":17049784488,"package_name":"tildify","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784491,"package_name":"type-detect","ecosystem":"npm","requirements":"4.0.8","direct":false,"kind":"development","optional":false},{"id":17049784493,"package_name":"type-is","ecosystem":"npm","requirements":"1.6.18","direct":false,"kind":"runtime","optional":false},{"id":17049784495,"package_name":"unpipe","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":17049784497,"package_name":"util-deprecate","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784499,"package_name":"utils-merge","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":17049784500,"package_name":"vary","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":17049784502,"package_name":"which-module","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":17049784504,"package_name":"wide-align","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":17049784506,"package_name":"workerpool","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":17049784508,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"5.1.0","direct":false,"kind":"development","optional":false},{"id":17049784510,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":17049784511,"package_name":"xtend","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":17049784513,"package_name":"y18n","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":17049784515,"package_name":"yargs","ecosystem":"npm","requirements":"13.3.2","direct":false,"kind":"development","optional":false},{"id":17049784517,"package_name":"find-up","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784519,"package_name":"locate-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784521,"package_name":"p-locate","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784523,"package_name":"path-exists","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":17049784525,"package_name":"yargs-parser","ecosystem":"npm","requirements":"13.1.2","direct":false,"kind":"development","optional":false},{"id":17049784526,"package_name":"yargs-unparser","ecosystem":"npm","requirements":"1.6.0","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"package.json","sha":null,"kind":"manifest","created_at":"2024-03-26T12:15:33.605Z","updated_at":"2024-03-26T12:15:33.605Z","repository_link":"https://github.com/cedrickchee/tdd-node-pg-knex/blob/master/package.json","dependencies":[{"id":17049785532,"package_name":"cookie-parser","ecosystem":"npm","requirements":"~1.4.4","direct":true,"kind":"runtime","optional":false},{"id":17049785533,"package_name":"debug","ecosystem":"npm","requirements":"~2.6.9","direct":true,"kind":"runtime","optional":false},{"id":17049785534,"package_name":"dotenv","ecosystem":"npm","requirements":"^8.2.0","direct":true,"kind":"runtime","optional":false},{"id":17049785535,"package_name":"express","ecosystem":"npm","requirements":"~4.16.1","direct":true,"kind":"runtime","optional":false},{"id":17049785536,"package_name":"knex","ecosystem":"npm","requirements":"^2.4.0","direct":true,"kind":"runtime","optional":false},{"id":17049785537,"package_name":"morgan","ecosystem":"npm","requirements":"~1.9.1","direct":true,"kind":"runtime","optional":false},{"id":17049785538,"package_name":"pg","ecosystem":"npm","requirements":"^8.2.1","direct":true,"kind":"runtime","optional":false},{"id":17049785539,"package_name":"semver","ecosystem":"npm","requirements":"^7.3.2","direct":true,"kind":"runtime","optional":false},{"id":17049785540,"package_name":"chai","ecosystem":"npm","requirements":"^4.2.0","direct":true,"kind":"development","optional":false},{"id":17049785541,"package_name":"chai-http","ecosystem":"npm","requirements":"^4.3.0","direct":true,"kind":"development","optional":false},{"id":17049785542,"package_name":"mocha","ecosystem":"npm","requirements":"^8.0.1","direct":true,"kind":"development","optional":false}]}],"score":null,"created_at":"2025-09-09T01:29:45.261Z","updated_at":"2025-10-07T08:40:10.513Z","avatar_url":"https://github.com/cedrickchee.png","language":"JavaScript","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/172368","html_url":"https://science.ecosyste.ms/projects/172368"}