@trii/types 2.10.742 → 2.10.744

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.
Files changed (104) hide show
  1. package/dist/Automations/Events/Event.d.ts +3 -3
  2. package/dist/Common/index.js +17 -7
  3. package/dist/Contacts/CommunicationEndpoint.d.ts +8 -8
  4. package/dist/Conversations/Classifications/ConversationClassificationEvents.d.ts +2 -2
  5. package/dist/Conversations/Conversation.d.ts +8 -8
  6. package/dist/Conversations/DashBoard/dashboardForms.d.ts +44 -0
  7. package/dist/Conversations/DashBoard/dashboardForms.js +24 -0
  8. package/dist/Conversations/InboxCounters.d.ts +18 -0
  9. package/dist/Conversations/InboxMongo.d.ts +12 -12
  10. package/dist/Conversations/Routing.d.ts +10 -10
  11. package/dist/Conversations/index.js +17 -7
  12. package/dist/Events/DomainEventTypes.d.ts +23 -23
  13. package/dist/Tickets/SelfService.d.ts +130 -1
  14. package/dist/index.js +17 -7
  15. package/dist/src/Common/Channels/Channel.d.ts +1 -28
  16. package/dist/src/Contacts/contacts.d.ts +2 -2
  17. package/dist/src/Conversations/Conversation.d.ts +48 -331
  18. package/dist/src/Conversations/Conversation.js +34 -14
  19. package/dist/src/Conversations/DashBoard/dashboard.d.ts +2 -2
  20. package/dist/src/Conversations/DashBoard/dashboardForms.d.ts +44 -0
  21. package/dist/src/Conversations/DashBoard/dashboardForms.js +24 -0
  22. package/dist/src/Conversations/Flows/Workflows/Workflow.d.ts +123 -280
  23. package/dist/src/Conversations/Flows/Workflows/Workflow.js +35 -85
  24. package/dist/src/Conversations/Groups/Group.d.ts +8 -2
  25. package/dist/src/Conversations/Groups/Group.js +6 -0
  26. package/dist/src/Conversations/Label.d.ts +1 -1
  27. package/dist/src/Conversations/WebHook.d.ts +1 -1
  28. package/dist/src/Conversations/index.d.ts +1 -9
  29. package/dist/src/Conversations/index.js +1 -9
  30. package/dist/src/Tickets/Category.d.ts +0 -18
  31. package/dist/src/Tickets/Dashboard.d.ts +0 -78
  32. package/dist/src/Tickets/Dashboard.js +1 -13
  33. package/dist/src/Tickets/Fields.d.ts +0 -1
  34. package/dist/src/Tickets/Layouts.d.ts +1 -3
  35. package/dist/src/Tickets/Workflow.d.ts +0 -20
  36. package/dist/src/Users/UserTrii.d.ts +0 -10
  37. package/dist/src/Users/UserTrii.js +1 -8
  38. package/dist/src/index.d.ts +0 -3
  39. package/dist/src/index.js +1 -4
  40. package/package.json +2 -5
  41. package/dist/src/Automations/Capabilities/Capability.d.ts +0 -81
  42. package/dist/src/Automations/Capabilities/Capability.js +0 -23
  43. package/dist/src/Automations/Capabilities/index.d.ts +0 -1
  44. package/dist/src/Automations/Capabilities/index.js +0 -17
  45. package/dist/src/Automations/Common.d.ts +0 -94
  46. package/dist/src/Automations/Common.js +0 -40
  47. package/dist/src/Automations/Events/Event.d.ts +0 -69
  48. package/dist/src/Automations/Events/Event.js +0 -14
  49. package/dist/src/Automations/Events/index.d.ts +0 -1
  50. package/dist/src/Automations/Events/index.js +0 -17
  51. package/dist/src/Automations/Executions/Execution.d.ts +0 -254
  52. package/dist/src/Automations/Executions/Execution.js +0 -62
  53. package/dist/src/Automations/Executions/Testing.d.ts +0 -166
  54. package/dist/src/Automations/Executions/Testing.js +0 -54
  55. package/dist/src/Automations/Executions/index.d.ts +0 -2
  56. package/dist/src/Automations/Executions/index.js +0 -18
  57. package/dist/src/Automations/Flows/Canvas.d.ts +0 -103
  58. package/dist/src/Automations/Flows/Canvas.js +0 -38
  59. package/dist/src/Automations/Flows/Flow.d.ts +0 -147
  60. package/dist/src/Automations/Flows/Flow.js +0 -58
  61. package/dist/src/Automations/Flows/Requests.d.ts +0 -71
  62. package/dist/src/Automations/Flows/Validation.d.ts +0 -28
  63. package/dist/src/Automations/Flows/Validation.js +0 -9
  64. package/dist/src/Automations/Flows/index.d.ts +0 -4
  65. package/dist/src/Automations/Flows/index.js +0 -20
  66. package/dist/src/Automations/Nodes/Node.d.ts +0 -113
  67. package/dist/src/Automations/Nodes/Node.js +0 -27
  68. package/dist/src/Automations/Nodes/index.d.ts +0 -1
  69. package/dist/src/Automations/Nodes/index.js +0 -17
  70. package/dist/src/Automations/index.d.ts +0 -6
  71. package/dist/src/Automations/index.js +0 -22
  72. package/dist/src/Chats/Chat.d.ts +0 -61
  73. package/dist/src/Chats/Chat.js +0 -28
  74. package/dist/src/Conversations/Assignment.d.ts +0 -81
  75. package/dist/src/Conversations/Assignment.js +0 -4
  76. package/dist/src/Conversations/InboxMongo.d.ts +0 -154
  77. package/dist/src/Conversations/InboxMongo.js +0 -128
  78. package/dist/src/Conversations/InboxProjection.d.ts +0 -162
  79. package/dist/src/Conversations/InboxProjection.js +0 -2
  80. package/dist/src/Conversations/Outbox.d.ts +0 -24
  81. package/dist/src/Conversations/Outbox.js +0 -4
  82. package/dist/src/Conversations/Queue.d.ts +0 -107
  83. package/dist/src/Conversations/Queue.js +0 -4
  84. package/dist/src/Conversations/Routing.d.ts +0 -164
  85. package/dist/src/Conversations/Routing.js +0 -2
  86. package/dist/src/Conversations/Sla.d.ts +0 -227
  87. package/dist/src/Conversations/Sla.js +0 -6
  88. package/dist/src/Conversations/Transfer.d.ts +0 -73
  89. package/dist/src/Conversations/Transfer.js +0 -2
  90. package/dist/src/Forms/API.d.ts +0 -53
  91. package/dist/src/Forms/API.js +0 -2
  92. package/dist/src/Forms/SubmittedForm.d.ts +0 -56
  93. package/dist/src/Forms/SubmittedForm.js +0 -9
  94. package/dist/src/Forms/index.d.ts +0 -2
  95. package/dist/src/Forms/index.js +0 -18
  96. package/dist/src/Presence/AgentPause.d.ts +0 -24
  97. package/dist/src/Presence/AgentPause.js +0 -19
  98. package/dist/src/Presence/QueueParticipation.d.ts +0 -17
  99. package/dist/src/Presence/QueueParticipation.js +0 -2
  100. package/dist/src/Presence/QueueRoutingState.d.ts +0 -27
  101. package/dist/src/Presence/QueueRoutingState.js +0 -9
  102. package/dist/src/Presence/index.d.ts +0 -3
  103. package/dist/src/Presence/index.js +0 -19
  104. /package/dist/{src/Automations/Flows/Requests.js → Conversations/InboxCounters.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { AutomationCustomer, AutomationJsonObject, AutomationJsonSchema, AutomationResourceReference, AutomationSourceApplication } from '../Common';
2
2
  export declare const AUTOMATION_MESSAGE_SCHEMAS: {
3
- readonly DOMAIN_EVENT_V1: "automations.domain-event/v1";
4
- readonly START_REQUEST_V1: "automations.start-request/v1";
5
- readonly EXECUTION_WORK_ITEM_V1: "automations.execution.work-item/v1";
3
+ readonly DOMAIN_EVENT_V1: 'automations.domain-event/v1';
4
+ readonly START_REQUEST_V1: 'automations.start-request/v1';
5
+ readonly EXECUTION_WORK_ITEM_V1: 'automations.execution.work-item/v1';
6
6
  };
7
7
  export interface AutomationEventDefinition {
8
8
  eventType: string;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.QueueEvent = exports.Schedules = exports.Notifications = exports.Messages = exports.Channels = exports.API = void 0;
27
37
  exports.API = __importStar(require("./API/index"));
@@ -9,22 +9,22 @@ export declare enum CommunicationEndpointKind {
9
9
  */
10
10
  export declare const providerIdentityNamespaces: {
11
11
  readonly meta: {
12
- readonly instagramUser: "instagram_user";
13
- readonly messengerUser: "messenger_user";
14
- readonly whatsappUser: "whatsapp_user";
12
+ readonly instagramUser: 'instagram_user';
13
+ readonly messengerUser: 'messenger_user';
14
+ readonly whatsappUser: 'whatsapp_user';
15
15
  };
16
16
  readonly telegram: {
17
- readonly user: "user";
18
- readonly chat: "chat";
17
+ readonly user: 'user';
18
+ readonly chat: 'chat';
19
19
  };
20
20
  readonly trii: {
21
- readonly webchatVisitor: "webchat_visitor";
21
+ readonly webchatVisitor: 'webchat_visitor';
22
22
  };
23
23
  readonly mercadolibre: {
24
- readonly buyer: "buyer";
24
+ readonly buyer: 'buyer';
25
25
  };
26
26
  readonly google: {
27
- readonly businessMessagesUser: "business_messages_user";
27
+ readonly businessMessagesUser: 'business_messages_user';
28
28
  };
29
29
  };
30
30
  export type KnownIdentityProvider = keyof typeof providerIdentityNamespaces;
@@ -1,7 +1,7 @@
1
1
  import type { ConversationClassificationEvaluationStatus } from './ConversationClassificationEvaluation';
2
2
  export declare const CONVERSATION_CLASSIFICATION_EVENT_TYPES: {
3
- readonly CONVERSATION_RESOLVED_FOR_EVALUATION: "conversation.resolved-for-classification";
4
- readonly EVALUATION_FINISHED: "conversation.classification-evaluation-finished";
3
+ readonly CONVERSATION_RESOLVED_FOR_EVALUATION: 'conversation.resolved-for-classification';
4
+ readonly EVALUATION_FINISHED: 'conversation.classification-evaluation-finished';
5
5
  };
6
6
  export declare const CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION: 1;
7
7
  /**
@@ -233,35 +233,35 @@ export type ConversationAssignmentSnapshot = {
233
233
  offerExpiresAt?: never;
234
234
  assignedAt?: never;
235
235
  acceptedAt?: never;
236
- } | QueuedConversationAssignmentBase & {
236
+ } | (QueuedConversationAssignmentBase & {
237
237
  status: 'queued' | 'routing';
238
238
  owner: NoConversationOwner;
239
239
  offeredAt?: never;
240
240
  offerExpiresAt?: never;
241
241
  assignedAt?: never;
242
242
  acceptedAt?: never;
243
- } | QueuedConversationAssignmentBase & {
243
+ }) | (QueuedConversationAssignmentBase & {
244
244
  status: 'offered';
245
245
  owner: UserConversationOwner;
246
246
  offeredAt: Date;
247
247
  offerExpiresAt?: Date;
248
248
  assignedAt?: never;
249
249
  acceptedAt?: never;
250
- } | QueuedConversationAssignmentBase & {
250
+ }) | (QueuedConversationAssignmentBase & {
251
251
  status: 'assigned';
252
252
  owner: UserConversationOwner;
253
253
  offeredAt?: Date;
254
254
  offerExpiresAt?: Date;
255
255
  assignedAt: Date;
256
256
  acceptedAt?: never;
257
- } | QueuedConversationAssignmentBase & {
257
+ }) | (QueuedConversationAssignmentBase & {
258
258
  status: 'accepted';
259
259
  owner: UserConversationOwner;
260
260
  offeredAt?: Date;
261
261
  offerExpiresAt?: Date;
262
262
  assignedAt: Date;
263
263
  acceptedAt: Date;
264
- };
264
+ });
265
265
  export type ActorType = 'user' | 'contact' | 'bot' | 'flow' | 'system';
266
266
  export type ParticipantRole = 'owner' | 'collaborator' | 'follower' | 'mentioned' | 'supervisor' | 'bot' | 'flow' | 'historical';
267
267
  export type ConversationEventType = 'conversation_created' | 'queued' | 'assigned' | 'accepted' | 'transferred' | 'consult_requested' | 'collaborator_added' | 'participant_added' | 'participant_removed' | 'participation_abandoned' | 'follow_started' | 'follow_stopped' | 'message_sent' | 'message_received' | 'internal_note_added' | 'bot_started' | 'bot_finished' | 'flow_started' | 'flow_finished' | 'status_changed' | 'resolved' | 'reopened' | 'sla_warning' | 'sla_breached' | 'sla_started' | 'sla_paused' | 'sla_resumed' | 'sla_met' | 'sla_overridden';
@@ -295,15 +295,15 @@ interface ConversationSubscriptionBase {
295
295
  * A subscription is persistent product intent. Assignment or participation
296
296
  * visibility must not create it unless an explicit auto-follow policy applies.
297
297
  */
298
- export type ConversationSubscription = ConversationSubscriptionBase & {
298
+ export type ConversationSubscription = (ConversationSubscriptionBase & {
299
299
  status: 'following';
300
300
  followedAt: Date;
301
301
  unfollowedAt?: never;
302
- } | ConversationSubscriptionBase & {
302
+ }) | (ConversationSubscriptionBase & {
303
303
  status: 'unfollowed';
304
304
  followedAt: Date;
305
305
  unfollowedAt: Date;
306
- };
306
+ });
307
307
  export interface PutConversationSubscriptionRequest {
308
308
  expectedVersion?: number;
309
309
  notifications: ConversationSubscriptionNotifications;
@@ -0,0 +1,44 @@
1
+ import { FormItemType } from "../../Common/Channels/Form";
2
+ export declare class DashBoardFormsSummaryInfo {
3
+ formId: string;
4
+ timeStart: Date;
5
+ timeEnd: Date;
6
+ completedForms: number;
7
+ records: DashBoardFormsQuestionSummary[];
8
+ }
9
+ export declare class DashBoardFormsQuestionSummary {
10
+ questionId: string;
11
+ question: string;
12
+ type: FormItemType;
13
+ count: number;
14
+ responses: DashBoardFormsResponseSummary[];
15
+ }
16
+ export declare class DashBoardFormsResponseSummary {
17
+ count: number;
18
+ responseTitle: string;
19
+ }
20
+ export declare class DashBoardFormsSubmittedFormsInfo {
21
+ formId: string;
22
+ timeStart: Date;
23
+ timeEnd: Date;
24
+ completedForms: number;
25
+ records: DashBoardFormsSubmittedFormRecord[];
26
+ }
27
+ export declare class DashBoardFormsSubmittedFormRecord {
28
+ id: string;
29
+ tags: FormTag[];
30
+ responses: DashBoardFormsSubmittedFormResponse[];
31
+ expireAt: Date;
32
+ createdAt: Date;
33
+ completedAt: Date;
34
+ }
35
+ export declare class DashBoardFormsSubmittedFormResponse {
36
+ questionId: string;
37
+ question: string;
38
+ type: FormItemType;
39
+ response: any;
40
+ }
41
+ export declare class FormTag {
42
+ name: string;
43
+ value: string;
44
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormTag = exports.DashBoardFormsSubmittedFormResponse = exports.DashBoardFormsSubmittedFormRecord = exports.DashBoardFormsSubmittedFormsInfo = exports.DashBoardFormsResponseSummary = exports.DashBoardFormsQuestionSummary = exports.DashBoardFormsSummaryInfo = void 0;
4
+ class DashBoardFormsSummaryInfo {
5
+ }
6
+ exports.DashBoardFormsSummaryInfo = DashBoardFormsSummaryInfo;
7
+ class DashBoardFormsQuestionSummary {
8
+ }
9
+ exports.DashBoardFormsQuestionSummary = DashBoardFormsQuestionSummary;
10
+ class DashBoardFormsResponseSummary {
11
+ }
12
+ exports.DashBoardFormsResponseSummary = DashBoardFormsResponseSummary;
13
+ class DashBoardFormsSubmittedFormsInfo {
14
+ }
15
+ exports.DashBoardFormsSubmittedFormsInfo = DashBoardFormsSubmittedFormsInfo;
16
+ class DashBoardFormsSubmittedFormRecord {
17
+ }
18
+ exports.DashBoardFormsSubmittedFormRecord = DashBoardFormsSubmittedFormRecord;
19
+ class DashBoardFormsSubmittedFormResponse {
20
+ }
21
+ exports.DashBoardFormsSubmittedFormResponse = DashBoardFormsSubmittedFormResponse;
22
+ class FormTag {
23
+ }
24
+ exports.FormTag = FormTag;
@@ -0,0 +1,18 @@
1
+ export interface InboxCounters {
2
+ spaceId: string;
3
+ userId: string;
4
+ pending: number;
5
+ following: number;
6
+ slaWarning: number;
7
+ slaBreached: number;
8
+ teamSlaBreached: number;
9
+ finalized: number;
10
+ spam: number;
11
+ tags: TagCount[];
12
+ updatedAt: Date;
13
+ }
14
+ export interface TagCount {
15
+ tagId: string;
16
+ name: string;
17
+ count: number;
18
+ }
@@ -11,7 +11,7 @@ export declare const INBOX_PROCESSOR_RECEIPTS_COLLECTION = "inbox_processor_rece
11
11
  * InboxAudienceResolver receives as input.
12
12
  */
13
13
  export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
14
- readonly name: "uq_subscription_user_conversation";
14
+ readonly name: 'uq_subscription_user_conversation';
15
15
  readonly key: {
16
16
  readonly spaceId: 1;
17
17
  readonly userId: 1;
@@ -19,7 +19,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
19
19
  };
20
20
  readonly unique: true;
21
21
  }, {
22
- readonly name: "ix_subscription_conversation_followers";
22
+ readonly name: 'ix_subscription_conversation_followers';
23
23
  readonly key: {
24
24
  readonly spaceId: 1;
25
25
  readonly conversationId: 1;
@@ -35,7 +35,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
35
35
  * must not combine multiple array paths.
36
36
  */
37
37
  export declare const USER_INBOX_ITEM_INDEXES: readonly [{
38
- readonly name: "uq_inbox_item_user_conversation";
38
+ readonly name: 'uq_inbox_item_user_conversation';
39
39
  readonly key: {
40
40
  readonly spaceId: 1;
41
41
  readonly userId: 1;
@@ -43,7 +43,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
43
43
  };
44
44
  readonly unique: true;
45
45
  }, {
46
- readonly name: "ix_inbox_view_activity";
46
+ readonly name: 'ix_inbox_view_activity';
47
47
  readonly key: {
48
48
  readonly spaceId: 1;
49
49
  readonly userId: 1;
@@ -53,7 +53,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
53
53
  readonly id: -1;
54
54
  };
55
55
  }, {
56
- readonly name: "ix_inbox_view_priority";
56
+ readonly name: 'ix_inbox_view_priority';
57
57
  readonly key: {
58
58
  readonly spaceId: 1;
59
59
  readonly userId: 1;
@@ -64,7 +64,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
64
64
  readonly id: -1;
65
65
  };
66
66
  }, {
67
- readonly name: "ix_inbox_view_status_activity";
67
+ readonly name: 'ix_inbox_view_status_activity';
68
68
  readonly key: {
69
69
  readonly spaceId: 1;
70
70
  readonly userId: 1;
@@ -74,7 +74,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
74
74
  readonly id: -1;
75
75
  };
76
76
  }, {
77
- readonly name: "ix_inbox_view_queue_activity";
77
+ readonly name: 'ix_inbox_view_queue_activity';
78
78
  readonly key: {
79
79
  readonly spaceId: 1;
80
80
  readonly userId: 1;
@@ -91,7 +91,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
91
91
  * spaceId + userId prefix.
92
92
  */
93
93
  export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
94
- readonly name: "uq_inbox_counter_user_view";
94
+ readonly name: 'uq_inbox_counter_user_view';
95
95
  readonly key: {
96
96
  readonly spaceId: 1;
97
97
  readonly userId: 1;
@@ -103,7 +103,7 @@ export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
103
103
  * MongoDB indexes for durable processor idempotency receipts.
104
104
  */
105
105
  export declare const INBOX_PROCESSOR_RECEIPT_INDEXES: readonly [{
106
- readonly name: "uq_inbox_processor_source_scope";
106
+ readonly name: 'uq_inbox_processor_source_scope';
107
107
  readonly key: {
108
108
  readonly processor: 1;
109
109
  readonly sourceEventId: 1;
@@ -144,11 +144,11 @@ interface InboxPageQueryBase {
144
144
  viewId: InboxViewId;
145
145
  limit: number;
146
146
  }
147
- export type InboxPageQuery = InboxPageQueryBase & {
147
+ export type InboxPageQuery = (InboxPageQueryBase & {
148
148
  sort: 'activity';
149
149
  cursor?: InboxActivityCursor;
150
- } | InboxPageQueryBase & {
150
+ }) | (InboxPageQueryBase & {
151
151
  sort: 'priority';
152
152
  cursor?: InboxPriorityCursor;
153
- };
153
+ });
154
154
  export {};
@@ -26,27 +26,27 @@ export interface PartyOwnerAssigneeResolver {
26
26
  mode: 'prefer' | 'required';
27
27
  }
28
28
  export type QueueOwnerAssigneeResolver = PartyOwnerAssigneeResolver;
29
- export type QueueRoutingPolicy = QueueRoutingPolicyBase & {
29
+ export type QueueRoutingPolicy = (QueueRoutingPolicyBase & {
30
30
  distributionMode: 'shared';
31
31
  strategy?: never;
32
32
  ownerResolver?: never;
33
- } | QueueRoutingPolicyBase & {
33
+ }) | (QueueRoutingPolicyBase & {
34
34
  distributionMode: 'manual_pull';
35
35
  strategy?: never;
36
36
  ownerResolver?: never;
37
- } | QueueRoutingPolicyBase & {
37
+ }) | (QueueRoutingPolicyBase & {
38
38
  distributionMode: 'exclusive';
39
39
  strategy: QueueRoutingStrategy;
40
- ownerResolver?: undefined | PartyOwnerAssigneeResolver & {
40
+ ownerResolver?: undefined | (PartyOwnerAssigneeResolver & {
41
41
  mode: 'prefer';
42
- };
43
- } | QueueRoutingPolicyBase & {
42
+ });
43
+ }) | (QueueRoutingPolicyBase & {
44
44
  distributionMode: 'exclusive';
45
45
  strategy?: never;
46
46
  ownerResolver: PartyOwnerAssigneeResolver & {
47
47
  mode: 'required';
48
48
  };
49
- };
49
+ });
50
50
  export type QueueRoutingConfig = QueueRoutingPolicy & {
51
51
  queueId: string;
52
52
  spaceId: string;
@@ -133,15 +133,15 @@ export type PartyOwnerAssigneeEvaluation = {
133
133
  }>;
134
134
  outcome: 'selected';
135
135
  nextStep?: never;
136
- } | FailedPartyOwnerEvaluation & {
136
+ } | (FailedPartyOwnerEvaluation & {
137
137
  type: 'party_owner';
138
138
  mode: 'prefer';
139
139
  nextStep: 'strategy';
140
- } | FailedPartyOwnerEvaluation & {
140
+ }) | (FailedPartyOwnerEvaluation & {
141
141
  type: 'party_owner';
142
142
  mode: 'required';
143
143
  nextStep: 'fallback';
144
- };
144
+ });
145
145
  export interface RoutingDecision {
146
146
  decisionId: string;
147
147
  spaceId: string;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
37
  };
@@ -9,39 +9,39 @@
9
9
  */
10
10
  export declare const DOMAIN_EVENT_TYPES: {
11
11
  readonly AUTOMATIONS: {
12
- readonly MANUAL: "automations.manual";
13
- readonly SCHEDULE_TICK: "automations.schedule.tick";
12
+ readonly MANUAL: 'automations.manual';
13
+ readonly SCHEDULE_TICK: 'automations.schedule.tick';
14
14
  };
15
15
  readonly CONTACTS: {
16
- readonly CONTACT_CREATED: "contacts.contact.created";
17
- readonly BUSINESS_CREATED: "contacts.business.created";
18
- readonly PROPERTY_CHANGED: "contacts.property.changed";
19
- readonly TAG_ADDED: "contacts.tag.added";
20
- readonly TAG_REMOVED: "contacts.tag.removed";
21
- readonly PROPERTY_DATE_REACHED: "contacts.property.date_reached";
16
+ readonly CONTACT_CREATED: 'contacts.contact.created';
17
+ readonly BUSINESS_CREATED: 'contacts.business.created';
18
+ readonly PROPERTY_CHANGED: 'contacts.property.changed';
19
+ readonly TAG_ADDED: 'contacts.tag.added';
20
+ readonly TAG_REMOVED: 'contacts.tag.removed';
21
+ readonly PROPERTY_DATE_REACHED: 'contacts.property.date_reached';
22
22
  };
23
23
  readonly CONVERSATIONS: {
24
- readonly CONVERSATION_CREATED: "conversations.conversation.created";
25
- readonly CONVERSATION_CLOSED: "conversations.conversation.closed";
26
- readonly MESSAGE_RECEIVED: "conversations.message.received";
27
- readonly AGENT_INTERVENED: "conversations.agent.intervened";
24
+ readonly CONVERSATION_CREATED: 'conversations.conversation.created';
25
+ readonly CONVERSATION_CLOSED: 'conversations.conversation.closed';
26
+ readonly MESSAGE_RECEIVED: 'conversations.message.received';
27
+ readonly AGENT_INTERVENED: 'conversations.agent.intervened';
28
28
  };
29
29
  readonly TICKETS: {
30
- readonly CREATED: "tickets.created";
31
- readonly STATUS_CHANGED: "tickets.status_changed";
32
- readonly PRIORITY_CHANGED: "tickets.priority_changed";
33
- readonly ASSIGNED: "tickets.assigned";
34
- readonly CUSTOMER_REPLIED: "tickets.customer_replied";
35
- readonly SLA_WARNING: "tickets.sla_warning";
36
- readonly SLA_BREACHED: "tickets.sla_breached";
37
- readonly CLOSED: "tickets.closed";
38
- readonly REOPENED: "tickets.reopened";
30
+ readonly CREATED: 'tickets.created';
31
+ readonly STATUS_CHANGED: 'tickets.status_changed';
32
+ readonly PRIORITY_CHANGED: 'tickets.priority_changed';
33
+ readonly ASSIGNED: 'tickets.assigned';
34
+ readonly CUSTOMER_REPLIED: 'tickets.customer_replied';
35
+ readonly SLA_WARNING: 'tickets.sla_warning';
36
+ readonly SLA_BREACHED: 'tickets.sla_breached';
37
+ readonly CLOSED: 'tickets.closed';
38
+ readonly REOPENED: 'tickets.reopened';
39
39
  };
40
40
  readonly FORMS: {
41
- readonly SUBMITTED: "forms.submitted";
41
+ readonly SUBMITTED: 'forms.submitted';
42
42
  };
43
43
  readonly INTEGRATIONS: {
44
- readonly WEBHOOK_RECEIVED: "integrations.webhook.received";
44
+ readonly WEBHOOK_RECEIVED: 'integrations.webhook.received';
45
45
  };
46
46
  };
47
47
  type Values<T> = T extends unknown ? T[keyof T] : never;
@@ -1,7 +1,9 @@
1
1
  import { ChannelType } from "../Common/Channels/ChannelType";
2
- import { ITicketAuditedEntity, ITicketProperty, TicketPriority } from "./Common";
2
+ import { ITicketAuditedEntity, ITicketProperty, TicketPriority, TicketPropertyValue } from "./Common";
3
3
  import { ITicketMessageReference } from "./Conversation";
4
4
  import type { ITicketCursorResponse } from "./Api";
5
+ import type { ITicketAttachmentUploadSession } from "./AdvancedApi";
6
+ import type { ITicketFieldOption, ITicketFieldValidation, ITicketObjectField, TicketFieldType } from "./Fields";
5
7
  export declare enum TicketPortalAuthenticationMode {
6
8
  PUBLIC = "PUBLIC",
7
9
  OPTIONAL = "OPTIONAL",
@@ -508,6 +510,133 @@ export interface ISubmitTicketRequestDto {
508
510
  formSubmissionId: string;
509
511
  idempotencyKey: string;
510
512
  }
513
+ /** Just enough of the category to render a grouped catalog: a heading, its order,
514
+ * and the id the portal has to send back in ICreateCustomerTicketDto. */
515
+ export interface ICustomerRequestTypeCategoryView {
516
+ id: string;
517
+ name: string;
518
+ description?: string;
519
+ order: number;
520
+ }
521
+ /**
522
+ * One entry of the portal's catalog.
523
+ *
524
+ * A customer-safe projection of ITicketRequestType, built as an allowlist rather
525
+ * than by removing keys: the agent shape carries defaultAssignedGroupId (which
526
+ * internal group handles what), workflowId, slaPolicyId, audiencePolicyId,
527
+ * fieldDefinitionIds, layoutIds and the createdBy/updatedBy uuids of agents,
528
+ * none of which belong on a public surface.
529
+ *
530
+ * `formId` / `formVersion` travel because the portal renders the form.
531
+ * `defaultPriority` is a hint for preselection; the create endpoint applies its
532
+ * own default regardless.
533
+ */
534
+ export interface ICustomerRequestTypeView {
535
+ id: string;
536
+ name: string;
537
+ description?: string;
538
+ icon?: string;
539
+ formId: string;
540
+ formVersion?: number;
541
+ defaultPriority?: TicketPriority;
542
+ category: ICustomerRequestTypeCategoryView;
543
+ }
544
+ /**
545
+ * One field of the portal's create form.
546
+ *
547
+ * Allowlist over ITicketFieldDefinition: classification, maskingStrategy,
548
+ * containsPii, readRoleIds, writeRoleIds, retentionPolicyId, conditions and the
549
+ * scope arrays stay server-side. `validation`, `options` and `objectFields` do
550
+ * travel — without them the portal cannot render a select or give the customer
551
+ * feedback before a round trip that ends in a 422.
552
+ *
553
+ * `required` is the EFFECTIVE value for the creation context, not the field's
554
+ * own flag: it already folds in requiredForStatusIds for the initial status and
555
+ * any condition that makes the field mandatory.
556
+ */
557
+ export interface ICustomerFormFieldView {
558
+ nameKey: string;
559
+ label: string;
560
+ description?: string;
561
+ placeholder?: string;
562
+ type: TicketFieldType;
563
+ required: boolean;
564
+ defaultValue?: TicketPropertyValue;
565
+ options?: ITicketFieldOption[];
566
+ objectFields?: ITicketObjectField[];
567
+ validation?: ITicketFieldValidation;
568
+ }
569
+ /**
570
+ * What the portal renders so a customer can fill in `properties` on
571
+ * ICreateCustomerTicketDto.
572
+ *
573
+ * NO LAYOUT, unlike the agent form schema: layouts are selected by roleIds and a
574
+ * contact has no role, so "the effective layout for a customer" is not a
575
+ * question the layout model can answer. Presentation belongs to the portal; this
576
+ * answers membership, obligation and shape.
577
+ */
578
+ export interface ICustomerFormSchemaView {
579
+ requestTypeId: string;
580
+ categoryId: string;
581
+ fields: ICustomerFormFieldView[];
582
+ }
583
+ /**
584
+ * One file the portal declares BEFORE any byte exists in storage.
585
+ *
586
+ * `sizeBytes` and `mimeType` are the client's DECLARATION and stay that way for
587
+ * the life of the attachment: tickets-api never sees the bytes (media-api owns
588
+ * storage), so there is nothing to compare them against.
589
+ */
590
+ export interface ICreateCustomerTicketAttachmentDto {
591
+ fileName: string;
592
+ mimeType: string;
593
+ sizeBytes: number;
594
+ checksum?: string;
595
+ }
596
+ /**
597
+ * Direct ticket creation from a portal, without going through a request draft.
598
+ *
599
+ * What is ABSENT is the contract, not an oversight: there is no channelType,
600
+ * channelId, primaryConversationId, assigneeId, assigneeName, assignedGroupId,
601
+ * statusId, origin, tagIds or externalReferences. Routing, channel provenance
602
+ * and the internal taxonomy are decisions of the agent side; the server fills
603
+ * them in (origin WEB_FORM, the space's initial status, the routing defaults of
604
+ * the category and the request type).
605
+ */
606
+ export interface ICreateCustomerTicketDto {
607
+ /** Mongo ObjectId of the contact opening the ticket. Row-level authorisation
608
+ * of the whole customer surface: required, never defaulted. */
609
+ contactId: string;
610
+ title: string;
611
+ description?: string;
612
+ categoryId: string;
613
+ requestTypeId?: string;
614
+ /** Optional: a portal may or may not let the customer choose. Absent means the
615
+ * server default (MEDIUM). */
616
+ priority?: TicketPriority;
617
+ properties?: ITicketProperty[];
618
+ /** Files the customer is about to upload. Declaring them here is what puts the
619
+ * upload destinations inside the create transaction. */
620
+ attachments?: ICreateCustomerTicketAttachmentDto[];
621
+ /** REQUIRED, unlike ICreateTicketDto where it is optional: a portal submit is
622
+ * the canonical double-click. `source` is NOT part of the contract - the
623
+ * server derives it from the portal slug, so one portal's keys cannot collide
624
+ * with another's. */
625
+ idempotencyKey: string;
626
+ }
627
+ /**
628
+ * The answer to a create, and the reason the flow is ordered ticket-first.
629
+ *
630
+ * `attachmentUploads` carries one session per declared attachment, in the order
631
+ * they were declared, each already bound to the new ticket. The portal uploads
632
+ * the bytes to `uploadUrl` and then completes each session. Until it does, the
633
+ * ticket has no attachments - the deliberate trade: no byte is ever uploaded for
634
+ * a ticket that failed to be created.
635
+ */
636
+ export interface ICustomerTicketCreatedView {
637
+ ticket: ICustomerTicketView;
638
+ attachmentUploads: ITicketAttachmentUploadSession[];
639
+ }
511
640
  export interface ICustomerTicketActionDto {
512
641
  expectedVersion: number;
513
642
  action: TicketCustomerAction;
package/dist/index.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.Automations = exports.Forms = exports.APIResponses = exports.Shop = exports.AI = exports.APIKeys = exports.Events = exports.EventsQueue = exports.ApiResponses = exports.Presence = exports.Users = exports.Collections = exports.Sales = exports.Tickets = exports.Spaces = exports.Reports = exports.Security = exports.Calls = exports.Conversations = exports.Calendar = exports.Contacts = exports.Common = exports.AuditLogs = exports.Accounts = void 0;
27
37
  exports.Accounts = __importStar(require("./Accounts/index"));