{"_id":"@alternative-design-and-media/quick-api-connector","name":"@alternative-design-and-media/quick-api-connector","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alternative-design-and-media/quick-api-connector","version":"0.1.0","description":"Type-safe quick API connector for Node.js and edge runtimes.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","dev":"tsup src/index.ts --format cjs,esm --dts --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"keywords":["api","connector","typescript"],"author":{"name":"Alternative Design and Media"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Alternative-Design-And-Media/quick-api-connector.git"},"bugs":{"url":"https://github.com/Alternative-Design-And-Media/quick-api-connector/issues"},"homepage":"https://github.com/Alternative-Design-And-Media/quick-api-connector#readme","devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^4.1.6"},"_id":"@alternative-design-and-media/quick-api-connector@0.1.0","gitHead":"6137e33301a5126e365195e601d8b79562feb7ca","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-P2PDSUXD6V1XCwX44OrgdY2dxYFCi+ZFJYM7R7LMcIMykSRUwT21eFmZ+o7UBhpUETjkTwwlG9kfjgFbTUuCtA==","shasum":"cf4b36c395d1de98cb85e775e74f420b6a3d56c8","tarball":"https://registry.npmjs.org/@alternative-design-and-media/quick-api-connector/-/quick-api-connector-0.1.0.tgz","fileCount":8,"unpackedSize":593586,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alternative-design-and-media%2fquick-api-connector@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICyD382iK+txctnEGDd5IuFq9ppPH6ZtwTDKN67bvrbsAiEAw3e6sL+d51dGhoaWWEMbpfP6R9siEXVY2zrhn0nm+J8="}]},"_npmUser":{"name":"szantob","email":"szantobenedek@gmail.com"},"directories":{},"maintainers":[{"name":"szantob","email":"szantobenedek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/quick-api-connector_0.1.0_1779144985099_0.44592515344642036"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T22:56:24.997Z","0.1.0":"2026-05-18T22:56:25.243Z","modified":"2026-05-18T22:56:25.731Z"},"maintainers":[{"name":"szantob","email":"szantobenedek@gmail.com"}],"description":"Type-safe quick API connector for Node.js and edge runtimes.","homepage":"https://github.com/Alternative-Design-And-Media/quick-api-connector#readme","keywords":["api","connector","typescript"],"repository":{"type":"git","url":"git+https://github.com/Alternative-Design-And-Media/quick-api-connector.git"},"author":{"name":"Alternative Design and Media"},"bugs":{"url":"https://github.com/Alternative-Design-And-Media/quick-api-connector/issues"},"license":"MIT","readme":"# quick-api-connector\n\n0.1.0\n\nType-safe TypeScript connector for the QUiCK API (`v1` + `v2`) with native `fetch`, Cloudflare Worker compatibility, and strict endpoint typing derived from `api.json`.\n\n## Installation\n\n```bash\nnpm install @alternative-design-and-media/quick-api-connector\n```\n\n## Quick start\n\n```ts\nimport { createQuickClient } from '@alternative-design-and-media/quick-api-connector';\n\nconst client = createQuickClient({\n  apiToken: process.env.QUICK_API_TOKEN!,\n  companyId: process.env.QUICK_COMPANY_ID,\n  baseUrl: 'https://api.quick.local',\n});\n\nconst expenses = await client.listExpensesV1({ page: 1, page_size: 50 });\nconst expense = await client.getExpenseV2(123, ['items', 'post_its']);\n```\n\n## Authentication\n\n### API Token\n\n```ts\ncreateQuickClient({\n  apiToken: 'your-api-token',\n  companyId: 'optional-company-id',\n});\n```\n\nSends:\n\n- `Authorization: Token <apiToken>`\n- `Quick-Company-Id: <companyId>` (if provided)\n\n### OAuth2 Bearer\n\n```ts\ncreateQuickClient({\n  bearerToken: 'oauth-access-token',\n  companyId: 'required-company-id',\n});\n```\n\nSends:\n\n- `Authorization: Bearer <bearerToken>`\n- `Quick-Company-Id: <companyId>`\n\nOAuth-only endpoints:\n\n- `listCompanies()`\n- `getUserProfile()`\n\n## Pagination\n\n- `v1` list endpoints return `{ count, next, previous, results }` and accept `page` / `page_size`.\n- `v2` list endpoints return cursor-style responses with `next` / `previous` links and collection results.\n\n## API reference\n\n### Expenses\n\n| Method | HTTP | Path | Description |\n| --- | --- | --- | --- |\n| `listExpensesV1` | GET | `/1/expenses` | List expenses (v1) |\n| `listExpensesV2` | GET | `/2/expenses` | List expenses (v2) |\n| `getExpenseV1` | GET | `/1/expenses/{expense_id}` | Expense detail (v1) |\n| `getExpenseV2` | GET | `/2/expenses/{expense_id}` | Expense detail (v2) |\n| `updateExpenseV2` | PATCH | `/2/expenses/{expense_id}/update` | Update expense |\n| `searchExpenseArtifact` | POST | `/2/expenses/artifact-search` | Artifact search |\n| `createExpenses` | POST | `/2/expenses/create` | Create expenses |\n| `bulkAcceptQuarantine` | POST | `/1/expenses/quarantine-accept` | Accept quarantine expenses |\n| `bulkApproveExpenses` | POST | `/1/expenses/approve` | Approve expenses |\n| `bulkUnapproveExpenses` | POST | `/1/expenses/unapprove` | Unapprove expenses |\n| `bulkCheckExpenses` | POST | `/1/expenses/check` | Mark checked |\n| `bulkUncheckExpenses` | POST | `/1/expenses/uncheck` | Mark unchecked |\n| `bulkExportExpenses` | POST | `/1/expenses/export` | Mark exported |\n\n### Incomes & Artifacts\n\n| Method | HTTP | Path |\n| --- | --- | --- |\n| `listIncomes` | GET | `/1/incomes` |\n| `getIncome` | GET | `/1/incomes/{income_id}` |\n| `getExpenseArtifacts` | POST | `/1/artifacts/expense` |\n| `getIncomeArtifacts` | POST | `/1/artifacts/income` |\n\n### Documents\n\n`listDocuments`, `listDocumentFiles`, `listDocumentTypes`, `getDocument`, `updateDocument`, `createDocuments`, `deleteDocuments`, `attachDocuments`, `detachDocuments`, `searchDocument`\n\n### Accounting\n\n`listLedgerNumbers`, `createLedgerNumbers`, `updateLedgerNumber`, `deleteLedgerNumbers`, `listVatCategories`, `createVatCategories`, `updateVatCategory`, `deleteVatCategories`\n\n### Taxes\n\n`listTaxCodes`, `listMonthlyTaxesV1`, `listMonthlyTaxesV2`, `createTaxesV1`, `createTaxesV2`, `updateTaxesV1`, `updateTaxesV2`, `deleteTaxesV1`, `deleteTaxesV2`\n\n### Salaries\n\n`listMonthlySalariesV1`, `listMonthlySalariesV2`, `createSalariesV1`, `createSalariesV2`, `updateSalariesV1`, `updateSalariesV2`, `deleteSalariesV1`, `deleteSalariesV2`\n\n### Companies, tags, and misc\n\n- Companies: `listCompanies`, `getUserProfile`\n- Tags: `listTags`, `createTags`, `updateTags`, `deleteTags`\n- Misc: `listPartners`, `listAccounts`, `listPayments`, `pulse`, `uploadAuditXml`, `getCompanyInfo`, `updateCompanyInfo`\n\n## Scripts\n\n- `npm run typecheck`\n- `npm test`\n- `npm run build`\n","readmeFilename":"README.md","_rev":"1-88d1619bd5a0e952bea57575ae82129a"}