kommo-aiatende-api 1.2.1 → 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 +80 -1
- package/dist/index.d.ts +80 -1
- package/dist/index.js +100 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +99 -10
- 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 {
|
|
@@ -2792,6 +2812,64 @@ declare class AccountResource extends BaseResource {
|
|
|
2792
2812
|
get(params?: GetAccountParams): Promise<Account>;
|
|
2793
2813
|
}
|
|
2794
2814
|
|
|
2815
|
+
type TalkEntityType = 'lead';
|
|
2816
|
+
type TalkStatus = 'in_work' | 'closed' | 'nps_scheduled' | 'nps_in_progress' | 'with_error';
|
|
2817
|
+
interface Talk {
|
|
2818
|
+
talk_id: number;
|
|
2819
|
+
created_at: number;
|
|
2820
|
+
updated_at: number;
|
|
2821
|
+
rate: number | null;
|
|
2822
|
+
contact_id: number;
|
|
2823
|
+
chat_id: string;
|
|
2824
|
+
entity_id: number;
|
|
2825
|
+
entity_type: TalkEntityType;
|
|
2826
|
+
status: TalkStatus;
|
|
2827
|
+
is_in_work: boolean;
|
|
2828
|
+
is_read: boolean;
|
|
2829
|
+
origin: string;
|
|
2830
|
+
source_id: string | null;
|
|
2831
|
+
account_id: number;
|
|
2832
|
+
_embedded?: {
|
|
2833
|
+
contacts?: Array<{
|
|
2834
|
+
id: number;
|
|
2835
|
+
}>;
|
|
2836
|
+
leads?: Array<{
|
|
2837
|
+
id: number;
|
|
2838
|
+
}>;
|
|
2839
|
+
};
|
|
2840
|
+
}
|
|
2841
|
+
interface ListTalksParams {
|
|
2842
|
+
page?: number;
|
|
2843
|
+
limit?: number;
|
|
2844
|
+
filter_talk_id?: number[];
|
|
2845
|
+
filter_contact_id?: number[];
|
|
2846
|
+
filter_entity_id?: number[];
|
|
2847
|
+
filter_entity_type?: TalkEntityType;
|
|
2848
|
+
filter_only_in_work?: boolean;
|
|
2849
|
+
}
|
|
2850
|
+
interface ListTalksResponse {
|
|
2851
|
+
_page: number;
|
|
2852
|
+
_links?: {
|
|
2853
|
+
self?: {
|
|
2854
|
+
href: string;
|
|
2855
|
+
};
|
|
2856
|
+
next?: {
|
|
2857
|
+
href: string;
|
|
2858
|
+
};
|
|
2859
|
+
};
|
|
2860
|
+
_embedded?: {
|
|
2861
|
+
talks?: Talk[];
|
|
2862
|
+
};
|
|
2863
|
+
}
|
|
2864
|
+
interface CloseTalkParams {
|
|
2865
|
+
force_close?: boolean;
|
|
2866
|
+
}
|
|
2867
|
+
|
|
2868
|
+
declare class TalksResource extends BaseResource {
|
|
2869
|
+
list(params?: ListTalksParams): Promise<ListTalksResponse>;
|
|
2870
|
+
close(id: number, params?: CloseTalkParams): Promise<void>;
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2795
2873
|
declare class KommoClient {
|
|
2796
2874
|
config: KommoConfig;
|
|
2797
2875
|
auth: AuthManager;
|
|
@@ -2818,6 +2896,7 @@ declare class KommoClient {
|
|
|
2818
2896
|
webhooks: WebhooksResource;
|
|
2819
2897
|
files: FilesResource;
|
|
2820
2898
|
account: AccountResource;
|
|
2899
|
+
talks: TalksResource;
|
|
2821
2900
|
constructor(config: KommoConfig);
|
|
2822
2901
|
setAccessToken(token: string): void;
|
|
2823
2902
|
}
|
|
@@ -2831,4 +2910,4 @@ declare class KommoApiError extends Error {
|
|
|
2831
2910
|
constructor(message: string, info?: Partial<KommoApiError>);
|
|
2832
2911
|
}
|
|
2833
2912
|
|
|
2834
|
-
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 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 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 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 {
|
|
@@ -2792,6 +2812,64 @@ declare class AccountResource extends BaseResource {
|
|
|
2792
2812
|
get(params?: GetAccountParams): Promise<Account>;
|
|
2793
2813
|
}
|
|
2794
2814
|
|
|
2815
|
+
type TalkEntityType = 'lead';
|
|
2816
|
+
type TalkStatus = 'in_work' | 'closed' | 'nps_scheduled' | 'nps_in_progress' | 'with_error';
|
|
2817
|
+
interface Talk {
|
|
2818
|
+
talk_id: number;
|
|
2819
|
+
created_at: number;
|
|
2820
|
+
updated_at: number;
|
|
2821
|
+
rate: number | null;
|
|
2822
|
+
contact_id: number;
|
|
2823
|
+
chat_id: string;
|
|
2824
|
+
entity_id: number;
|
|
2825
|
+
entity_type: TalkEntityType;
|
|
2826
|
+
status: TalkStatus;
|
|
2827
|
+
is_in_work: boolean;
|
|
2828
|
+
is_read: boolean;
|
|
2829
|
+
origin: string;
|
|
2830
|
+
source_id: string | null;
|
|
2831
|
+
account_id: number;
|
|
2832
|
+
_embedded?: {
|
|
2833
|
+
contacts?: Array<{
|
|
2834
|
+
id: number;
|
|
2835
|
+
}>;
|
|
2836
|
+
leads?: Array<{
|
|
2837
|
+
id: number;
|
|
2838
|
+
}>;
|
|
2839
|
+
};
|
|
2840
|
+
}
|
|
2841
|
+
interface ListTalksParams {
|
|
2842
|
+
page?: number;
|
|
2843
|
+
limit?: number;
|
|
2844
|
+
filter_talk_id?: number[];
|
|
2845
|
+
filter_contact_id?: number[];
|
|
2846
|
+
filter_entity_id?: number[];
|
|
2847
|
+
filter_entity_type?: TalkEntityType;
|
|
2848
|
+
filter_only_in_work?: boolean;
|
|
2849
|
+
}
|
|
2850
|
+
interface ListTalksResponse {
|
|
2851
|
+
_page: number;
|
|
2852
|
+
_links?: {
|
|
2853
|
+
self?: {
|
|
2854
|
+
href: string;
|
|
2855
|
+
};
|
|
2856
|
+
next?: {
|
|
2857
|
+
href: string;
|
|
2858
|
+
};
|
|
2859
|
+
};
|
|
2860
|
+
_embedded?: {
|
|
2861
|
+
talks?: Talk[];
|
|
2862
|
+
};
|
|
2863
|
+
}
|
|
2864
|
+
interface CloseTalkParams {
|
|
2865
|
+
force_close?: boolean;
|
|
2866
|
+
}
|
|
2867
|
+
|
|
2868
|
+
declare class TalksResource extends BaseResource {
|
|
2869
|
+
list(params?: ListTalksParams): Promise<ListTalksResponse>;
|
|
2870
|
+
close(id: number, params?: CloseTalkParams): Promise<void>;
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2795
2873
|
declare class KommoClient {
|
|
2796
2874
|
config: KommoConfig;
|
|
2797
2875
|
auth: AuthManager;
|
|
@@ -2818,6 +2896,7 @@ declare class KommoClient {
|
|
|
2818
2896
|
webhooks: WebhooksResource;
|
|
2819
2897
|
files: FilesResource;
|
|
2820
2898
|
account: AccountResource;
|
|
2899
|
+
talks: TalksResource;
|
|
2821
2900
|
constructor(config: KommoConfig);
|
|
2822
2901
|
setAccessToken(token: string): void;
|
|
2823
2902
|
}
|
|
@@ -2831,4 +2910,4 @@ declare class KommoApiError extends Error {
|
|
|
2831
2910
|
constructor(message: string, info?: Partial<KommoApiError>);
|
|
2832
2911
|
}
|
|
2833
2912
|
|
|
2834
|
-
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 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 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 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
|
@@ -56,6 +56,7 @@ __export(index_exports, {
|
|
|
56
56
|
SalesbotsResource: () => SalesbotsResource,
|
|
57
57
|
SourcesResource: () => SourcesResource,
|
|
58
58
|
TagsResource: () => TagsResource,
|
|
59
|
+
TalksResource: () => TalksResource,
|
|
59
60
|
TasksResource: () => TasksResource,
|
|
60
61
|
UnsortedResource: () => UnsortedResource,
|
|
61
62
|
UsersResource: () => UsersResource,
|
|
@@ -67,7 +68,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
67
68
|
|
|
68
69
|
// src/client.ts
|
|
69
70
|
var import_axios2 = __toESM(require("axios"));
|
|
70
|
-
var
|
|
71
|
+
var import_qs19 = __toESM(require("qs"));
|
|
71
72
|
|
|
72
73
|
// src/auth.ts
|
|
73
74
|
var import_axios = __toESM(require("axios"));
|
|
@@ -108,12 +109,30 @@ var AuthManager = class {
|
|
|
108
109
|
// src/resources/leads/index.ts
|
|
109
110
|
var import_qs = __toESM(require("qs"));
|
|
110
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
|
+
|
|
111
119
|
// src/base.ts
|
|
112
120
|
var BaseResource = class {
|
|
113
121
|
client;
|
|
114
122
|
constructor(client) {
|
|
115
123
|
this.client = client;
|
|
116
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
|
+
}
|
|
117
136
|
};
|
|
118
137
|
|
|
119
138
|
// src/resources/leads/index.ts
|
|
@@ -185,8 +204,7 @@ var LeadsResource = class extends BaseResource {
|
|
|
185
204
|
}
|
|
186
205
|
async create(items) {
|
|
187
206
|
const payload = Array.isArray(items) ? items : [items];
|
|
188
|
-
|
|
189
|
-
return response.data;
|
|
207
|
+
return this.postIdempotent("/api/v4/leads", payload);
|
|
190
208
|
}
|
|
191
209
|
async update(items) {
|
|
192
210
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -199,8 +217,7 @@ var LeadsResource = class extends BaseResource {
|
|
|
199
217
|
}
|
|
200
218
|
async createComplex(items) {
|
|
201
219
|
const payload = Array.isArray(items) ? items : [items];
|
|
202
|
-
|
|
203
|
-
return response.data;
|
|
220
|
+
return this.postIdempotent("/api/v4/leads/complex", payload);
|
|
204
221
|
}
|
|
205
222
|
async listLossReasons() {
|
|
206
223
|
const response = await this.client.get("/api/v4/leads/loss_reasons");
|
|
@@ -277,8 +294,7 @@ var ContactsResource = class extends BaseResource {
|
|
|
277
294
|
}
|
|
278
295
|
async create(items) {
|
|
279
296
|
const payload = Array.isArray(items) ? items : [items];
|
|
280
|
-
|
|
281
|
-
return response.data;
|
|
297
|
+
return this.postIdempotent("/api/v4/contacts", payload);
|
|
282
298
|
}
|
|
283
299
|
async update(items) {
|
|
284
300
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -745,8 +761,7 @@ var CompaniesResource = class extends BaseResource {
|
|
|
745
761
|
}
|
|
746
762
|
async create(items) {
|
|
747
763
|
const payload = Array.isArray(items) ? items : [items];
|
|
748
|
-
|
|
749
|
-
return response.data;
|
|
764
|
+
return this.postIdempotent("/api/v4/companies", payload);
|
|
750
765
|
}
|
|
751
766
|
async update(items) {
|
|
752
767
|
const payload = Array.isArray(items) ? items : [items];
|
|
@@ -1414,6 +1429,33 @@ var AccountResource = class extends BaseResource {
|
|
|
1414
1429
|
}
|
|
1415
1430
|
};
|
|
1416
1431
|
|
|
1432
|
+
// src/resources/talks/index.ts
|
|
1433
|
+
var import_qs18 = __toESM(require("qs"));
|
|
1434
|
+
var TalksResource = class extends BaseResource {
|
|
1435
|
+
async list(params) {
|
|
1436
|
+
const queryParams = {};
|
|
1437
|
+
if (params) {
|
|
1438
|
+
if (params.page !== void 0) queryParams.page = params.page;
|
|
1439
|
+
if (params.limit !== void 0) queryParams.limit = params.limit;
|
|
1440
|
+
if (params.filter_talk_id !== void 0) queryParams.filter = { ...queryParams.filter, talk_id: params.filter_talk_id };
|
|
1441
|
+
if (params.filter_contact_id !== void 0) queryParams.filter = { ...queryParams.filter, contact_id: params.filter_contact_id };
|
|
1442
|
+
if (params.filter_entity_id !== void 0) queryParams.filter = { ...queryParams.filter, entity_id: params.filter_entity_id };
|
|
1443
|
+
if (params.filter_entity_type !== void 0) queryParams.filter = { ...queryParams.filter, entity_type: params.filter_entity_type };
|
|
1444
|
+
if (params.filter_only_in_work) queryParams.filter = { ...queryParams.filter, only_in_work: "" };
|
|
1445
|
+
}
|
|
1446
|
+
const query = import_qs18.default.stringify(queryParams, { skipNulls: true, arrayFormat: "brackets" });
|
|
1447
|
+
const qsStr = query ? `?${query}` : "";
|
|
1448
|
+
const response = await this.client.get(`/api/v4/talks${qsStr}`);
|
|
1449
|
+
if (response.status === 204 || !response.data) {
|
|
1450
|
+
return { _page: 1, _embedded: { talks: [] } };
|
|
1451
|
+
}
|
|
1452
|
+
return response.data;
|
|
1453
|
+
}
|
|
1454
|
+
async close(id, params) {
|
|
1455
|
+
await this.client.post(`/api/v4/talks/${id}/close`, params ?? {});
|
|
1456
|
+
}
|
|
1457
|
+
};
|
|
1458
|
+
|
|
1417
1459
|
// src/errors.ts
|
|
1418
1460
|
var KommoApiError = class extends Error {
|
|
1419
1461
|
status;
|
|
@@ -1434,6 +1476,47 @@ var KommoApiError = class extends Error {
|
|
|
1434
1476
|
}
|
|
1435
1477
|
};
|
|
1436
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
|
+
|
|
1437
1520
|
// src/client.ts
|
|
1438
1521
|
var KommoClient = class {
|
|
1439
1522
|
config;
|
|
@@ -1461,6 +1544,7 @@ var KommoClient = class {
|
|
|
1461
1544
|
webhooks;
|
|
1462
1545
|
files;
|
|
1463
1546
|
account;
|
|
1547
|
+
talks;
|
|
1464
1548
|
constructor(config) {
|
|
1465
1549
|
this.config = config;
|
|
1466
1550
|
this.auth = new AuthManager(
|
|
@@ -1472,13 +1556,17 @@ var KommoClient = class {
|
|
|
1472
1556
|
const baseURL = `https://${config.domain}.kommo.com`;
|
|
1473
1557
|
this.httpClient = import_axios2.default.create({
|
|
1474
1558
|
baseURL,
|
|
1559
|
+
timeout: config.timeout ?? 3e4,
|
|
1475
1560
|
headers: {
|
|
1476
1561
|
"Content-Type": "application/json"
|
|
1477
1562
|
},
|
|
1478
1563
|
paramsSerializer: (params) => {
|
|
1479
|
-
return
|
|
1564
|
+
return import_qs19.default.stringify(params, { arrayFormat: "brackets" });
|
|
1480
1565
|
}
|
|
1481
1566
|
});
|
|
1567
|
+
if (config.retry !== false) {
|
|
1568
|
+
attachRetryInterceptor(this.httpClient, config.retry || {});
|
|
1569
|
+
}
|
|
1482
1570
|
this.httpClient.interceptors.response.use(
|
|
1483
1571
|
(response) => response,
|
|
1484
1572
|
(error) => {
|
|
@@ -1520,6 +1608,7 @@ var KommoClient = class {
|
|
|
1520
1608
|
this.webhooks = new WebhooksResource(this.httpClient);
|
|
1521
1609
|
this.files = new FilesResource(this.httpClient);
|
|
1522
1610
|
this.account = new AccountResource(this.httpClient);
|
|
1611
|
+
this.talks = new TalksResource(this.httpClient);
|
|
1523
1612
|
}
|
|
1524
1613
|
setAccessToken(token) {
|
|
1525
1614
|
this.config.accessToken = token;
|
|
@@ -1648,6 +1737,7 @@ var KNOWN_WEBHOOK_EVENTS = [
|
|
|
1648
1737
|
SalesbotsResource,
|
|
1649
1738
|
SourcesResource,
|
|
1650
1739
|
TagsResource,
|
|
1740
|
+
TalksResource,
|
|
1651
1741
|
TasksResource,
|
|
1652
1742
|
UnsortedResource,
|
|
1653
1743
|
UsersResource,
|