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