{"id":13708068,"url":"https://github.com/opencollective/opencollective-pdf","last_synced_at":"2025-05-06T07:31:30.254Z","repository":{"id":38273212,"uuid":"159353714","full_name":"opencollective/opencollective-pdf","owner":"opencollective","description":"Open Collective's PDF Server","archived":false,"fork":false,"pushed_at":"2025-04-22T07:40:26.000Z","size":28340,"stargazers_count":77,"open_issues_count":6,"forks_count":41,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-04-27T15:47:12.679Z","etag":null,"topics":["gr","graphql","invoices-pdf","nodejs","opencollective"],"latest_commit_sha":null,"homepage":"https://opencollective-pdf.vercel.app","language":"TypeScript","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/opencollective.png","metadata":{"funding":{"open_collective":"opencollective"},"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-27T15:05:38.000Z","updated_at":"2025-04-24T12:45:57.000Z","dependencies_parsed_at":"2023-10-17T03:14:07.734Z","dependency_job_id":"dc320538-8239-42a1-907e-f580a4889e24","html_url":"https://github.com/opencollective/opencollective-pdf","commit_stats":{"total_commits":842,"total_committers":18,"mean_commits":46.77777777777778,"dds":0.5783847980997625,"last_synced_commit":"7ddc7403cfb60805e8ced02ca335a32a6dde4b87"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencollective%2Fopencollective-pdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencollective%2Fopencollective-pdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencollective%2Fopencollective-pdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencollective%2Fopencollective-pdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opencollective","download_url":"https://codeload.github.com/opencollective/opencollective-pdf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252640026,"owners_count":21780860,"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","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":["gr","graphql","invoices-pdf","nodejs","opencollective"],"created_at":"2024-08-02T22:01:54.927Z","updated_at":"2025-05-06T07:31:30.248Z","avatar_url":"https://github.com/opencollective.png","language":"TypeScript","funding_links":["https://opencollective.com/opencollective"],"categories":["JavaScript","TypeScript"],"sub_categories":[],"readme":"# Open Collective PDF service\n\n![Build and Push](https://github.com/wei/pull/workflows/Build%20and%20Push/badge.svg)\n\n## Foreword\n\nIf you see a step below that could be improved (or is outdated), please update the instructions. We rarely go through this process ourselves, so your fresh pair of eyes and your recent experience with it, makes you the best candidate to improve them for other users. Thank you!\n\n## Development\n\n### Prerequisite\n\n### Install\n\nWe recommend cloning the repository in a folder dedicated to `opencollective` projects.\n\n```\ngit clone git@github.com:opencollective/opencollective-pdf.git opencollective/pdf\ncd opencollective/pdf\nnpm install\n```\n\n### Start\n\nTo start the service:\n\n```\nnpm run dev\n```\n\n#### Usage with frontend\n\nIf you use this service through local frontend, you will need to add `PDF_SERVICE_URL=http://localhost:3002` line to `.env`. You're ready to go - frontend will pass your authorization token directly to the app.\n\nHowever this is not practical to develop, you should only use it to debug the\nbridge between the two services.\n\n#### Calling URLs directly\n\nThis method can be usefull to debug staging or production invoices, or to work\nwith you local development data. It is also the best way if you need to make changes to\nthe graphql queries.\n\nThe easier to make it work is to go to `/:userSlug/admin/for-developers` on the frontend,\ngenerate a personal token, and to add `?personalToken=your_key_here` to all your requests.\n\n## Contributing\n\nCode style? Commit convention? Please check our [Contributing guidelines](CONTRIBUTING.md).\n\nTL;DR: we use [Prettier](https://prettier.io/) and [ESLint](https://eslint.org/), we do like great commit messages and clean Git history.\n\n## Tests\n\n- Run all tests: `npm test`\n- Run tests in watch mode: `npm run test:watch`\n- Run tests with coverage report: `npm run test:coverage`\n\nBe aware that `watch` currently doesn't auto-reload the express app.\n\n## Deployment\n\nMerging to `main` branch will auto-deploy the pdf service to Heroku.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencollective%2Fopencollective-pdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencollective%2Fopencollective-pdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencollective%2Fopencollective-pdf/lists"}