{"id":13880750,"url":"https://github.com/duffelhq/duffel-api-javascript","last_synced_at":"2025-07-16T17:31:02.803Z","repository":{"id":36951575,"uuid":"358308357","full_name":"duffelhq/duffel-api-javascript","owner":"duffelhq","description":"JavaScript client library for the Duffel API","archived":false,"fork":false,"pushed_at":"2025-07-04T09:55:46.000Z","size":4195,"stargazers_count":43,"open_issues_count":3,"forks_count":20,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-07-11T16:00:04.216Z","etag":null,"topics":["api","api-client","client-library","duffel","duffel-api","flights-api","javascript","nodejs","travel-api","typescript"],"latest_commit_sha":null,"homepage":"https://duffel.com/docs","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/duffelhq.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-15T15:32:15.000Z","updated_at":"2025-07-04T09:55:48.000Z","dependencies_parsed_at":"2023-12-06T09:30:52.872Z","dependency_job_id":"746a2359-edb6-453d-9f39-b2051c2f9dbc","html_url":"https://github.com/duffelhq/duffel-api-javascript","commit_stats":null,"previous_names":[],"tags_count":142,"template":false,"template_full_name":null,"purl":"pkg:github/duffelhq/duffel-api-javascript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffelhq%2Fduffel-api-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffelhq%2Fduffel-api-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffelhq%2Fduffel-api-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffelhq%2Fduffel-api-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duffelhq","download_url":"https://codeload.github.com/duffelhq/duffel-api-javascript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffelhq%2Fduffel-api-javascript/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264972554,"owners_count":23691402,"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":["api","api-client","client-library","duffel","duffel-api","flights-api","javascript","nodejs","travel-api","typescript"],"created_at":"2024-08-06T08:03:26.978Z","updated_at":"2025-07-16T17:31:01.869Z","avatar_url":"https://github.com/duffelhq.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Duffel API JavaScript Client\n\nA JavaScript client library for the Duffel API.\n\n**Content**\n\n- [Prerequisites](#prerequisites)\n- [Install](#install)\n- [Continuous Integration](#client-ci)\n- [Contributing](../docs/CONTRIBUTING.md)\n- [How to test](#test)\n- [Documentation](#documentation)\n\n## Prerequisites\n\n- Node \u003e= 18.16.0\n\n## Install\n\nYou can install the dependencies for this library by executing the following command:\n\n```\nyarn install\n```\n\n## Test\n\nYou can run the test suite for this library by executing the following command:\n\n```\nyarn test\n```\n\n## Lint\n\nYou can run the linters configured for this library by executing the following command:\n\n```\nyarn lint\n```\n\n## Installation\n\nYou can install this library into your current project by executing the following command:\n\n```\nyarn add @duffel/api\n```\n\nIf you need to create a new API operation class, just type `yarn generate:operation` and you will be prompted with a few questions. This script will create the relevant operation folder and files for you.\n\n## Committing to the repository\n\nTo be able to publish the correct version to [npm](https://www.npmjs.com), this project is currently following [Angular conventional commit message guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type) which is based on [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). This commit message guideline allows the [semantic-release GitHub action](##client-ci) to be triggered.\n\n### CommitLint to the rescue\n\nBefore creating a commit you should run a [husky hook](https://www.npmjs.com/package/husky) which will check if the commit structure is valid or not. If you don't want to create the commit manually, you can use `yarn commit` which will use `commitzen` to help you out creating the message.\n\n## Client CI\n\nEvery time a commit is merged to main, a GitHub Action is run to analyse the commit messages with [`semantic-release`](https://github.com/semantic-release/semantic-release) and automatically update the current version to be deployed by following semantic versioning. When the deployment is complete, the action updates the package version, using Duffel's machine user (`@duffel-bot`) as the author, and this change will be automatically approved by the GitHub Action via the [`autoapprove` workflow] (../.github/workflows/autoapprove.yml).\n\n### Continuous Integration\n\n1. Developer opens pull request to main\n2. Pull request is merged\n3. GitHub Actions are triggered and the commits are analysed\n   - if there's a breaking change, bump the major version\n   - if there's a feature commit, bump the minor version\n   - if there's a fix, bump the patch version\n4. Deploy the new version\n   a. Publish to npm\n   b. Create and push a git tag\n   c. Publish a GitHub release with the relevant commits and descriptions\n5. After the release is published then a pull request is automatically created and approved via a GitHub Action to bump the package version\n\n## Documentation\n\nYou can learn more about the Duffel API and this library in our [documentation](https://duffel.com/docs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduffelhq%2Fduffel-api-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduffelhq%2Fduffel-api-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduffelhq%2Fduffel-api-javascript/lists"}