kommo-aiatende-api 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +21 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.js +67 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +67 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
2
|
|
|
3
|
+
interface RetryConfig {
|
|
4
|
+
/** Número máximo de novas tentativas após a primeira falha. Padrão: 2. */
|
|
5
|
+
retries?: number;
|
|
6
|
+
/** Atraso base (ms) usado no backoff exponencial. Padrão: 300. */
|
|
7
|
+
baseDelayMs?: number;
|
|
8
|
+
/** Teto do atraso entre tentativas (ms). Padrão: 3000. */
|
|
9
|
+
maxDelayMs?: number;
|
|
10
|
+
}
|
|
3
11
|
interface KommoConfig {
|
|
4
12
|
domain: string;
|
|
5
13
|
accessToken?: string;
|
|
@@ -7,6 +15,10 @@ interface KommoConfig {
|
|
|
7
15
|
clientId?: string;
|
|
8
16
|
clientSecret?: string;
|
|
9
17
|
redirectUri?: string;
|
|
18
|
+
/** Timeout (ms) por requisição HTTP. Padrão: 30000. */
|
|
19
|
+
timeout?: number;
|
|
20
|
+
/** Configuração de retry para erros transitórios de rede (ex.: "socket hang up"). Passe `false` para desativar. */
|
|
21
|
+
retry?: RetryConfig | false;
|
|
10
22
|
}
|
|
11
23
|
interface AccessTokenResponse {
|
|
12
24
|
token_type: string;
|
|
@@ -73,6 +85,14 @@ declare class AuthManager {
|
|
|
73
85
|
declare abstract class BaseResource {
|
|
74
86
|
protected client: AxiosInstance;
|
|
75
87
|
constructor(client: AxiosInstance);
|
|
88
|
+
/**
|
|
89
|
+
* POST de criação em lote marcado como seguro para retry: cada item recebe um
|
|
90
|
+
* request_id (se ainda não tiver um) para que a Kommo deduplique reenvios após
|
|
91
|
+
* falhas transitórias de rede, e a requisição fica elegível ao retry automático.
|
|
92
|
+
*/
|
|
93
|
+
protected postIdempotent<TResponse, TItem extends {
|
|
94
|
+
request_id?: string;
|
|
95
|
+
}>(url: string, items: TItem[]): Promise<TResponse>;
|
|
76
96
|
}
|
|
77
97
|
|
|
78
98
|
interface Lead {
|
|
@@ -2890,4 +2910,4 @@ declare class KommoApiError extends Error {
|
|
|
2890
2910
|
constructor(message: string, info?: Partial<KommoApiError>);
|
|
2891
2911
|
}
|
|
2892
2912
|
|
|
2893
|
-
export { type AccessTokenResponse, type Account, AccountResource, type AccountWithParam, type AmojoRights, type AttachFilesToEntityItem, type AttachmentNoteParams, AuthManager, type BaseCreateUnsortedItem, type BaseCustomField, type BaseEntity, type CallNoteParams, type Catalog, type CatalogElement, type CatalogElementCustomFieldValue, CatalogsResource, type ChatTemplate, type ChatTemplateAttachment, type ChatTemplateButton, type ChatTemplateButtonType, type ChatTemplateReview, type ChatTemplateType, ChatTemplatesResource, type CloseTalkParams, type CollectionResponse, type CommonNoteParams, CompaniesResource, type Company, type CompanyCatalogElementRef, type CompanyContactRef, type CompanyLeadRef, type CompanyTag, type CompanyTagRef, type CompanyWithParam, type Contact, type ContactCatalogElementRef, type ContactCompanyRef, type ContactCustomerRef, type ContactLeadRef, type ContactTag, type ContactTagRef, type ContactWithParam, ContactsResource, type CreateCatalogElementInput, type CreateCatalogElementsResponse, type CreateCatalogInput, type CreateCatalogsResponse, type CreateChatTemplateInput, type CreateChatTemplatesResponse, type CreateCompaniesResponse, type CreateCompanyInput, type CreateComplexLeadInput, type CreateComplexLeadsResponse, type CreateComplexLeadsResponseItem, type CreateContactInput, type CreateContactsResponse, type CreateCustomFieldGroupInput, type CreateEntityCustomFieldInput, type CreateEntityLinkInput, type CreateEntityLinksResponse, type CreateFileUploadSessionInput, type CreateFormUnsortedLeadInput, type CreateLeadInput, type CreateLeadsResponse, type CreateListCustomFieldInput, type CreateNoteInput, type CreateNotesResponse, type CreatePipelineInput, type CreatePipelineStatusInput, type CreatePipelinesResponse, type CreateRoleInput, type CreateSipUnsortedLeadInput, type CreateSourceInput, type CreateSourcesResponse, type CreateStatusInput, type CreateStatusesResponse, type CreateTagInput, type CreateTagRef, type CreateTagsResponse, type CreateTaskInput, type CreateTasksResponse, type CreateUnsortedCompany, type CreateUnsortedContact, type CreateUnsortedLead, type CreateUnsortedLeadsResponse, type CreateUserInput, type CreateWebhookInput, type CreateWebsiteButtonInput, type CreateWebsiteButtonResponse, type CustomField, type CustomFieldEnum, type CustomFieldGroup, CustomFieldGroupsResource, type CustomFieldNestedValue, type CustomFieldRequiredStatus, type CustomFieldType, type CustomFieldValue, CustomFieldsResource, type DeleteChatTemplateInput, type DeleteEntityLinkInput, type DeleteFilesItem, type DeleteSourceBatchInput, type DeleteWebhookInput, type DetachFilesFromEntityItem, type Embedded, type EntityAttachedFileRecord, type EntityCustomField, EntityFilesResource, type EntityLink, type EntityLinkMetadata, type EntityLinkWithSource, type EntityRights, type EntityType, type EntityUpdateResult, type Event, type EventTypeDefinition, type EventValueChange, type EventValueFilters, type EventWithParam, EventsResource, type FileAttachEntityType, type FileLinkedEntityRecord, FileLinksResource, type FileRecord, type FileVersionRecord, FilesResource, FilesServiceResource, type FormMetadata, type GeolocationNoteParams, type GetAccountParams, KNOWN_WEBHOOK_EVENTS, KOMMO_PIPELINE_STAGE_COLORS, KOMMO_TAG_COLORS, type KnownEventType, KommoApiError, KommoClient, type KommoConfig, type KommoPipelineStageColor, type Lead, type LeadCatalogElementRef, type LeadCompanyRef, type LeadContactRef, type LeadTag, type LeadTagRef, type LeadWithParam, LeadsResource, type LinkMetadataInput, type LinkSourceEntityType, type LinkTargetEntityType, type LinkUnsortedLeadResponse, LinksResource, type ListCatalogElementsParams, type ListCatalogElementsResponse, type ListCatalogsParams, type ListCatalogsResponse, type ListChatTemplatesParams, type ListChatTemplatesResponse, type ListCompaniesParams, type ListCompaniesResponse, type ListContactsParams, type ListContactsResponse, type ListCustomField, type ListCustomFieldGroupsResponse, type ListEntityAttachedFilesParams, type ListEntityAttachedFilesResponse, type ListEntityCustomFieldsResponse, type ListEntityLinksParams, type ListEntityLinksResponse, type ListEntityNotesParams, type ListEventTypesParams, type ListEventTypesResponse, type ListEventsParams, type ListEventsResponse, type ListFileLinkedEntitiesResponse, type ListFileVersionsResponse, type ListFilesParams, type ListFilesResponse, type ListLeadsParams, type ListLeadsResponse, type ListListCustomFieldsResponse, type ListLossReasonsResponse, type ListNotesResponse, type ListPipelineStatusesResponse, type ListPipelinesResponse, type ListRolesParams, type ListRolesResponse, type ListSalesbotsParams, type ListSalesbotsResponse, type ListSourcesResponse, type ListTagsParams, type ListTagsResponse, type ListTalksParams, type ListTalksResponse, type ListTasksParams, type ListTasksResponse, type ListUnsortedLeadsParams, type ListUnsortedLeadsResponse, type ListUsersParams, type ListUsersResponse, type ListWebhooksParams, type ListWebhooksResponse, type ListWebsiteButtonsParams, type ListWebsiteButtonsResponse, type LossReason, type Note, type NoteEntityType, type NoteParams, type NoteType, NotesResource, type PermissionLevel, type Pipeline, type PipelineStatus, PipelinesResource, type RestoreFilesItem, type Role, type RoleWithParam, RolesResource, type RunManySalesbotsItem, type RunSalesbotInput, type Salesbot, type SalesbotContinueBotType, type SalesbotContinueInput, type SalesbotExecuteHandler, type SalesbotFunctionalityType, SalesbotsResource, type ServiceMessageNoteParams, type SipMetadata, type SmsNoteParams, type Source, type SourceService, type SourceServicePage, SourcesResource, type StatusDescription, type StatusRight, type StopSalesbotInput, type SubmitWhatsAppTemplateReviewResponse, type Tag, type TagColor, type TagEntityType, type TagRefInput, TagsResource, type Talk, type TalkEntityType, type TalkStatus, TalksResource, type Task, TasksResource, type UnsortedDecisionResponse, type UnsortedLead, UnsortedResource, type UnsortedSummaryParams, type UnsortedSummaryResponse, type UpdateCatalogElementInput, type UpdateCatalogElementsResponse, type UpdateCatalogInput, type UpdateCatalogsResponse, type UpdateChatTemplateInput, type UpdateChatTemplatesResponse, type UpdateCompaniesResponse, type UpdateCompanyInput, type UpdateContactInput, type UpdateContactsResponse, type UpdateCustomFieldGroupInput, type UpdateEntityCustomFieldInput, type UpdateEntityTagsBatchResponse, type UpdateEntityTagsInput, type UpdateEntityTagsSingleResponse, type UpdateFileInput, type UpdateLeadInput, type UpdateLeadsResponse, type UpdateListCustomFieldInput, type UpdateNoteInput, type UpdateNotesResponse, type UpdatePipelineInput, type UpdateRoleInput, type UpdateSingleCatalogElementInput, type UpdateSingleCatalogInput, type UpdateSingleCompanyInput, type UpdateSingleContactInput, type UpdateSingleEntityCustomFieldInput, type UpdateSingleEntityTagsInput, type UpdateSingleLeadInput, type UpdateSingleListCustomFieldInput, type UpdateSingleNoteInput, type UpdateSingleTaskInput, type UpdateSourceBatchInput, type UpdateSourceInput, type UpdateSourcesResponse, type UpdateStatusInput, type UpdateTaskInput, type UpdateTasksResponse, type UpdateWebsiteButtonInput, type UpdateWhatsAppTemplateReviewStatusInput, type UpdateWhatsAppTemplateReviewStatusResponse, type UploadFilePartInput, type UploadFilePartResponse, type UploadSessionResponse, type User, type UserWithParam, UsersResource, type WabaCategory, type WabaHeaderType, type WabaReviewStatus, type Webhook, type WebhookEvent, WebhooksResource, type WebsiteButton, type WebsiteButtonCreationStatus, WebsiteButtonsResource, type WhatsAppTemplateModerationStatus, eventUtils };
|
|
2913
|
+
export { type AccessTokenResponse, type Account, AccountResource, type AccountWithParam, type AmojoRights, type AttachFilesToEntityItem, type AttachmentNoteParams, AuthManager, type BaseCreateUnsortedItem, type BaseCustomField, type BaseEntity, type CallNoteParams, type Catalog, type CatalogElement, type CatalogElementCustomFieldValue, CatalogsResource, type ChatTemplate, type ChatTemplateAttachment, type ChatTemplateButton, type ChatTemplateButtonType, type ChatTemplateReview, type ChatTemplateType, ChatTemplatesResource, type CloseTalkParams, type CollectionResponse, type CommonNoteParams, CompaniesResource, type Company, type CompanyCatalogElementRef, type CompanyContactRef, type CompanyLeadRef, type CompanyTag, type CompanyTagRef, type CompanyWithParam, type Contact, type ContactCatalogElementRef, type ContactCompanyRef, type ContactCustomerRef, type ContactLeadRef, type ContactTag, type ContactTagRef, type ContactWithParam, ContactsResource, type CreateCatalogElementInput, type CreateCatalogElementsResponse, type CreateCatalogInput, type CreateCatalogsResponse, type CreateChatTemplateInput, type CreateChatTemplatesResponse, type CreateCompaniesResponse, type CreateCompanyInput, type CreateComplexLeadInput, type CreateComplexLeadsResponse, type CreateComplexLeadsResponseItem, type CreateContactInput, type CreateContactsResponse, type CreateCustomFieldGroupInput, type CreateEntityCustomFieldInput, type CreateEntityLinkInput, type CreateEntityLinksResponse, type CreateFileUploadSessionInput, type CreateFormUnsortedLeadInput, type CreateLeadInput, type CreateLeadsResponse, type CreateListCustomFieldInput, type CreateNoteInput, type CreateNotesResponse, type CreatePipelineInput, type CreatePipelineStatusInput, type CreatePipelinesResponse, type CreateRoleInput, type CreateSipUnsortedLeadInput, type CreateSourceInput, type CreateSourcesResponse, type CreateStatusInput, type CreateStatusesResponse, type CreateTagInput, type CreateTagRef, type CreateTagsResponse, type CreateTaskInput, type CreateTasksResponse, type CreateUnsortedCompany, type CreateUnsortedContact, type CreateUnsortedLead, type CreateUnsortedLeadsResponse, type CreateUserInput, type CreateWebhookInput, type CreateWebsiteButtonInput, type CreateWebsiteButtonResponse, type CustomField, type CustomFieldEnum, type CustomFieldGroup, CustomFieldGroupsResource, type CustomFieldNestedValue, type CustomFieldRequiredStatus, type CustomFieldType, type CustomFieldValue, CustomFieldsResource, type DeleteChatTemplateInput, type DeleteEntityLinkInput, type DeleteFilesItem, type DeleteSourceBatchInput, type DeleteWebhookInput, type DetachFilesFromEntityItem, type Embedded, type EntityAttachedFileRecord, type EntityCustomField, EntityFilesResource, type EntityLink, type EntityLinkMetadata, type EntityLinkWithSource, type EntityRights, type EntityType, type EntityUpdateResult, type Event, type EventTypeDefinition, type EventValueChange, type EventValueFilters, type EventWithParam, EventsResource, type FileAttachEntityType, type FileLinkedEntityRecord, FileLinksResource, type FileRecord, type FileVersionRecord, FilesResource, FilesServiceResource, type FormMetadata, type GeolocationNoteParams, type GetAccountParams, KNOWN_WEBHOOK_EVENTS, KOMMO_PIPELINE_STAGE_COLORS, KOMMO_TAG_COLORS, type KnownEventType, KommoApiError, KommoClient, type KommoConfig, type KommoPipelineStageColor, type Lead, type LeadCatalogElementRef, type LeadCompanyRef, type LeadContactRef, type LeadTag, type LeadTagRef, type LeadWithParam, LeadsResource, type LinkMetadataInput, type LinkSourceEntityType, type LinkTargetEntityType, type LinkUnsortedLeadResponse, LinksResource, type ListCatalogElementsParams, type ListCatalogElementsResponse, type ListCatalogsParams, type ListCatalogsResponse, type ListChatTemplatesParams, type ListChatTemplatesResponse, type ListCompaniesParams, type ListCompaniesResponse, type ListContactsParams, type ListContactsResponse, type ListCustomField, type ListCustomFieldGroupsResponse, type ListEntityAttachedFilesParams, type ListEntityAttachedFilesResponse, type ListEntityCustomFieldsResponse, type ListEntityLinksParams, type ListEntityLinksResponse, type ListEntityNotesParams, type ListEventTypesParams, type ListEventTypesResponse, type ListEventsParams, type ListEventsResponse, type ListFileLinkedEntitiesResponse, type ListFileVersionsResponse, type ListFilesParams, type ListFilesResponse, type ListLeadsParams, type ListLeadsResponse, type ListListCustomFieldsResponse, type ListLossReasonsResponse, type ListNotesResponse, type ListPipelineStatusesResponse, type ListPipelinesResponse, type ListRolesParams, type ListRolesResponse, type ListSalesbotsParams, type ListSalesbotsResponse, type ListSourcesResponse, type ListTagsParams, type ListTagsResponse, type ListTalksParams, type ListTalksResponse, type ListTasksParams, type ListTasksResponse, type ListUnsortedLeadsParams, type ListUnsortedLeadsResponse, type ListUsersParams, type ListUsersResponse, type ListWebhooksParams, type ListWebhooksResponse, type ListWebsiteButtonsParams, type ListWebsiteButtonsResponse, type LossReason, type Note, type NoteEntityType, type NoteParams, type NoteType, NotesResource, type PermissionLevel, type Pipeline, type PipelineStatus, PipelinesResource, type RestoreFilesItem, type RetryConfig, type Role, type RoleWithParam, RolesResource, type RunManySalesbotsItem, type RunSalesbotInput, type Salesbot, type SalesbotContinueBotType, type SalesbotContinueInput, type SalesbotExecuteHandler, type SalesbotFunctionalityType, SalesbotsResource, type ServiceMessageNoteParams, type SipMetadata, type SmsNoteParams, type Source, type SourceService, type SourceServicePage, SourcesResource, type StatusDescription, type StatusRight, type StopSalesbotInput, type SubmitWhatsAppTemplateReviewResponse, type Tag, type TagColor, type TagEntityType, type TagRefInput, TagsResource, type Talk, type TalkEntityType, type TalkStatus, TalksResource, type Task, TasksResource, type UnsortedDecisionResponse, type UnsortedLead, UnsortedResource, type UnsortedSummaryParams, type UnsortedSummaryResponse, type UpdateCatalogElementInput, type UpdateCatalogElementsResponse, type UpdateCatalogInput, type UpdateCatalogsResponse, type UpdateChatTemplateInput, type UpdateChatTemplatesResponse, type UpdateCompaniesResponse, type UpdateCompanyInput, type UpdateContactInput, type UpdateContactsResponse, type UpdateCustomFieldGroupInput, type UpdateEntityCustomFieldInput, type UpdateEntityTagsBatchResponse, type UpdateEntityTagsInput, type UpdateEntityTagsSingleResponse, type UpdateFileInput, type UpdateLeadInput, type UpdateLeadsResponse, type UpdateListCustomFieldInput, type UpdateNoteInput, type UpdateNotesResponse, type UpdatePipelineInput, type UpdateRoleInput, type UpdateSingleCatalogElementInput, type UpdateSingleCatalogInput, type UpdateSingleCompanyInput, type UpdateSingleContactInput, type UpdateSingleEntityCustomFieldInput, type UpdateSingleEntityTagsInput, type UpdateSingleLeadInput, type UpdateSingleListCustomFieldInput, type UpdateSingleNoteInput, type UpdateSingleTaskInput, type UpdateSourceBatchInput, type UpdateSourceInput, type UpdateSourcesResponse, type UpdateStatusInput, type UpdateTaskInput, type UpdateTasksResponse, type UpdateWebsiteButtonInput, type UpdateWhatsAppTemplateReviewStatusInput, type UpdateWhatsAppTemplateReviewStatusResponse, type UploadFilePartInput, type UploadFilePartResponse, type UploadSessionResponse, type User, type UserWithParam, UsersResource, type WabaCategory, type WabaHeaderType, type WabaReviewStatus, type Webhook, type WebhookEvent, WebhooksResource, type WebsiteButton, type WebsiteButtonCreationStatus, WebsiteButtonsResource, type WhatsAppTemplateModerationStatus, eventUtils };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
2
|
|
|
3
|
+
interface RetryConfig {
|
|
4
|
+
/** Número máximo de novas tentativas após a primeira falha. Padrão: 2. */
|
|
5
|
+
retries?: number;
|
|
6
|
+
/** Atraso base (ms) usado no backoff exponencial. Padrão: 300. */
|
|
7
|
+
baseDelayMs?: number;
|
|
8
|
+
/** Teto do atraso entre tentativas (ms). Padrão: 3000. */
|
|
9
|
+
maxDelayMs?: number;
|
|
10
|
+
}
|
|
3
11
|
interface KommoConfig {
|
|
4
12
|
domain: string;
|
|
5
13
|
accessToken?: string;
|
|
@@ -7,6 +15,10 @@ interface KommoConfig {
|
|
|
7
15
|
clientId?: string;
|
|
8
16
|
clientSecret?: string;
|
|
9
17
|
redirectUri?: string;
|
|
18
|
+
/** Timeout (ms) por requisição HTTP. Padrão: 30000. */
|
|
19
|
+
timeout?: number;
|
|
20
|
+
/** Configuração de retry para erros transitórios de rede (ex.: "socket hang up"). Passe `false` para desativar. */
|
|
21
|
+
retry?: RetryConfig | false;
|
|
10
22
|
}
|
|
11
23
|
interface AccessTokenResponse {
|
|
12
24
|
token_type: string;
|
|
@@ -73,6 +85,14 @@ declare class AuthManager {
|
|
|
73
85
|
declare abstract class BaseResource {
|
|
74
86
|
protected client: AxiosInstance;
|
|
75
87
|
constructor(client: AxiosInstance);
|
|
88
|
+
/**
|
|
89
|
+
* POST de criação em lote marcado como seguro para retry: cada item recebe um
|
|
90
|
+
* request_id (se ainda não tiver um) para que a Kommo deduplique reenvios após
|
|
91
|
+
* falhas transitórias de rede, e a requisição fica elegível ao retry automático.
|
|
92
|
+
*/
|
|
93
|
+
protected postIdempotent<TResponse, TItem extends {
|
|
94
|
+
request_id?: string;
|
|
95
|
+
}>(url: string, items: TItem[]): Promise<TResponse>;
|
|
76
96
|
}
|
|
77
97
|
|
|
78
98
|
interface Lead {
|
|
@@ -2890,4 +2910,4 @@ declare class KommoApiError extends Error {
|
|
|
2890
2910
|
constructor(message: string, info?: Partial<KommoApiError>);
|
|
2891
2911
|
}
|
|
2892
2912
|
|
|
2893
|
-
export { type AccessTokenResponse, type Account, AccountResource, type AccountWithParam, type AmojoRights, type AttachFilesToEntityItem, type AttachmentNoteParams, AuthManager, type BaseCreateUnsortedItem, type BaseCustomField, type BaseEntity, type CallNoteParams, type Catalog, type CatalogElement, type CatalogElementCustomFieldValue, CatalogsResource, type ChatTemplate, type ChatTemplateAttachment, type ChatTemplateButton, type ChatTemplateButtonType, type ChatTemplateReview, type ChatTemplateType, ChatTemplatesResource, type CloseTalkParams, type CollectionResponse, type CommonNoteParams, CompaniesResource, type Company, type CompanyCatalogElementRef, type CompanyContactRef, type CompanyLeadRef, type CompanyTag, type CompanyTagRef, type CompanyWithParam, type Contact, type ContactCatalogElementRef, type ContactCompanyRef, type ContactCustomerRef, type ContactLeadRef, type ContactTag, type ContactTagRef, type ContactWithParam, ContactsResource, type CreateCatalogElementInput, type CreateCatalogElementsResponse, type CreateCatalogInput, type CreateCatalogsResponse, type CreateChatTemplateInput, type CreateChatTemplatesResponse, type CreateCompaniesResponse, type CreateCompanyInput, type CreateComplexLeadInput, type CreateComplexLeadsResponse, type CreateComplexLeadsResponseItem, type CreateContactInput, type CreateContactsResponse, type CreateCustomFieldGroupInput, type CreateEntityCustomFieldInput, type CreateEntityLinkInput, type CreateEntityLinksResponse, type CreateFileUploadSessionInput, type CreateFormUnsortedLeadInput, type CreateLeadInput, type CreateLeadsResponse, type CreateListCustomFieldInput, type CreateNoteInput, type CreateNotesResponse, type CreatePipelineInput, type CreatePipelineStatusInput, type CreatePipelinesResponse, type CreateRoleInput, type CreateSipUnsortedLeadInput, type CreateSourceInput, type CreateSourcesResponse, type CreateStatusInput, type CreateStatusesResponse, type CreateTagInput, type CreateTagRef, type CreateTagsResponse, type CreateTaskInput, type CreateTasksResponse, type CreateUnsortedCompany, type CreateUnsortedContact, type CreateUnsortedLead, type CreateUnsortedLeadsResponse, type CreateUserInput, type CreateWebhookInput, type CreateWebsiteButtonInput, type CreateWebsiteButtonResponse, type CustomField, type CustomFieldEnum, type CustomFieldGroup, CustomFieldGroupsResource, type CustomFieldNestedValue, type CustomFieldRequiredStatus, type CustomFieldType, type CustomFieldValue, CustomFieldsResource, type DeleteChatTemplateInput, type DeleteEntityLinkInput, type DeleteFilesItem, type DeleteSourceBatchInput, type DeleteWebhookInput, type DetachFilesFromEntityItem, type Embedded, type EntityAttachedFileRecord, type EntityCustomField, EntityFilesResource, type EntityLink, type EntityLinkMetadata, type EntityLinkWithSource, type EntityRights, type EntityType, type EntityUpdateResult, type Event, type EventTypeDefinition, type EventValueChange, type EventValueFilters, type EventWithParam, EventsResource, type FileAttachEntityType, type FileLinkedEntityRecord, FileLinksResource, type FileRecord, type FileVersionRecord, FilesResource, FilesServiceResource, type FormMetadata, type GeolocationNoteParams, type GetAccountParams, KNOWN_WEBHOOK_EVENTS, KOMMO_PIPELINE_STAGE_COLORS, KOMMO_TAG_COLORS, type KnownEventType, KommoApiError, KommoClient, type KommoConfig, type KommoPipelineStageColor, type Lead, type LeadCatalogElementRef, type LeadCompanyRef, type LeadContactRef, type LeadTag, type LeadTagRef, type LeadWithParam, LeadsResource, type LinkMetadataInput, type LinkSourceEntityType, type LinkTargetEntityType, type LinkUnsortedLeadResponse, LinksResource, type ListCatalogElementsParams, type ListCatalogElementsResponse, type ListCatalogsParams, type ListCatalogsResponse, type ListChatTemplatesParams, type ListChatTemplatesResponse, type ListCompaniesParams, type ListCompaniesResponse, type ListContactsParams, type ListContactsResponse, type ListCustomField, type ListCustomFieldGroupsResponse, type ListEntityAttachedFilesParams, type ListEntityAttachedFilesResponse, type ListEntityCustomFieldsResponse, type ListEntityLinksParams, type ListEntityLinksResponse, type ListEntityNotesParams, type ListEventTypesParams, type ListEventTypesResponse, type ListEventsParams, type ListEventsResponse, type ListFileLinkedEntitiesResponse, type ListFileVersionsResponse, type ListFilesParams, type ListFilesResponse, type ListLeadsParams, type ListLeadsResponse, type ListListCustomFieldsResponse, type ListLossReasonsResponse, type ListNotesResponse, type ListPipelineStatusesResponse, type ListPipelinesResponse, type ListRolesParams, type ListRolesResponse, type ListSalesbotsParams, type ListSalesbotsResponse, type ListSourcesResponse, type ListTagsParams, type ListTagsResponse, type ListTalksParams, type ListTalksResponse, type ListTasksParams, type ListTasksResponse, type ListUnsortedLeadsParams, type ListUnsortedLeadsResponse, type ListUsersParams, type ListUsersResponse, type ListWebhooksParams, type ListWebhooksResponse, type ListWebsiteButtonsParams, type ListWebsiteButtonsResponse, type LossReason, type Note, type NoteEntityType, type NoteParams, type NoteType, NotesResource, type PermissionLevel, type Pipeline, type PipelineStatus, PipelinesResource, type RestoreFilesItem, type Role, type RoleWithParam, RolesResource, type RunManySalesbotsItem, type RunSalesbotInput, type Salesbot, type SalesbotContinueBotType, type SalesbotContinueInput, type SalesbotExecuteHandler, type SalesbotFunctionalityType, SalesbotsResource, type ServiceMessageNoteParams, type SipMetadata, type SmsNoteParams, type Source, type SourceService, type SourceServicePage, SourcesResource, type StatusDescription, type StatusRight, type StopSalesbotInput, type SubmitWhatsAppTemplateReviewResponse, type Tag, type TagColor, type TagEntityType, type TagRefInput, TagsResource, type Talk, type TalkEntityType, type TalkStatus, TalksResource, type Task, TasksResource, type UnsortedDecisionResponse, type UnsortedLead, UnsortedResource, type UnsortedSummaryParams, type UnsortedSummaryResponse, type UpdateCatalogElementInput, type UpdateCatalogElementsResponse, type UpdateCatalogInput, type UpdateCatalogsResponse, type UpdateChatTemplateInput, type UpdateChatTemplatesResponse, type UpdateCompaniesResponse, type UpdateCompanyInput, type UpdateContactInput, type UpdateContactsResponse, type UpdateCustomFieldGroupInput, type UpdateEntityCustomFieldInput, type UpdateEntityTagsBatchResponse, type UpdateEntityTagsInput, type UpdateEntityTagsSingleResponse, type UpdateFileInput, type UpdateLeadInput, type UpdateLeadsResponse, type UpdateListCustomFieldInput, type UpdateNoteInput, type UpdateNotesResponse, type UpdatePipelineInput, type UpdateRoleInput, type UpdateSingleCatalogElementInput, type UpdateSingleCatalogInput, type UpdateSingleCompanyInput, type UpdateSingleContactInput, type UpdateSingleEntityCustomFieldInput, type UpdateSingleEntityTagsInput, type UpdateSingleLeadInput, type UpdateSingleListCustomFieldInput, type UpdateSingleNoteInput, type UpdateSingleTaskInput, type UpdateSourceBatchInput, type UpdateSourceInput, type UpdateSourcesResponse, type UpdateStatusInput, type UpdateTaskInput, type UpdateTasksResponse, type UpdateWebsiteButtonInput, type UpdateWhatsAppTemplateReviewStatusInput, type UpdateWhatsAppTemplateReviewStatusResponse, type UploadFilePartInput, type UploadFilePartResponse, type UploadSessionResponse, type User, type UserWithParam, UsersResource, type WabaCategory, type WabaHeaderType, type WabaReviewStatus, type Webhook, type WebhookEvent, WebhooksResource, type WebsiteButton, type WebsiteButtonCreationStatus, WebsiteButtonsResource, type WhatsAppTemplateModerationStatus, eventUtils };
|
|
2913
|
+
export { type AccessTokenResponse, type Account, AccountResource, type AccountWithParam, type AmojoRights, type AttachFilesToEntityItem, type AttachmentNoteParams, AuthManager, type BaseCreateUnsortedItem, type BaseCustomField, type BaseEntity, type CallNoteParams, type Catalog, type CatalogElement, type CatalogElementCustomFieldValue, CatalogsResource, type ChatTemplate, type ChatTemplateAttachment, type ChatTemplateButton, type ChatTemplateButtonType, type ChatTemplateReview, type ChatTemplateType, ChatTemplatesResource, type CloseTalkParams, type CollectionResponse, type CommonNoteParams, CompaniesResource, type Company, type CompanyCatalogElementRef, type CompanyContactRef, type CompanyLeadRef, type CompanyTag, type CompanyTagRef, type CompanyWithParam, type Contact, type ContactCatalogElementRef, type ContactCompanyRef, type ContactCustomerRef, type ContactLeadRef, type ContactTag, type ContactTagRef, type ContactWithParam, ContactsResource, type CreateCatalogElementInput, type CreateCatalogElementsResponse, type CreateCatalogInput, type CreateCatalogsResponse, type CreateChatTemplateInput, type CreateChatTemplatesResponse, type CreateCompaniesResponse, type CreateCompanyInput, type CreateComplexLeadInput, type CreateComplexLeadsResponse, type CreateComplexLeadsResponseItem, type CreateContactInput, type CreateContactsResponse, type CreateCustomFieldGroupInput, type CreateEntityCustomFieldInput, type CreateEntityLinkInput, type CreateEntityLinksResponse, type CreateFileUploadSessionInput, type CreateFormUnsortedLeadInput, type CreateLeadInput, type CreateLeadsResponse, type CreateListCustomFieldInput, type CreateNoteInput, type CreateNotesResponse, type CreatePipelineInput, type CreatePipelineStatusInput, type CreatePipelinesResponse, type CreateRoleInput, type CreateSipUnsortedLeadInput, type CreateSourceInput, type CreateSourcesResponse, type CreateStatusInput, type CreateStatusesResponse, type CreateTagInput, type CreateTagRef, type CreateTagsResponse, type CreateTaskInput, type CreateTasksResponse, type CreateUnsortedCompany, type CreateUnsortedContact, type CreateUnsortedLead, type CreateUnsortedLeadsResponse, type CreateUserInput, type CreateWebhookInput, type CreateWebsiteButtonInput, type CreateWebsiteButtonResponse, type CustomField, type CustomFieldEnum, type CustomFieldGroup, CustomFieldGroupsResource, type CustomFieldNestedValue, type CustomFieldRequiredStatus, type CustomFieldType, type CustomFieldValue, CustomFieldsResource, type DeleteChatTemplateInput, type DeleteEntityLinkInput, type DeleteFilesItem, type DeleteSourceBatchInput, type DeleteWebhookInput, type DetachFilesFromEntityItem, type Embedded, type EntityAttachedFileRecord, type EntityCustomField, EntityFilesResource, type EntityLink, type EntityLinkMetadata, type EntityLinkWithSource, type EntityRights, type EntityType, type EntityUpdateResult, type Event, type EventTypeDefinition, type EventValueChange, type EventValueFilters, type EventWithParam, EventsResource, type FileAttachEntityType, type FileLinkedEntityRecord, FileLinksResource, type FileRecord, type FileVersionRecord, FilesResource, FilesServiceResource, type FormMetadata, type GeolocationNoteParams, type GetAccountParams, KNOWN_WEBHOOK_EVENTS, KOMMO_PIPELINE_STAGE_COLORS, KOMMO_TAG_COLORS, type KnownEventType, KommoApiError, KommoClient, type KommoConfig, type KommoPipelineStageColor, type Lead, type LeadCatalogElementRef, type LeadCompanyRef, type LeadContactRef, type LeadTag, type LeadTagRef, type LeadWithParam, LeadsResource, type LinkMetadataInput, type LinkSourceEntityType, type LinkTargetEntityType, type LinkUnsortedLeadResponse, LinksResource, type ListCatalogElementsParams, type ListCatalogElementsResponse, type ListCatalogsParams, type ListCatalogsResponse, type ListChatTemplatesParams, type ListChatTemplatesResponse, type ListCompaniesParams, type ListCompaniesResponse, type ListContactsParams, type ListContactsResponse, type ListCustomField, type ListCustomFieldGroupsResponse, type ListEntityAttachedFilesParams, type ListEntityAttachedFilesResponse, type ListEntityCustomFieldsResponse, type ListEntityLinksParams, type ListEntityLinksResponse, type ListEntityNotesParams, type ListEventTypesParams, type ListEventTypesResponse, type ListEventsParams, type ListEventsResponse, type ListFileLinkedEntitiesResponse, type ListFileVersionsResponse, type ListFilesParams, type ListFilesResponse, type ListLeadsParams, type ListLeadsResponse, type ListListCustomFieldsResponse, type ListLossReasonsResponse, type ListNotesResponse, type ListPipelineStatusesResponse, type ListPipelinesResponse, type ListRolesParams, type ListRolesResponse, type ListSalesbotsParams, type ListSalesbotsResponse, type ListSourcesResponse, type ListTagsParams, type ListTagsResponse, type ListTalksParams, type ListTalksResponse, type ListTasksParams, type ListTasksResponse, type ListUnsortedLeadsParams, type ListUnsortedLeadsResponse, type ListUsersParams, type ListUsersResponse, type ListWebhooksParams, type ListWebhooksResponse, type ListWebsiteButtonsParams, type ListWebsiteButtonsResponse, type LossReason, type Note, type NoteEntityType, type NoteParams, type NoteType, NotesResource, type PermissionLevel, type Pipeline, type PipelineStatus, PipelinesResource, type RestoreFilesItem, type RetryConfig, type Role, type RoleWithParam, RolesResource, type RunManySalesbotsItem, type RunSalesbotInput, type Salesbot, type SalesbotContinueBotType, type SalesbotContinueInput, type SalesbotExecuteHandler, type SalesbotFunctionalityType, SalesbotsResource, type ServiceMessageNoteParams, type SipMetadata, type SmsNoteParams, type Source, type SourceService, type SourceServicePage, SourcesResource, type StatusDescription, type StatusRight, type StopSalesbotInput, type SubmitWhatsAppTemplateReviewResponse, type Tag, type TagColor, type TagEntityType, type TagRefInput, TagsResource, type Talk, type TalkEntityType, type TalkStatus, TalksResource, type Task, TasksResource, type UnsortedDecisionResponse, type UnsortedLead, UnsortedResource, type UnsortedSummaryParams, type UnsortedSummaryResponse, type UpdateCatalogElementInput, type UpdateCatalogElementsResponse, type UpdateCatalogInput, type UpdateCatalogsResponse, type UpdateChatTemplateInput, type UpdateChatTemplatesResponse, type UpdateCompaniesResponse, type UpdateCompanyInput, type UpdateContactInput, type UpdateContactsResponse, type UpdateCustomFieldGroupInput, type UpdateEntityCustomFieldInput, type UpdateEntityTagsBatchResponse, type UpdateEntityTagsInput, type UpdateEntityTagsSingleResponse, type UpdateFileInput, type UpdateLeadInput, type UpdateLeadsResponse, type UpdateListCustomFieldInput, type UpdateNoteInput, type UpdateNotesResponse, type UpdatePipelineInput, type UpdateRoleInput, type UpdateSingleCatalogElementInput, type UpdateSingleCatalogInput, type UpdateSingleCompanyInput, type UpdateSingleContactInput, type UpdateSingleEntityCustomFieldInput, type UpdateSingleEntityTagsInput, type UpdateSingleLeadInput, type UpdateSingleListCustomFieldInput, type UpdateSingleNoteInput, type UpdateSingleTaskInput, type UpdateSourceBatchInput, type UpdateSourceInput, type UpdateSourcesResponse, type UpdateStatusInput, type UpdateTaskInput, type UpdateTasksResponse, type UpdateWebsiteButtonInput, type UpdateWhatsAppTemplateReviewStatusInput, type UpdateWhatsAppTemplateReviewStatusResponse, type UploadFilePartInput, type UploadFilePartResponse, type UploadSessionResponse, type User, type UserWithParam, UsersResource, type WabaCategory, type WabaHeaderType, type WabaReviewStatus, type Webhook, type WebhookEvent, WebhooksResource, type WebsiteButton, type WebsiteButtonCreationStatus, WebsiteButtonsResource, type WhatsAppTemplateModerationStatus, eventUtils };
|
package/dist/index.js
CHANGED
|
@@ -109,12 +109,30 @@ var AuthManager = class {
|
|
|
109
109
|
// src/resources/leads/index.ts
|
|
110
110
|
var import_qs = __toESM(require("qs"));
|
|
111
111
|
|
|
112
|
+
// src/utils/idempotency.ts
|
|
113
|
+
var import_crypto = require("crypto");
|
|
114
|
+
function ensureRequestId(item) {
|
|
115
|
+
if (item.request_id) return item;
|
|
116
|
+
return { ...item, request_id: (0, import_crypto.randomUUID)() };
|
|
117
|
+
}
|
|
118
|
+
|
|
112
119
|
// src/base.ts
|
|
113
120
|
var BaseResource = class {
|
|
114
121
|
client;
|
|
115
122
|
constructor(client) {
|
|
116
123
|
this.client = client;
|
|
117
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* POST de criação em lote marcado como seguro para retry: cada item recebe um
|
|
127
|
+
* request_id (se ainda não tiver um) para que a Kommo deduplique reenvios após
|
|
128
|
+
* falhas transitórias de rede, e a requisição fica elegível ao retry automático.
|
|
129
|
+
*/
|
|
130
|
+
async postIdempotent(url, items) {
|
|
131
|
+
const payload = items.map(ensureRequestId);
|
|
132
|
+
const config = { _idempotentRetry: true };
|
|
133
|
+
const response = await this.client.post(url, payload, config);
|
|
134
|
+
return response.data;
|
|
135
|
+
}
|
|
118
136
|
};
|
|
119
137
|
|
|
120
138
|
// src/resources/leads/index.ts
|
|
@@ -186,8 +204,7 @@ var LeadsResource = class extends BaseResource {
|
|
|
186
204
|
}
|
|
187
205
|
async create(items) {
|
|
188
206
|
const payload = Array.isArray(items) ? items : [items];
|
|
189
|
-
|
|
190
|
-
return response.data;
|
|
207
|
+
return this.postIdempotent("/api/v4/leads", payload);
|
|
191
208
|
}
|
|
192
209
|
async update(items) {
|
|
193
210
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -200,8 +217,7 @@ var LeadsResource = class extends BaseResource {
|
|
|
200
217
|
}
|
|
201
218
|
async createComplex(items) {
|
|
202
219
|
const payload = Array.isArray(items) ? items : [items];
|
|
203
|
-
|
|
204
|
-
return response.data;
|
|
220
|
+
return this.postIdempotent("/api/v4/leads/complex", payload);
|
|
205
221
|
}
|
|
206
222
|
async listLossReasons() {
|
|
207
223
|
const response = await this.client.get("/api/v4/leads/loss_reasons");
|
|
@@ -278,8 +294,7 @@ var ContactsResource = class extends BaseResource {
|
|
|
278
294
|
}
|
|
279
295
|
async create(items) {
|
|
280
296
|
const payload = Array.isArray(items) ? items : [items];
|
|
281
|
-
|
|
282
|
-
return response.data;
|
|
297
|
+
return this.postIdempotent("/api/v4/contacts", payload);
|
|
283
298
|
}
|
|
284
299
|
async update(items) {
|
|
285
300
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -746,8 +761,7 @@ var CompaniesResource = class extends BaseResource {
|
|
|
746
761
|
}
|
|
747
762
|
async create(items) {
|
|
748
763
|
const payload = Array.isArray(items) ? items : [items];
|
|
749
|
-
|
|
750
|
-
return response.data;
|
|
764
|
+
return this.postIdempotent("/api/v4/companies", payload);
|
|
751
765
|
}
|
|
752
766
|
async update(items) {
|
|
753
767
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -1462,6 +1476,47 @@ var KommoApiError = class extends Error {
|
|
|
1462
1476
|
}
|
|
1463
1477
|
};
|
|
1464
1478
|
|
|
1479
|
+
// src/http/retry.ts
|
|
1480
|
+
var IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["get", "delete", "patch", "put", "head", "options"]);
|
|
1481
|
+
var TRANSIENT_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
1482
|
+
"ECONNRESET",
|
|
1483
|
+
"ECONNABORTED",
|
|
1484
|
+
"ETIMEDOUT",
|
|
1485
|
+
"EAI_AGAIN",
|
|
1486
|
+
"EPIPE"
|
|
1487
|
+
]);
|
|
1488
|
+
function isTransientNetworkError(error) {
|
|
1489
|
+
if (error.response) return false;
|
|
1490
|
+
if (error.code && TRANSIENT_ERROR_CODES.has(error.code)) return true;
|
|
1491
|
+
return /socket hang up|network error/i.test(error.message || "");
|
|
1492
|
+
}
|
|
1493
|
+
function isRetryableRequest(config) {
|
|
1494
|
+
const method = (config.method || "get").toLowerCase();
|
|
1495
|
+
if (IDEMPOTENT_METHODS.has(method)) return true;
|
|
1496
|
+
return method === "post" && config._idempotentRetry === true;
|
|
1497
|
+
}
|
|
1498
|
+
function wait(ms) {
|
|
1499
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
1500
|
+
}
|
|
1501
|
+
function attachRetryInterceptor(client, retryConfig = {}) {
|
|
1502
|
+
const { retries = 2, baseDelayMs = 300, maxDelayMs = 3e3 } = retryConfig;
|
|
1503
|
+
client.interceptors.response.use(void 0, async (error) => {
|
|
1504
|
+
const config = error.config;
|
|
1505
|
+
if (!config || retries <= 0 || !isTransientNetworkError(error) || !isRetryableRequest(config)) {
|
|
1506
|
+
throw error;
|
|
1507
|
+
}
|
|
1508
|
+
const attempt = config._retryCount ?? 0;
|
|
1509
|
+
if (attempt >= retries) {
|
|
1510
|
+
throw error;
|
|
1511
|
+
}
|
|
1512
|
+
config._retryCount = attempt + 1;
|
|
1513
|
+
const backoff = Math.min(maxDelayMs, baseDelayMs * 2 ** attempt);
|
|
1514
|
+
const jitter = backoff * 0.3 * Math.random();
|
|
1515
|
+
await wait(backoff + jitter);
|
|
1516
|
+
return client.request(config);
|
|
1517
|
+
});
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1465
1520
|
// src/client.ts
|
|
1466
1521
|
var KommoClient = class {
|
|
1467
1522
|
config;
|
|
@@ -1501,6 +1556,7 @@ var KommoClient = class {
|
|
|
1501
1556
|
const baseURL = `https://${config.domain}.kommo.com`;
|
|
1502
1557
|
this.httpClient = import_axios2.default.create({
|
|
1503
1558
|
baseURL,
|
|
1559
|
+
timeout: config.timeout ?? 3e4,
|
|
1504
1560
|
headers: {
|
|
1505
1561
|
"Content-Type": "application/json"
|
|
1506
1562
|
},
|
|
@@ -1508,6 +1564,9 @@ var KommoClient = class {
|
|
|
1508
1564
|
return import_qs19.default.stringify(params, { arrayFormat: "brackets" });
|
|
1509
1565
|
}
|
|
1510
1566
|
});
|
|
1567
|
+
if (config.retry !== false) {
|
|
1568
|
+
attachRetryInterceptor(this.httpClient, config.retry || {});
|
|
1569
|
+
}
|
|
1511
1570
|
this.httpClient.interceptors.response.use(
|
|
1512
1571
|
(response) => response,
|
|
1513
1572
|
(error) => {
|