open-index/open-npm huggingface dataset:
npm package: @invoiceleaf/integration-getmyinvoices
Description: GetMyInvoices integration for InvoiceLeaf two-way document synchronization
Author: InvoiceLeaf
Latest version: 1.0.1

# GetMyInvoices Integration

Bi-directional InvoiceLeaf <-> GetMyInvoices document synchronization.

## Features

- Scheduled outbound InvoiceLeaf -> GetMyInvoices sync (`syncInvoices`)
- Event-driven outbound sync for document create/update (`syncInvoiceEvent`)
- Event-driven outbound deletion for document delete (`deleteInvoiceEvent`)
- Scheduled inbound GetMyInvoices -> InvoiceLeaf import (`pullDocumentsFromGetmyinvoices`)
- Inbound deleted-document reconciliation via `/documents/deleted`
- Company resolution/creation in GetMyInvoices
- Idempotent mapping via `context.mappings`
- Sync checkpoint persistence via `context.state`
- Document sync metadata writeback via `context.data.patchDocumentIntegrationMeta(...)`
- Connection diagnostics (`testConnection`)

## Runtime Requirements

- `context.credentials.getApiKey('getmyinvoices')` (or `config.apiKey` fallback)
- `context.state.get/set(...)`
- `context.mappings.get/upsert/findByExternal(...)`
- `context.data.listDocuments(...)`
- `context.data.getDocument(...)`
- `context.data.getDocumentFile(...)`
- `context.data.importDocument(...)`
- `context.data.patchDocumentIntegrationMeta(...)`

## Setup Notes

- GetMyInvoices uses API-key auth (`X-API-KEY` header).
- If the API-key connection UI is unavailable, set `apiKey` directly in integration configuration.
- Outbound updates use `PUT /documents/{documentUid}` (metadata update), while new uploads use `POST /documents`.
- Inbound import downloads remote files via `GET /documents/{documentUid}/file`.
npm package: @invoiceleaf/integration-sevdesk
Description: sevDesk accounting integration for InvoiceLeaf scheduled invoice synchronization
Author: InvoiceLeaf
Latest version: 1.1.3

# sevDesk Integration

Bi-directional InvoiceLeaf <-> sevDesk invoice synchronization.

## Features

- Scheduled outbound invoice sync (`syncInvoices`)
- Event-driven outbound sync for create/update (`syncInvoiceEvent`)
- Event-driven outbound cancellation on delete (`deleteInvoiceEvent`)
- Scheduled inbound sevDesk import (`pullInvoicesFromSevdesk`)
- Contact resolution/creation in sevDesk
- Idempotent mapping via `context.mappings`
- Sync checkpoint persistence via `context.state`
- Document sync metadata writeback via `context.data.patchDocumentIntegrationMeta(...)`
- Connection diagnostics (`testConnection`)

## Runtime Requirements

- `context.credentials.getApiKey('sevdesk')` (or `config.apiKey` fallback)
- `context.state.get/set(...)`
- `context.mappings.get/upsert/findByExternal(...)`
- `context.data.listDocuments(...)`
- `context.data.getDocument(...)`
- `context.data.importDocument(...)`
- `context.data.patchDocumentIntegrationMeta(...)`

## Setup Notes

- sevDesk uses API-key auth (`Authorization` header with the raw 32-char token).
- If the connection UI for API-key providers is unavailable, set `apiKey` directly in integration configuration.
- `targetStatus=200` is applied using `Invoice/{invoiceId}/sendBy` after invoice creation.
- If auto-discovery cannot find IDs from existing invoices, set `contactPersonId` and `addressCountryId` explicitly.
npm package: @invoiceleaf/integration-smtp-mail
Description: SMTP + IMAP integration for InvoiceLeaf: send emails and crawl PDF attachments for import
Author: InvoiceLeaf
Latest version: 1.1.0

# SMTP Mail Integration

SMTP + IMAP integration for InvoiceLeaf.

## Features

- Action: Send email through SMTP
- Scheduled trigger: Crawl IMAP mailbox for PDF attachments
- Automatic import of discovered PDFs into InvoiceLeaf
- Dedupe based on message UID + attachment checksum

## Notes

- SMTP is used for outbound sending.
- IMAP is used for mailbox crawling.
- This integration requires runtime support for:
  - `context.data.importDocument(...)`
  - `context.state.get/set/delete(...)`
  - `context.email.sendSmtpEmail(...)`
  - `context.email.testSmtpImapConnection(...)`
  - `context.email.crawlImapPdfAttachments(...)`