@ikatec/digisac-api-sdk 4.5.0 → 4.6.0

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 (123) hide show
  1. package/README.md +5 -3
  2. package/dist/apis/answers/AnswersApi.cjs +38 -0
  3. package/dist/apis/answers/AnswersApi.cjs.map +1 -1
  4. package/dist/apis/answers/AnswersApi.d.ts +33 -2
  5. package/dist/apis/answers/AnswersApi.d.ts.map +1 -1
  6. package/dist/apis/answers/AnswersApi.mjs +38 -0
  7. package/dist/apis/answers/AnswersApi.mjs.map +1 -1
  8. package/dist/apis/answers/types.d.ts +64 -1
  9. package/dist/apis/answers/types.d.ts.map +1 -1
  10. package/dist/apis/botSimulators/BotSimulatorsApi.cjs +42 -0
  11. package/dist/apis/botSimulators/BotSimulatorsApi.cjs.map +1 -0
  12. package/dist/apis/botSimulators/BotSimulatorsApi.d.ts +31 -0
  13. package/dist/apis/botSimulators/BotSimulatorsApi.d.ts.map +1 -0
  14. package/dist/apis/botSimulators/BotSimulatorsApi.mjs +41 -0
  15. package/dist/apis/botSimulators/BotSimulatorsApi.mjs.map +1 -0
  16. package/dist/apis/botSimulators/index.cjs +4 -0
  17. package/dist/apis/botSimulators/index.d.ts +3 -0
  18. package/dist/apis/botSimulators/index.d.ts.map +1 -0
  19. package/dist/apis/botSimulators/index.mjs +3 -0
  20. package/dist/apis/botSimulators/types.cjs +0 -0
  21. package/dist/apis/botSimulators/types.d.ts +73 -0
  22. package/dist/apis/botSimulators/types.d.ts.map +1 -0
  23. package/dist/apis/botSimulators/types.mjs +0 -0
  24. package/dist/apis/botVersions/BotVersionsApi.cjs +25 -0
  25. package/dist/apis/botVersions/BotVersionsApi.cjs.map +1 -1
  26. package/dist/apis/botVersions/BotVersionsApi.d.ts +18 -0
  27. package/dist/apis/botVersions/BotVersionsApi.d.ts.map +1 -1
  28. package/dist/apis/botVersions/BotVersionsApi.mjs +25 -0
  29. package/dist/apis/botVersions/BotVersionsApi.mjs.map +1 -1
  30. package/dist/apis/botVersions/types.d.ts +4 -0
  31. package/dist/apis/botVersions/types.d.ts.map +1 -1
  32. package/dist/apis/bots/BotsApi.cjs +99 -4
  33. package/dist/apis/bots/BotsApi.cjs.map +1 -1
  34. package/dist/apis/bots/BotsApi.d.ts +78 -5
  35. package/dist/apis/bots/BotsApi.d.ts.map +1 -1
  36. package/dist/apis/bots/BotsApi.mjs +99 -4
  37. package/dist/apis/bots/BotsApi.mjs.map +1 -1
  38. package/dist/apis/bots/types.d.ts +266 -16
  39. package/dist/apis/bots/types.d.ts.map +1 -1
  40. package/dist/apis/index.cjs +3 -0
  41. package/dist/apis/index.d.ts +1 -0
  42. package/dist/apis/index.d.ts.map +1 -1
  43. package/dist/apis/index.mjs +3 -1
  44. package/dist/apis/permissions/types.d.ts +1 -1
  45. package/dist/apis/permissions/types.d.ts.map +1 -1
  46. package/dist/apis/questions/QuestionsApi.cjs +15 -0
  47. package/dist/apis/questions/QuestionsApi.cjs.map +1 -1
  48. package/dist/apis/questions/QuestionsApi.d.ts +15 -1
  49. package/dist/apis/questions/QuestionsApi.d.ts.map +1 -1
  50. package/dist/apis/questions/QuestionsApi.mjs +15 -0
  51. package/dist/apis/questions/QuestionsApi.mjs.map +1 -1
  52. package/dist/apis/questions/types.d.ts +25 -5
  53. package/dist/apis/questions/types.d.ts.map +1 -1
  54. package/dist/apis/quickReplies/QuickRepliesApi.cjs +16 -0
  55. package/dist/apis/quickReplies/QuickRepliesApi.cjs.map +1 -1
  56. package/dist/apis/quickReplies/QuickRepliesApi.d.ts +15 -2
  57. package/dist/apis/quickReplies/QuickRepliesApi.d.ts.map +1 -1
  58. package/dist/apis/quickReplies/QuickRepliesApi.mjs +16 -0
  59. package/dist/apis/quickReplies/QuickRepliesApi.mjs.map +1 -1
  60. package/dist/apis/quickReplies/types.d.ts +30 -2
  61. package/dist/apis/quickReplies/types.d.ts.map +1 -1
  62. package/dist/apis/schedule/ScheduleApi.cjs +37 -2
  63. package/dist/apis/schedule/ScheduleApi.cjs.map +1 -1
  64. package/dist/apis/schedule/ScheduleApi.d.ts +30 -3
  65. package/dist/apis/schedule/ScheduleApi.d.ts.map +1 -1
  66. package/dist/apis/schedule/ScheduleApi.mjs +37 -2
  67. package/dist/apis/schedule/ScheduleApi.mjs.map +1 -1
  68. package/dist/apis/schedule/types.d.ts +58 -11
  69. package/dist/apis/schedule/types.d.ts.map +1 -1
  70. package/dist/apis/ticketTopics/TicketTopicsApi.cjs +25 -2
  71. package/dist/apis/ticketTopics/TicketTopicsApi.cjs.map +1 -1
  72. package/dist/apis/ticketTopics/TicketTopicsApi.d.ts +18 -4
  73. package/dist/apis/ticketTopics/TicketTopicsApi.d.ts.map +1 -1
  74. package/dist/apis/ticketTopics/TicketTopicsApi.mjs +25 -2
  75. package/dist/apis/ticketTopics/TicketTopicsApi.mjs.map +1 -1
  76. package/dist/apis/ticketTopics/types.d.ts +22 -1
  77. package/dist/apis/ticketTopics/types.d.ts.map +1 -1
  78. package/dist/apis/tickets/types.d.ts +37 -1
  79. package/dist/apis/tickets/types.d.ts.map +1 -1
  80. package/dist/core/BaseCrudApi.cjs +5 -2
  81. package/dist/core/BaseCrudApi.cjs.map +1 -1
  82. package/dist/core/BaseCrudApi.d.ts +7 -4
  83. package/dist/core/BaseCrudApi.d.ts.map +1 -1
  84. package/dist/core/BaseCrudApi.mjs +5 -2
  85. package/dist/core/BaseCrudApi.mjs.map +1 -1
  86. package/dist/core/types.d.ts +1 -1
  87. package/dist/core/types.d.ts.map +1 -1
  88. package/dist/incommingWebhooks/index.d.ts +7 -7
  89. package/dist/incommingWebhooks/index.d.ts.map +1 -1
  90. package/package.json +1 -1
  91. package/src/apis/answers/AnswersApi.test.ts +67 -0
  92. package/src/apis/answers/AnswersApi.ts +66 -2
  93. package/src/apis/answers/types.ts +64 -2
  94. package/src/apis/botSimulators/BotSimulatorsApi.test.ts +58 -0
  95. package/src/apis/botSimulators/BotSimulatorsApi.ts +57 -0
  96. package/src/apis/botSimulators/index.ts +2 -0
  97. package/src/apis/botSimulators/types.ts +72 -0
  98. package/src/apis/botVersions/BotVersionsApi.test.ts +51 -0
  99. package/src/apis/botVersions/BotVersionsApi.ts +41 -0
  100. package/src/apis/botVersions/types.ts +4 -0
  101. package/src/apis/bots/BotsApi.test.ts +177 -0
  102. package/src/apis/bots/BotsApi.ts +162 -6
  103. package/src/apis/bots/types.ts +267 -15
  104. package/src/apis/index.ts +1 -0
  105. package/src/apis/payloads.test-d.ts +171 -1
  106. package/src/apis/permissions/types.ts +10 -4
  107. package/src/apis/questions/QuestionsApi.test.ts +49 -0
  108. package/src/apis/questions/QuestionsApi.ts +20 -1
  109. package/src/apis/questions/types.ts +25 -6
  110. package/src/apis/quickReplies/QuickRepliesApi.test.ts +69 -0
  111. package/src/apis/quickReplies/QuickRepliesApi.ts +35 -2
  112. package/src/apis/quickReplies/types.ts +34 -2
  113. package/src/apis/schedule/ScheduleApi.test.ts +80 -0
  114. package/src/apis/schedule/ScheduleApi.ts +59 -6
  115. package/src/apis/schedule/types.ts +66 -11
  116. package/src/apis/ticketTopics/TicketTopicsApi.test.ts +40 -0
  117. package/src/apis/ticketTopics/TicketTopicsApi.ts +35 -4
  118. package/src/apis/ticketTopics/types.ts +26 -1
  119. package/src/apis/tickets/types.ts +40 -1
  120. package/src/core/BaseCrudApi.ts +9 -5
  121. package/src/core/types.ts +2 -1
  122. package/src/incommingWebhooks/index.test-d.ts +9 -0
  123. package/src/incommingWebhooks/index.ts +7 -7
@@ -1,5 +1,6 @@
1
1
  import type { Contact } from '../contacts/types'
2
2
  import type { Department } from '../departments/types'
3
+ import type { Message } from '../messages/types'
3
4
  import type { Service } from '../services/types'
4
5
  import type { User } from '../users/types'
5
6
 
@@ -23,6 +24,43 @@ export type TicketMetrics = {
23
24
  isActiveTicket?: boolean
24
25
  }
25
26
 
27
+ export type TicketTransferAction = 'opened' | 'transferred' | 'closed'
28
+
29
+ /**
30
+ * A step of the history of a ticket (opening, transfer, closing), as the `ticketTransfers` include of
31
+ * `GET /tickets/{id}` answers it. `byUserId` is who performed the step (null when there is no user, e.g. a bot).
32
+ *
33
+ * Inside `ticketTransfers`, the route whitelist only accepts `byUser`, `fromUser`, `toUser`, `fromDepartment` and
34
+ * `toDepartment`: `transferredMessage`, `firstMessage` and `lastMessage` are dropped in silence and come as `null`.
35
+ */
36
+ export type TicketTransfer = {
37
+ id: string
38
+ action: TicketTransferAction | null
39
+ comments: string | null
40
+ fromDistribution: boolean
41
+ accountId: string
42
+ ticketId: string
43
+ byUserId: string | null
44
+ fromUserId: string | null
45
+ toUserId: string | null
46
+ fromDepartmentId: string | null
47
+ toDepartmentId: string | null
48
+ transferredMessageId: string | null
49
+ firstMessageId: string | null
50
+ lastMessageId: string | null
51
+ createdAt: string
52
+ updatedAt: string
53
+ // relationships
54
+ byUser?: User | null
55
+ fromUser?: User | null
56
+ toUser?: User | null
57
+ fromDepartment?: Department | null
58
+ toDepartment?: Department | null
59
+ transferredMessage?: Message | null
60
+ firstMessage?: Message | null
61
+ lastMessage?: Message | null
62
+ }
63
+
26
64
  export type Ticket = {
27
65
  id: string
28
66
  isOpen: boolean
@@ -49,9 +87,10 @@ export type Ticket = {
49
87
  department?: Department
50
88
  user?: User | null
51
89
  service?: Service | null
90
+ ticketTransfers?: TicketTransfer[]
52
91
  }
53
92
 
54
- export type TicketRelationships = 'contact' | 'department' | 'user' | 'service'
93
+ export type TicketRelationships = 'contact' | 'department' | 'user' | 'service' | 'ticketTransfers'
55
94
 
56
95
  export type CreateTicketPayload = {
57
96
  contactId: string
@@ -14,15 +14,19 @@ export type {
14
14
  CrudApi,
15
15
  } from './types'
16
16
 
17
- /** Generic CRUD resource: the reads of `BaseReadApi` plus `create`, `updateById` and `deleteById`. */
17
+ /**
18
+ * Generic CRUD resource: the reads of `BaseReadApi` plus `create`, `updateById` and `deleteById`.
19
+ * `TDeleteResponse` is what `deleteById` resolves to (most routes answer the text `'OK'`).
20
+ */
18
21
  export class BaseCrudApi<
19
22
  TResponse,
20
23
  TCreate,
21
24
  TUpdate = TCreate,
22
25
  TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,
26
+ TDeleteResponse = TResponse,
23
27
  >
24
28
  extends BaseReadApi<TResponse, TQuery>
25
- implements CrudApi<TResponse, TCreate, TUpdate, TQuery>
29
+ implements CrudApi<TResponse, TCreate, TUpdate, TQuery, TDeleteResponse>
26
30
  {
27
31
  /**
28
32
  * Creates a new resource.
@@ -42,9 +46,9 @@ export class BaseCrudApi<
42
46
 
43
47
  /**
44
48
  * Deletes a resource by ID.
45
- * @permissions $resourceName.delete
49
+ * @permissions $resourceName.destroy
46
50
  */
47
- deleteById(id: string, headers?: Record<string, string>): Promise<TResponse> {
48
- return this.client.delete<TResponse>(`${this.basePath}/${id}`, headers)
51
+ deleteById(id: string, headers?: Record<string, string>): Promise<TDeleteResponse> {
52
+ return this.client.delete<TDeleteResponse>(`${this.basePath}/${id}`, headers)
49
53
  }
50
54
  }
package/src/core/types.ts CHANGED
@@ -159,8 +159,9 @@ export type CrudApi<
159
159
  TCreate,
160
160
  TUpdate = TCreate,
161
161
  TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,
162
+ TDeleteResponse = TResponse,
162
163
  > = HasGetMany<TResponse, TQuery> &
163
164
  HasGetById<TResponse> &
164
165
  HasCreate<TResponse, TCreate> &
165
166
  HasUpdateById<TResponse, TUpdate> &
166
- HasDeleteById<TResponse>
167
+ HasDeleteById<TDeleteResponse>
@@ -2,6 +2,7 @@ import { expectAssignable, expectNotAssignable, expectType } from 'tsd'
2
2
  import type { WebhookPayload, WebhookEvent, WebhookEventPayloadMap, BotCommandData } from './index'
3
3
  import type { Message, MessageRelationships } from '../apis/messages'
4
4
  import type { Ticket, TicketRelationships } from '../apis/tickets'
5
+ import type { BotApiSignalData, BotContexts } from '../apis/bots'
5
6
 
6
7
  // ── WebhookPayload (generic) ─────────────────────────────────────────────────
7
8
 
@@ -37,6 +38,14 @@ declare const botPayload: WebhookPayload<'bot.command'>
37
38
  expectType<BotCommandData>(botPayload.data)
38
39
  expectAssignable<{ id: string; command: string }>(botPayload.data)
39
40
 
41
+ // ── bot.* deliver the stored bot, with the contexts in the map form ──────────
42
+
43
+ declare const botCreated: WebhookPayload<'bot.created'>
44
+ expectType<BotContexts>(botCreated.data.contexts)
45
+
46
+ declare const apiSignal: WebhookPayload<'bot.api-signal'>
47
+ expectType<BotApiSignalData>(apiSignal.data)
48
+
40
49
  // ── invalid events are rejected ──────────────────────────────────────────────
41
50
 
42
51
  expectNotAssignable<WebhookEvent>('message.deleted')
@@ -1,4 +1,4 @@
1
- import type { Bot, BotRelationships } from '../apis/bots'
1
+ import type { BotApiSignalData, BotRecord } from '../apis/bots'
2
2
  import type { Campaign, CampaignRelationships } from '../apis/campaigns'
3
3
  import type { Contact, ContactRelationships } from '../apis/contacts'
4
4
  import type { Department, DepartmentRelationships } from '../apis/departments'
@@ -103,13 +103,13 @@ export interface WebhookEventPayloadMap {
103
103
  'role.created': Omit<Role, RoleRelationships>
104
104
  'role.updated': Omit<Role, RoleRelationships>
105
105
  'role.destroyed': Omit<Role, RoleRelationships>
106
- 'bot.created': Omit<Bot, BotRelationships>
107
- 'bot.updated': Omit<Bot, BotRelationships>
108
- 'bot.destroyed': Omit<Bot, BotRelationships>
106
+ 'bot.created': BotRecord
107
+ 'bot.updated': BotRecord
108
+ 'bot.destroyed': BotRecord
109
109
  'bot.command': BotCommandData
110
- 'bot.enter-context': Omit<Bot, BotRelationships>
111
- 'bot.leave-context': Omit<Bot, BotRelationships>
112
- 'bot.api-signal': Omit<Bot, BotRelationships>
110
+ 'bot.enter-context': BotRecord
111
+ 'bot.leave-context': BotRecord
112
+ 'bot.api-signal': BotApiSignalData
113
113
  'quickReplies.created': Omit<QuickReply, QuickReplyRelationships>
114
114
  'quickReplies.updated': Omit<QuickReply, QuickReplyRelationships>
115
115
  'quickReplies.destroyed': Omit<QuickReply, QuickReplyRelationships>