connectwise-rest 0.25.1 → 1.0.2

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 (282) hide show
  1. package/.eslintrc +17 -52
  2. package/.gitattributes +1 -0
  3. package/.mocharc.json +5 -0
  4. package/.prettierrc +7 -0
  5. package/README.md +293 -230
  6. package/api-extractor.json +364 -0
  7. package/dist/Automate/AVTemplatePoliciesAPI.d.ts +36 -0
  8. package/dist/Automate/AVTemplatePoliciesAPI.d.ts.map +1 -0
  9. package/dist/Automate/AVTemplatePoliciesAPI.js +92 -0
  10. package/dist/Automate/AVTemplatePoliciesAPI.js.map +1 -0
  11. package/dist/Automate/ClientsAPI.d.ts +44 -0
  12. package/dist/Automate/ClientsAPI.d.ts.map +1 -0
  13. package/dist/Automate/ClientsAPI.js +119 -0
  14. package/dist/Automate/ClientsAPI.js.map +1 -0
  15. package/dist/Automate/CommandsAPI.d.ts +20 -0
  16. package/dist/Automate/CommandsAPI.d.ts.map +1 -0
  17. package/dist/Automate/CommandsAPI.js +36 -0
  18. package/dist/Automate/CommandsAPI.js.map +1 -0
  19. package/dist/Automate/ComputersAPI.d.ts +131 -0
  20. package/dist/Automate/ComputersAPI.d.ts.map +1 -0
  21. package/dist/Automate/ComputersAPI.js +358 -0
  22. package/dist/Automate/ComputersAPI.js.map +1 -0
  23. package/dist/Automate/ContactsAPI.d.ts +24 -0
  24. package/dist/Automate/ContactsAPI.d.ts.map +1 -0
  25. package/dist/Automate/ContactsAPI.js +50 -0
  26. package/dist/Automate/ContactsAPI.js.map +1 -0
  27. package/dist/Automate/DataViewsAPI.d.ts +22 -0
  28. package/dist/Automate/DataViewsAPI.d.ts.map +1 -0
  29. package/dist/Automate/DataViewsAPI.js +36 -0
  30. package/dist/Automate/DataViewsAPI.js.map +1 -0
  31. package/dist/Automate/DrivesAPI.d.ts +25 -0
  32. package/dist/Automate/DrivesAPI.d.ts.map +1 -0
  33. package/dist/Automate/DrivesAPI.js +57 -0
  34. package/dist/Automate/DrivesAPI.js.map +1 -0
  35. package/dist/Automate/EventLogsAPI.d.ts +19 -0
  36. package/dist/Automate/EventLogsAPI.d.ts.map +1 -0
  37. package/dist/Automate/EventLogsAPI.js +29 -0
  38. package/dist/Automate/EventLogsAPI.js.map +1 -0
  39. package/dist/Automate/LocationsAPI.d.ts +57 -0
  40. package/dist/Automate/LocationsAPI.d.ts.map +1 -0
  41. package/dist/Automate/LocationsAPI.js +138 -0
  42. package/dist/Automate/LocationsAPI.js.map +1 -0
  43. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts +19 -0
  44. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts.map +1 -0
  45. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js +29 -0
  46. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js.map +1 -0
  47. package/dist/Automate/MonitorsAPI.d.ts +29 -0
  48. package/dist/Automate/MonitorsAPI.d.ts.map +1 -0
  49. package/dist/Automate/MonitorsAPI.js +85 -0
  50. package/dist/Automate/MonitorsAPI.js.map +1 -0
  51. package/dist/Automate/NetworkDevicesAPI.d.ts +23 -0
  52. package/dist/Automate/NetworkDevicesAPI.d.ts.map +1 -0
  53. package/dist/Automate/NetworkDevicesAPI.js +43 -0
  54. package/dist/Automate/NetworkDevicesAPI.js.map +1 -0
  55. package/dist/Automate/PatchingAPI.d.ts +33 -0
  56. package/dist/Automate/PatchingAPI.d.ts.map +1 -0
  57. package/dist/Automate/PatchingAPI.js +99 -0
  58. package/dist/Automate/PatchingAPI.js.map +1 -0
  59. package/dist/Automate/RemoteAgentAPI.d.ts +24 -0
  60. package/dist/Automate/RemoteAgentAPI.d.ts.map +1 -0
  61. package/dist/Automate/RemoteAgentAPI.js +50 -0
  62. package/dist/Automate/RemoteAgentAPI.js.map +1 -0
  63. package/dist/Automate/ScriptingAPI.d.ts +41 -0
  64. package/dist/Automate/ScriptingAPI.d.ts.map +1 -0
  65. package/dist/Automate/ScriptingAPI.js +109 -0
  66. package/dist/Automate/ScriptingAPI.js.map +1 -0
  67. package/dist/Automate/SearchesAPI.d.ts +23 -0
  68. package/dist/Automate/SearchesAPI.d.ts.map +1 -0
  69. package/dist/Automate/SearchesAPI.js +43 -0
  70. package/dist/Automate/SearchesAPI.js.map +1 -0
  71. package/dist/Automate/SystemAPI.d.ts +97 -0
  72. package/dist/Automate/SystemAPI.d.ts.map +1 -0
  73. package/dist/Automate/SystemAPI.js +273 -0
  74. package/dist/Automate/SystemAPI.js.map +1 -0
  75. package/dist/Automate/TicketsAPI.d.ts +14 -0
  76. package/dist/Automate/TicketsAPI.d.ts.map +1 -0
  77. package/dist/Automate/TicketsAPI.js +29 -0
  78. package/dist/Automate/TicketsAPI.js.map +1 -0
  79. package/dist/Automate/UserProfilesAPI.d.ts +19 -0
  80. package/dist/Automate/UserProfilesAPI.d.ts.map +1 -0
  81. package/dist/Automate/UserProfilesAPI.js +28 -0
  82. package/dist/Automate/UserProfilesAPI.js.map +1 -0
  83. package/dist/Automate.d.ts +43 -0
  84. package/dist/Automate.d.ts.map +1 -0
  85. package/dist/Automate.js +164 -0
  86. package/dist/Automate.js.map +1 -0
  87. package/dist/AutomateAPI.d.ts +129 -0
  88. package/dist/AutomateAPI.d.ts.map +1 -0
  89. package/dist/AutomateAPI.js +175 -0
  90. package/dist/AutomateAPI.js.map +1 -0
  91. package/dist/AutomateTypes.d.ts +10437 -0
  92. package/dist/AutomateTypes.d.ts.map +1 -0
  93. package/dist/AutomateTypes.js +3 -0
  94. package/dist/AutomateTypes.js.map +1 -0
  95. package/dist/BaseAPI.d.ts +26 -0
  96. package/dist/BaseAPI.d.ts.map +1 -0
  97. package/dist/BaseAPI.js +116 -0
  98. package/dist/BaseAPI.js.map +1 -0
  99. package/dist/Manage/CompanyAPI.d.ts +662 -0
  100. package/dist/Manage/CompanyAPI.d.ts.map +1 -0
  101. package/dist/Manage/CompanyAPI.js +3299 -0
  102. package/dist/Manage/CompanyAPI.js.map +1 -0
  103. package/dist/Manage/ConfigurationsAPI.d.ts +32 -0
  104. package/dist/Manage/ConfigurationsAPI.d.ts.map +1 -0
  105. package/dist/Manage/ConfigurationsAPI.js +78 -0
  106. package/dist/Manage/ConfigurationsAPI.js.map +1 -0
  107. package/dist/Manage/ExpenseAPI.d.ts +85 -0
  108. package/dist/Manage/ExpenseAPI.d.ts.map +1 -0
  109. package/dist/Manage/ExpenseAPI.js +311 -0
  110. package/dist/Manage/ExpenseAPI.js.map +1 -0
  111. package/dist/Manage/FinanceAPI.d.ts +538 -0
  112. package/dist/Manage/FinanceAPI.d.ts.map +1 -0
  113. package/dist/Manage/FinanceAPI.js +2592 -0
  114. package/dist/Manage/FinanceAPI.js.map +1 -0
  115. package/dist/Manage/MarketingAPI.d.ts +142 -0
  116. package/dist/Manage/MarketingAPI.d.ts.map +1 -0
  117. package/dist/Manage/MarketingAPI.js +634 -0
  118. package/dist/Manage/MarketingAPI.js.map +1 -0
  119. package/dist/Manage/ProcurementAPI.d.ts +435 -0
  120. package/dist/Manage/ProcurementAPI.d.ts.map +1 -0
  121. package/dist/Manage/ProcurementAPI.js +2103 -0
  122. package/dist/Manage/ProcurementAPI.js.map +1 -0
  123. package/dist/Manage/ProjectAPI.d.ts +215 -0
  124. package/dist/Manage/ProjectAPI.d.ts.map +1 -0
  125. package/dist/Manage/ProjectAPI.js +945 -0
  126. package/dist/Manage/ProjectAPI.js.map +1 -0
  127. package/dist/Manage/SalesAPI.d.ts +299 -0
  128. package/dist/Manage/SalesAPI.d.ts.map +1 -0
  129. package/dist/Manage/SalesAPI.js +1397 -0
  130. package/dist/Manage/SalesAPI.js.map +1 -0
  131. package/dist/Manage/ScheduleAPI.d.ts +132 -0
  132. package/dist/Manage/ScheduleAPI.d.ts.map +1 -0
  133. package/dist/Manage/ScheduleAPI.js +580 -0
  134. package/dist/Manage/ScheduleAPI.js.map +1 -0
  135. package/dist/Manage/ServiceAPI.d.ts +493 -0
  136. package/dist/Manage/ServiceAPI.d.ts.map +1 -0
  137. package/dist/Manage/ServiceAPI.js +2339 -0
  138. package/dist/Manage/ServiceAPI.js.map +1 -0
  139. package/dist/Manage/SystemAPI.d.ts +954 -0
  140. package/dist/Manage/SystemAPI.d.ts.map +1 -0
  141. package/dist/Manage/SystemAPI.js +4536 -0
  142. package/dist/Manage/SystemAPI.js.map +1 -0
  143. package/dist/Manage/TimeAPI.d.ts +186 -0
  144. package/dist/Manage/TimeAPI.d.ts.map +1 -0
  145. package/dist/Manage/TimeAPI.js +840 -0
  146. package/dist/Manage/TimeAPI.js.map +1 -0
  147. package/dist/Manage.d.ts +39 -0
  148. package/dist/Manage.d.ts.map +1 -0
  149. package/dist/Manage.js +137 -0
  150. package/dist/Manage.js.map +1 -0
  151. package/dist/ManageAPI.d.ts +135 -0
  152. package/dist/ManageAPI.d.ts.map +1 -0
  153. package/dist/ManageAPI.js +115 -0
  154. package/dist/ManageAPI.js.map +1 -0
  155. package/dist/ManageTypes.d.ts +91320 -0
  156. package/dist/ManageTypes.d.ts.map +1 -0
  157. package/dist/ManageTypes.js +7 -0
  158. package/dist/ManageTypes.js.map +1 -0
  159. package/dist/connectwise-rest.d.ts +108638 -0
  160. package/dist/index.d.ts +12 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +36 -0
  163. package/dist/index.js.map +1 -0
  164. package/dist/tsdoc-metadata.json +11 -0
  165. package/dist/types.d.ts +48 -0
  166. package/dist/types.d.ts.map +1 -0
  167. package/dist/types.js +21 -0
  168. package/dist/types.js.map +1 -0
  169. package/dist/utils/Callback.d.ts +70 -0
  170. package/dist/utils/Callback.d.ts.map +1 -0
  171. package/dist/utils/Callback.js +109 -0
  172. package/dist/utils/Callback.js.map +1 -0
  173. package/dist/utils/Series.d.ts +42 -0
  174. package/dist/utils/Series.d.ts.map +1 -0
  175. package/dist/utils/Series.js +68 -0
  176. package/dist/utils/Series.js.map +1 -0
  177. package/dist/utils/index.d.ts +7 -0
  178. package/dist/utils/index.d.ts.map +1 -0
  179. package/dist/utils/index.js +11 -0
  180. package/dist/utils/index.js.map +1 -0
  181. package/package.json +50 -19
  182. package/src/Automate/AVTemplatePoliciesAPI.ts +124 -0
  183. package/src/Automate/ClientsAPI.ts +172 -0
  184. package/src/Automate/CommandsAPI.ts +39 -0
  185. package/src/Automate/ComputersAPI.ts +588 -0
  186. package/src/Automate/ContactsAPI.ts +63 -0
  187. package/src/Automate/DataViewsAPI.ts +43 -0
  188. package/src/Automate/DrivesAPI.ts +81 -0
  189. package/src/Automate/EventLogsAPI.ts +31 -0
  190. package/src/Automate/LocationsAPI.ts +222 -0
  191. package/src/Automate/MaintenanceWindowDefinitionsAPI.ts +34 -0
  192. package/src/Automate/MonitorsAPI.ts +101 -0
  193. package/src/Automate/NetworkDevicesAPI.ts +51 -0
  194. package/src/Automate/PatchingAPI.ts +116 -0
  195. package/src/Automate/RemoteAgentAPI.ts +65 -0
  196. package/src/Automate/ScriptingAPI.ts +147 -0
  197. package/src/Automate/SearchesAPI.ts +49 -0
  198. package/src/Automate/SystemAPI.ts +412 -0
  199. package/src/Automate/TicketsAPI.ts +29 -0
  200. package/src/Automate/UserProfilesAPI.ts +31 -0
  201. package/src/Automate.ts +204 -0
  202. package/src/AutomateAPI.ts +178 -0
  203. package/src/AutomateTypes.ts +10492 -0
  204. package/src/BaseAPI.ts +180 -0
  205. package/src/Manage/CompanyAPI.ts +4941 -0
  206. package/src/Manage/ConfigurationsAPI.ts +116 -0
  207. package/src/Manage/ExpenseAPI.ts +413 -0
  208. package/src/Manage/FinanceAPI.ts +3930 -0
  209. package/src/Manage/MarketingAPI.ts +958 -0
  210. package/src/Manage/ProcurementAPI.ts +3107 -0
  211. package/src/Manage/ProjectAPI.ts +1437 -0
  212. package/src/Manage/SalesAPI.ts +1968 -0
  213. package/src/Manage/ScheduleAPI.ts +773 -0
  214. package/src/Manage/ServiceAPI.ts +3476 -0
  215. package/src/Manage/SystemAPI.ts +6415 -0
  216. package/src/Manage/TimeAPI.ts +1151 -0
  217. package/src/Manage.ts +161 -0
  218. package/src/ManageAPI.ts +170 -0
  219. package/src/ManageTypes.ts +91318 -0
  220. package/src/index.ts +13 -0
  221. package/src/types.ts +68 -0
  222. package/src/utils/Callback.ts +148 -0
  223. package/src/utils/Series.ts +89 -0
  224. package/src/utils/index.ts +7 -0
  225. package/swagger-errors.md +25 -0
  226. package/test/.env.example +12 -6
  227. package/test/test-utils.ts +27 -0
  228. package/test/test.js +331 -108
  229. package/tsconfig.json +29 -0
  230. package/.travis.yml +0 -9
  231. package/doc.md +0 -5984
  232. package/docs/jsdoc.json +0 -15
  233. package/index.js +0 -10
  234. package/src/CompanyAPI/Companies.js +0 -149
  235. package/src/CompanyAPI/CompanyCompanyTypeAssociations.js +0 -111
  236. package/src/CompanyAPI/CompanySites.js +0 -80
  237. package/src/CompanyAPI/CompanyTeams.js +0 -108
  238. package/src/CompanyAPI/CompanyTypeInfos.js +0 -58
  239. package/src/CompanyAPI/CompanyTypes.js +0 -52
  240. package/src/CompanyAPI/Configurations.js +0 -152
  241. package/src/CompanyAPI/ContactContactTypeAssociations.js +0 -55
  242. package/src/CompanyAPI/ContactRelationships.js +0 -36
  243. package/src/CompanyAPI/Contacts.js +0 -199
  244. package/src/CompanyAPI/index.js +0 -53
  245. package/src/ConnectWise.js +0 -339
  246. package/src/ConnectWiseRest.js +0 -515
  247. package/src/FinanceAPI/Additions.js +0 -127
  248. package/src/FinanceAPI/Adjustments.js +0 -109
  249. package/src/FinanceAPI/AgreementSites.js +0 -108
  250. package/src/FinanceAPI/Agreements.js +0 -220
  251. package/src/FinanceAPI/BoardDefaults.js +0 -109
  252. package/src/FinanceAPI/WorkRoles.js +0 -113
  253. package/src/FinanceAPI/WorkTypeExclusions.js +0 -78
  254. package/src/FinanceAPI/WorkTypes.js +0 -124
  255. package/src/FinanceAPI/index.js +0 -50
  256. package/src/ProcurementAPI/CatalogItems.js +0 -94
  257. package/src/ProcurementAPI/index.js +0 -22
  258. package/src/ProjectAPI/Projects.js +0 -142
  259. package/src/ProjectAPI/index.js +0 -28
  260. package/src/SalesAPI/Activities.js +0 -149
  261. package/src/SalesAPI/index.js +0 -14
  262. package/src/ScheduleAPI/ScheduleEntries.js +0 -109
  263. package/src/ScheduleAPI/ScheduleTypes.js +0 -101
  264. package/src/ScheduleAPI/index.js +0 -30
  265. package/src/ServiceDeskAPI/BoardItems.js +0 -134
  266. package/src/ServiceDeskAPI/BoardSubTypes.js +0 -112
  267. package/src/ServiceDeskAPI/BoardTeams.js +0 -108
  268. package/src/ServiceDeskAPI/BoardTypes.js +0 -139
  269. package/src/ServiceDeskAPI/Boards.js +0 -100
  270. package/src/ServiceDeskAPI/Priorities.js +0 -47
  271. package/src/ServiceDeskAPI/ServiceNotes.js +0 -172
  272. package/src/ServiceDeskAPI/Statuses.js +0 -116
  273. package/src/ServiceDeskAPI/Tickets.js +0 -588
  274. package/src/ServiceDeskAPI/index.js +0 -53
  275. package/src/SystemAPI/Members.js +0 -139
  276. package/src/SystemAPI/Reports.js +0 -116
  277. package/src/SystemAPI/index.js +0 -32
  278. package/src/TimeAPI/TimeEntries.js +0 -121
  279. package/src/TimeAPI/index.js +0 -27
  280. package/src/utils/Callback.js +0 -124
  281. package/src/utils/Series.js +0 -63
  282. package/src/utils/index.js +0 -21
package/src/Manage.ts ADDED
@@ -0,0 +1,161 @@
1
+ import axios, { AxiosError, AxiosInstance, AxiosResponse } from 'axios'
2
+ import { makeRequest, makePaginate, PaginationOptions, PaginationApiMethod } from './BaseAPI'
3
+ import promiseRetry from 'promise-retry'
4
+ import type { CWMOptions } from './ManageAPI'
5
+ import { CWLogger, DataResponse, ErrorResponse, RequestOptions, RetryOptions } from './types'
6
+
7
+ const CW_MANAGE_DEBUG = !!process.env.CW_MANAGE_DEBUG
8
+
9
+ export const DEFAULTS: {
10
+ retryOptions: RetryOptions
11
+ apiPath: string
12
+ logger: (debug: boolean) => CWLogger
13
+ } = {
14
+ apiPath: '/apis/3.0',
15
+ retryOptions: {
16
+ retries: 4,
17
+ minTimeout: 50,
18
+ maxTimeout: 20000,
19
+ randomize: true,
20
+ },
21
+ logger:
22
+ (debug = false) =>
23
+ (level, text, meta) => {
24
+ switch (level) {
25
+ case 'error':
26
+ console.error(`${level}: ${text}`, meta)
27
+ return
28
+ case 'warn':
29
+ if (debug) {
30
+ console.log(`${level}: ${text}`, meta)
31
+ }
32
+ return
33
+ case 'info': {
34
+ if (debug) {
35
+ console.info(`${level}: ${text}`, meta)
36
+ }
37
+ return
38
+ }
39
+ default:
40
+ console.log(`${level}: ${text}`, meta)
41
+ return
42
+ }
43
+ },
44
+ }
45
+
46
+ export interface ManageConfig extends CWMOptions {
47
+ authorization: string
48
+ entryPoint: string
49
+ timeout: number
50
+ apiVersion: string
51
+ retry: boolean
52
+ retryOptions: RetryOptions
53
+ logger: CWLogger
54
+ debug: boolean
55
+ }
56
+
57
+ /**
58
+ * @internal
59
+ */
60
+ export default class Manage {
61
+ config: ManageConfig
62
+ private instance: AxiosInstance
63
+ /**
64
+ * @public
65
+ */
66
+ request: (args: RequestOptions) => Promise<any>
67
+ /**
68
+ * @public
69
+ */
70
+ paginate: (
71
+ apiMethod: PaginationApiMethod,
72
+ paginateArgs: PaginationOptions,
73
+ ...methodArgs: Record<string, unknown>[]
74
+ ) => Promise<unknown[]>
75
+
76
+ constructor({
77
+ companyId,
78
+ publicKey,
79
+ privateKey,
80
+ companyUrl,
81
+ clientId,
82
+ entryPoint = 'v4_6_release',
83
+ timeout = 20000,
84
+ apiVersion = '2021.1',
85
+ retry = false,
86
+ retryOptions = DEFAULTS.retryOptions,
87
+ logger,
88
+ debug = false,
89
+ }: CWMOptions) {
90
+ if (!companyId || !publicKey || !privateKey || !companyUrl || !clientId) {
91
+ throw new Error('Missing options [companyId, publicKey, privateKey, companyUrl, clientId]')
92
+ }
93
+
94
+ this.config = {
95
+ companyId,
96
+ publicKey,
97
+ privateKey,
98
+ companyUrl,
99
+ clientId,
100
+ entryPoint,
101
+ apiVersion,
102
+ retry,
103
+ timeout,
104
+ logger: logger ? logger : DEFAULTS.logger(debug || CW_MANAGE_DEBUG),
105
+ debug: debug || CW_MANAGE_DEBUG,
106
+ retryOptions: {
107
+ ...DEFAULTS.retryOptions,
108
+ ...retryOptions,
109
+ },
110
+ authorization: `Basic ${Buffer.from(`${companyId}+${publicKey}:${privateKey}`).toString(
111
+ 'base64',
112
+ )}`,
113
+ }
114
+
115
+ this.instance = axios.create({
116
+ timeout,
117
+ baseURL: `https://${companyUrl}/${entryPoint}${DEFAULTS.apiPath}`,
118
+ headers: {
119
+ Accept: `application/vnd.connectwise.com+json; version=${apiVersion}, application/json`,
120
+ 'Cache-Control': 'no-cache',
121
+ Authorization: this.config.authorization,
122
+ clientId: this.config.clientId,
123
+ },
124
+ })
125
+
126
+ this.request = makeRequest({ config: this.config, api: this.api, thisObj: this })
127
+ this.paginate = makePaginate({ thisObj: this })
128
+ }
129
+
130
+ /**
131
+ * @internal
132
+ */
133
+ private async api({
134
+ path,
135
+ method,
136
+ params,
137
+ data,
138
+ }: RequestOptions): Promise<ErrorResponse | DataResponse> {
139
+ try {
140
+ const result = await this.instance({
141
+ url: path,
142
+ method,
143
+ params,
144
+ data,
145
+ })
146
+
147
+ return result?.data
148
+ } catch (error: any) {
149
+ if (error.isAxiosError) {
150
+ throw {
151
+ status: error.response?.status,
152
+ data: error.response?.data,
153
+ message: error?.message,
154
+ }
155
+ }
156
+
157
+ // something else catastrophic went wrong
158
+ throw error
159
+ }
160
+ }
161
+ }
@@ -0,0 +1,170 @@
1
+ import Manage from './Manage'
2
+ import { CompanyAPI } from './Manage/CompanyAPI'
3
+ import { ConfigurationsAPI } from './Manage/ConfigurationsAPI'
4
+ import { ExpenseAPI } from './Manage/ExpenseAPI'
5
+ import { FinanceAPI } from './Manage/FinanceAPI'
6
+ import { MarketingAPI } from './Manage/MarketingAPI'
7
+ import { ProcurementAPI } from './Manage/ProcurementAPI'
8
+ import { ProjectAPI } from './Manage/ProjectAPI'
9
+ import { SalesAPI } from './Manage/SalesAPI'
10
+ import { ScheduleAPI } from './Manage/ScheduleAPI'
11
+ import { ServiceAPI } from './Manage/ServiceAPI'
12
+ import { SystemAPI } from './Manage/SystemAPI'
13
+ import { TimeAPI } from './Manage/TimeAPI'
14
+ import type * as CompanyAPITypes from './Manage/CompanyAPI'
15
+ import type * as ConfigurationsAPITypes from './Manage/ConfigurationsAPI'
16
+ import type * as ExpenseAPITypes from './Manage/ExpenseAPI'
17
+ import type * as FinanceAPITypes from './Manage/FinanceAPI'
18
+ import type * as MarketingAPITypes from './Manage/MarketingAPI'
19
+ import type * as ProcurementAPITypes from './Manage/ProcurementAPI'
20
+ import type * as ProjectAPITypes from './Manage/ProjectAPI'
21
+ import type * as SalesAPITypes from './Manage/SalesAPI'
22
+ import type * as ScheduleAPITypes from './Manage/ScheduleAPI'
23
+ import type * as ServiceAPITypes from './Manage/ServiceAPI'
24
+ import type * as SystemAPITypes from './Manage/SystemAPI'
25
+ import type * as TimeAPITypes from './Manage/TimeAPI'
26
+ import { CWLogger, RetryOptions } from './types'
27
+
28
+ /**
29
+ * @public
30
+ * Manage patch operation input object, usually passed in an array of operations
31
+ */
32
+ export type PatchOperation = {
33
+ op: 'add' | 'replace' | 'remove'
34
+ path: string
35
+ value: Record<string, unknown> | Record<string, unknown>[] | string | null
36
+ }
37
+
38
+ /**
39
+ * @public
40
+ * Manage common parameters
41
+ */
42
+ export type CommonParameters = {
43
+ conditions?: string
44
+ childConditions?: string
45
+ customFieldConditions?: string
46
+ orderBy?: string
47
+ fields?: string
48
+ page?: number
49
+ pageSize?: number
50
+ pageId?: number
51
+ }
52
+
53
+ /**
54
+ * @public
55
+ */
56
+ export interface CWMOptions {
57
+ /**
58
+ * Your CW Manage Company ID
59
+ */
60
+ companyId: string
61
+ /**
62
+ * api public key
63
+ */
64
+ publicKey: string
65
+ /**
66
+ * api private key
67
+ */
68
+ privateKey: string
69
+ /**
70
+ * Your CW Manage instance URI
71
+ * e.g. my.domain.com
72
+ */
73
+ companyUrl: string
74
+ /**
75
+ * Request a client ID from developer.connectwise.com
76
+ */
77
+ clientId: string
78
+ /**
79
+ * Defaults to 'v4_6_release'
80
+ */
81
+ entryPoint?: string
82
+ /**
83
+ * Default timeout in milliseconds
84
+ */
85
+ timeout?: number
86
+ /**
87
+ * Api version, defaults to 2021.1
88
+ */
89
+ apiVersion?: string
90
+ /**
91
+ * Enable automatic retry. Defaults to false.
92
+ */
93
+ retry?: boolean
94
+ /**
95
+ * @see {@link RetryOptions} type
96
+ */
97
+ retryOptions?: RetryOptions
98
+ /**
99
+ * Pass in a custom logger function, otherwise the default
100
+ * will be used
101
+ * @example
102
+ * ```js
103
+ * const logger = (level, text, meta) => console.log(level, text, meta)
104
+ * ```
105
+ */
106
+ logger?: CWLogger
107
+
108
+ /**
109
+ * Enable debug output. Defaults to false.
110
+ */
111
+ debug?: boolean
112
+ }
113
+
114
+ /**
115
+ * @public
116
+ */
117
+ class ManageAPI extends Manage {
118
+ CompanyAPI: CompanyAPI
119
+ ConfigurationsAPI: ConfigurationsAPI
120
+ ExpenseAPI: ExpenseAPI
121
+ FinanceAPI: FinanceAPI
122
+ MarketingAPI: MarketingAPI
123
+ ProcurementAPI: ProcurementAPI
124
+ ProjectAPI: ProjectAPI
125
+ SalesAPI: SalesAPI
126
+ ScheduleAPI: ScheduleAPI
127
+ ServiceAPI: ServiceAPI
128
+ SystemAPI: SystemAPI
129
+ TimeAPI: TimeAPI
130
+
131
+ constructor(options: CWMOptions) {
132
+ super(options)
133
+
134
+ this.CompanyAPI = new CompanyAPI(options)
135
+ this.ConfigurationsAPI = new ConfigurationsAPI(options)
136
+ this.ExpenseAPI = new ExpenseAPI(options)
137
+ this.FinanceAPI = new FinanceAPI(options)
138
+ this.MarketingAPI = new MarketingAPI(options)
139
+ this.ProcurementAPI = new ProcurementAPI(options)
140
+ this.ProjectAPI = new ProjectAPI(options)
141
+ this.SalesAPI = new SalesAPI(options)
142
+ this.ScheduleAPI = new ScheduleAPI(options)
143
+ this.ServiceAPI = new ServiceAPI(options)
144
+ this.SystemAPI = new SystemAPI(options)
145
+ this.TimeAPI = new TimeAPI(options)
146
+ }
147
+ }
148
+
149
+ /**
150
+ * @public
151
+ */
152
+ export default ManageAPI
153
+
154
+ /**
155
+ * @public
156
+ */
157
+ export type {
158
+ CompanyAPITypes,
159
+ ConfigurationsAPITypes,
160
+ ExpenseAPITypes,
161
+ FinanceAPITypes,
162
+ MarketingAPITypes,
163
+ ProcurementAPITypes,
164
+ ProjectAPITypes,
165
+ SalesAPITypes,
166
+ ScheduleAPITypes,
167
+ ServiceAPITypes,
168
+ SystemAPITypes,
169
+ TimeAPITypes,
170
+ }