connectwise-rest 1.0.0 → 1.0.1

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 (217) hide show
  1. package/.eslintrc +23 -26
  2. package/README.md +62 -12
  3. package/api-extractor.json +364 -364
  4. package/dist/Automate/AVTemplatePoliciesAPI.d.ts +10 -1
  5. package/dist/Automate/AVTemplatePoliciesAPI.d.ts.map +1 -1
  6. package/dist/Automate/AVTemplatePoliciesAPI.js +6 -1
  7. package/dist/Automate/AVTemplatePoliciesAPI.js.map +1 -1
  8. package/dist/Automate/ClientsAPI.d.ts +11 -1
  9. package/dist/Automate/ClientsAPI.d.ts.map +1 -1
  10. package/dist/Automate/ClientsAPI.js +6 -1
  11. package/dist/Automate/ClientsAPI.js.map +1 -1
  12. package/dist/Automate/CommandsAPI.d.ts +6 -1
  13. package/dist/Automate/CommandsAPI.d.ts.map +1 -1
  14. package/dist/Automate/CommandsAPI.js +6 -1
  15. package/dist/Automate/CommandsAPI.js.map +1 -1
  16. package/dist/Automate/ComputersAPI.d.ts +38 -1
  17. package/dist/Automate/ComputersAPI.d.ts.map +1 -1
  18. package/dist/Automate/ComputersAPI.js +6 -1
  19. package/dist/Automate/ComputersAPI.js.map +1 -1
  20. package/dist/Automate/ContactsAPI.d.ts +7 -1
  21. package/dist/Automate/ContactsAPI.d.ts.map +1 -1
  22. package/dist/Automate/ContactsAPI.js +6 -1
  23. package/dist/Automate/ContactsAPI.js.map +1 -1
  24. package/dist/Automate/DataViewsAPI.d.ts +7 -1
  25. package/dist/Automate/DataViewsAPI.d.ts.map +1 -1
  26. package/dist/Automate/DataViewsAPI.js +6 -1
  27. package/dist/Automate/DataViewsAPI.js.map +1 -1
  28. package/dist/Automate/DrivesAPI.d.ts +7 -1
  29. package/dist/Automate/DrivesAPI.d.ts.map +1 -1
  30. package/dist/Automate/DrivesAPI.js +6 -1
  31. package/dist/Automate/DrivesAPI.js.map +1 -1
  32. package/dist/Automate/EventLogsAPI.d.ts +6 -1
  33. package/dist/Automate/EventLogsAPI.d.ts.map +1 -1
  34. package/dist/Automate/EventLogsAPI.js +6 -1
  35. package/dist/Automate/EventLogsAPI.js.map +1 -1
  36. package/dist/Automate/LocationsAPI.d.ts +16 -1
  37. package/dist/Automate/LocationsAPI.d.ts.map +1 -1
  38. package/dist/Automate/LocationsAPI.js +6 -1
  39. package/dist/Automate/LocationsAPI.js.map +1 -1
  40. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts +6 -1
  41. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts.map +1 -1
  42. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js +6 -1
  43. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js.map +1 -1
  44. package/dist/Automate/MonitorsAPI.d.ts +7 -1
  45. package/dist/Automate/MonitorsAPI.d.ts.map +1 -1
  46. package/dist/Automate/MonitorsAPI.js +6 -1
  47. package/dist/Automate/MonitorsAPI.js.map +1 -1
  48. package/dist/Automate/NetworkDevicesAPI.d.ts +7 -1
  49. package/dist/Automate/NetworkDevicesAPI.d.ts.map +1 -1
  50. package/dist/Automate/NetworkDevicesAPI.js +6 -1
  51. package/dist/Automate/NetworkDevicesAPI.js.map +1 -1
  52. package/dist/Automate/PatchingAPI.d.ts +7 -1
  53. package/dist/Automate/PatchingAPI.d.ts.map +1 -1
  54. package/dist/Automate/PatchingAPI.js +6 -1
  55. package/dist/Automate/PatchingAPI.js.map +1 -1
  56. package/dist/Automate/RemoteAgentAPI.d.ts +7 -1
  57. package/dist/Automate/RemoteAgentAPI.d.ts.map +1 -1
  58. package/dist/Automate/RemoteAgentAPI.js +6 -1
  59. package/dist/Automate/RemoteAgentAPI.js.map +1 -1
  60. package/dist/Automate/ScriptingAPI.d.ts +10 -1
  61. package/dist/Automate/ScriptingAPI.d.ts.map +1 -1
  62. package/dist/Automate/ScriptingAPI.js +6 -1
  63. package/dist/Automate/ScriptingAPI.js.map +1 -1
  64. package/dist/Automate/SearchesAPI.d.ts +7 -1
  65. package/dist/Automate/SearchesAPI.d.ts.map +1 -1
  66. package/dist/Automate/SearchesAPI.js +6 -1
  67. package/dist/Automate/SearchesAPI.js.map +1 -1
  68. package/dist/Automate/SystemAPI.d.ts +28 -3
  69. package/dist/Automate/SystemAPI.d.ts.map +1 -1
  70. package/dist/Automate/SystemAPI.js +8 -3
  71. package/dist/Automate/SystemAPI.js.map +1 -1
  72. package/dist/Automate/TicketsAPI.d.ts +5 -1
  73. package/dist/Automate/TicketsAPI.d.ts.map +1 -1
  74. package/dist/Automate/TicketsAPI.js +6 -1
  75. package/dist/Automate/TicketsAPI.js.map +1 -1
  76. package/dist/Automate/UserProfilesAPI.d.ts +6 -1
  77. package/dist/Automate/UserProfilesAPI.d.ts.map +1 -1
  78. package/dist/Automate/UserProfilesAPI.js +6 -1
  79. package/dist/Automate/UserProfilesAPI.js.map +1 -1
  80. package/dist/Automate.d.ts +0 -5
  81. package/dist/Automate.d.ts.map +1 -1
  82. package/dist/Automate.js +0 -3
  83. package/dist/Automate.js.map +1 -1
  84. package/dist/AutomateAPI.d.ts +55 -22
  85. package/dist/AutomateAPI.d.ts.map +1 -1
  86. package/dist/AutomateAPI.js +46 -39
  87. package/dist/AutomateAPI.js.map +1 -1
  88. package/dist/BaseAPI.d.ts +13 -0
  89. package/dist/BaseAPI.d.ts.map +1 -1
  90. package/dist/BaseAPI.js +64 -1
  91. package/dist/BaseAPI.js.map +1 -1
  92. package/dist/Manage/CompanyAPI.d.ts +90 -1
  93. package/dist/Manage/CompanyAPI.d.ts.map +1 -1
  94. package/dist/Manage/CompanyAPI.js +6 -1
  95. package/dist/Manage/CompanyAPI.js.map +1 -1
  96. package/dist/Manage/ConfigurationsAPI.d.ts +9 -1
  97. package/dist/Manage/ConfigurationsAPI.d.ts.map +1 -1
  98. package/dist/Manage/ConfigurationsAPI.js +6 -1
  99. package/dist/Manage/ConfigurationsAPI.js.map +1 -1
  100. package/dist/Manage/ExpenseAPI.d.ts +18 -1
  101. package/dist/Manage/ExpenseAPI.d.ts.map +1 -1
  102. package/dist/Manage/ExpenseAPI.js +6 -1
  103. package/dist/Manage/ExpenseAPI.js.map +1 -1
  104. package/dist/Manage/FinanceAPI.d.ts +79 -1
  105. package/dist/Manage/FinanceAPI.d.ts.map +1 -1
  106. package/dist/Manage/FinanceAPI.js +6 -1
  107. package/dist/Manage/FinanceAPI.js.map +1 -1
  108. package/dist/Manage/MarketingAPI.d.ts +23 -1
  109. package/dist/Manage/MarketingAPI.d.ts.map +1 -1
  110. package/dist/Manage/MarketingAPI.js +6 -1
  111. package/dist/Manage/MarketingAPI.js.map +1 -1
  112. package/dist/Manage/ProcurementAPI.d.ts +63 -1
  113. package/dist/Manage/ProcurementAPI.d.ts.map +1 -1
  114. package/dist/Manage/ProcurementAPI.js +6 -1
  115. package/dist/Manage/ProcurementAPI.js.map +1 -1
  116. package/dist/Manage/ProjectAPI.d.ts +37 -1
  117. package/dist/Manage/ProjectAPI.d.ts.map +1 -1
  118. package/dist/Manage/ProjectAPI.js +6 -1
  119. package/dist/Manage/ProjectAPI.js.map +1 -1
  120. package/dist/Manage/SalesAPI.d.ts +46 -1
  121. package/dist/Manage/SalesAPI.d.ts.map +1 -1
  122. package/dist/Manage/SalesAPI.js +6 -1
  123. package/dist/Manage/SalesAPI.js.map +1 -1
  124. package/dist/Manage/ScheduleAPI.d.ts +22 -1
  125. package/dist/Manage/ScheduleAPI.d.ts.map +1 -1
  126. package/dist/Manage/ScheduleAPI.js +6 -1
  127. package/dist/Manage/ScheduleAPI.js.map +1 -1
  128. package/dist/Manage/ServiceAPI.d.ts +75 -1
  129. package/dist/Manage/ServiceAPI.d.ts.map +1 -1
  130. package/dist/Manage/ServiceAPI.js +6 -1
  131. package/dist/Manage/ServiceAPI.js.map +1 -1
  132. package/dist/Manage/SystemAPI.d.ts +146 -1
  133. package/dist/Manage/SystemAPI.d.ts.map +1 -1
  134. package/dist/Manage/SystemAPI.js +6 -1
  135. package/dist/Manage/SystemAPI.js.map +1 -1
  136. package/dist/Manage/TimeAPI.d.ts +30 -1
  137. package/dist/Manage/TimeAPI.d.ts.map +1 -1
  138. package/dist/Manage/TimeAPI.js +6 -1
  139. package/dist/Manage/TimeAPI.js.map +1 -1
  140. package/dist/Manage.d.ts +5 -0
  141. package/dist/Manage.d.ts.map +1 -1
  142. package/dist/Manage.js +10 -0
  143. package/dist/Manage.js.map +1 -1
  144. package/dist/ManageAPI.d.ts +51 -15
  145. package/dist/ManageAPI.d.ts.map +1 -1
  146. package/dist/ManageAPI.js +27 -24
  147. package/dist/ManageAPI.js.map +1 -1
  148. package/dist/connectwise-rest.d.ts +108638 -0
  149. package/dist/index.d.ts +6 -3
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +0 -2
  152. package/dist/index.js.map +1 -1
  153. package/dist/tsdoc-metadata.json +11 -0
  154. package/dist/types.d.ts +4 -2
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/types.js.map +1 -1
  157. package/dist/utils/Callback.d.ts +3 -0
  158. package/dist/utils/Callback.d.ts.map +1 -1
  159. package/dist/utils/Callback.js.map +1 -1
  160. package/dist/utils/Series.d.ts +6 -0
  161. package/dist/utils/Series.d.ts.map +1 -1
  162. package/dist/utils/Series.js +6 -2
  163. package/dist/utils/Series.js.map +1 -1
  164. package/package.json +5 -2
  165. package/src/Automate/AVTemplatePoliciesAPI.ts +11 -1
  166. package/src/Automate/ClientsAPI.ts +12 -1
  167. package/src/Automate/CommandsAPI.ts +7 -1
  168. package/src/Automate/ComputersAPI.ts +39 -1
  169. package/src/Automate/ContactsAPI.ts +8 -1
  170. package/src/Automate/DataViewsAPI.ts +8 -1
  171. package/src/Automate/DrivesAPI.ts +8 -1
  172. package/src/Automate/EventLogsAPI.ts +7 -1
  173. package/src/Automate/LocationsAPI.ts +17 -1
  174. package/src/Automate/MaintenanceWindowDefinitionsAPI.ts +7 -1
  175. package/src/Automate/MonitorsAPI.ts +8 -1
  176. package/src/Automate/NetworkDevicesAPI.ts +8 -1
  177. package/src/Automate/PatchingAPI.ts +8 -1
  178. package/src/Automate/RemoteAgentAPI.ts +8 -1
  179. package/src/Automate/ScriptingAPI.ts +11 -1
  180. package/src/Automate/SearchesAPI.ts +8 -1
  181. package/src/Automate/SystemAPI.ts +29 -3
  182. package/src/Automate/TicketsAPI.ts +6 -1
  183. package/src/Automate/UserProfilesAPI.ts +7 -1
  184. package/src/Automate.ts +0 -12
  185. package/src/AutomateAPI.ts +77 -43
  186. package/src/AutomateTypes.ts +1 -1
  187. package/src/BaseAPI.ts +97 -0
  188. package/src/Manage/CompanyAPI.ts +91 -1
  189. package/src/Manage/ConfigurationsAPI.ts +10 -1
  190. package/src/Manage/ExpenseAPI.ts +19 -1
  191. package/src/Manage/FinanceAPI.ts +80 -1
  192. package/src/Manage/MarketingAPI.ts +24 -1
  193. package/src/Manage/ProcurementAPI.ts +64 -1
  194. package/src/Manage/ProjectAPI.ts +38 -1
  195. package/src/Manage/SalesAPI.ts +47 -1
  196. package/src/Manage/ScheduleAPI.ts +23 -1
  197. package/src/Manage/ServiceAPI.ts +76 -1
  198. package/src/Manage/SystemAPI.ts +147 -1
  199. package/src/Manage/TimeAPI.ts +31 -1
  200. package/src/Manage.ts +10 -1
  201. package/src/ManageAPI.ts +66 -29
  202. package/src/index.ts +6 -11
  203. package/src/types.ts +4 -2
  204. package/src/utils/Callback.ts +3 -0
  205. package/src/utils/Series.ts +6 -0
  206. package/swagger-errors.md +25 -30
  207. package/test/test.ts +34 -5
  208. package/.github/workflows/codeql-analysis.yml +0 -70
  209. package/.github/workflows/node.js.yml +0 -42
  210. package/.travis.yml +0 -11
  211. package/generator/automate-generator.js +0 -75
  212. package/generator/automate-json.js +0 -61
  213. package/generator/automate-types.js +0 -15
  214. package/generator/generator.d.ts +0 -67
  215. package/generator/generator.js +0 -255
  216. package/generator/manage-generator.js +0 -71
  217. package/generator/manage-types.js +0 -14
package/.eslintrc CHANGED
@@ -1,26 +1,23 @@
1
- {
2
- "parser": "@typescript-eslint/parser",
3
- "parserOptions": {
4
- "ecmaVersion": "latest"
5
- },
6
- "plugins": ["@typescript-eslint", "prettier"],
7
- "env": {
8
- "node": true,
9
- "mocha": true,
10
- "es6": true
11
- },
12
- "extends": [
13
- "plugin:@typescript-eslint/eslint-recommended",
14
- "plugin:@typescript-eslint/recommended",
15
- "plugin:prettier/recommended"
16
- ],
17
- "rules": {},
18
- "ignorePatterns": [
19
- "dist",
20
- "src/AutomateTypes.js",
21
- "src/ManageTypes.js"
22
- ],
23
- "settings": {
24
-
25
- }
26
- }
1
+ {
2
+ "parser": "@typescript-eslint/parser",
3
+ "parserOptions": {
4
+ "ecmaVersion": "latest"
5
+ },
6
+ "plugins": ["@typescript-eslint", "prettier"],
7
+ "env": {
8
+ "node": true,
9
+ "mocha": true,
10
+ "es6": true
11
+ },
12
+ "extends": [
13
+ "plugin:@typescript-eslint/eslint-recommended",
14
+ "plugin:@typescript-eslint/recommended",
15
+ "plugin:prettier/recommended"
16
+ ],
17
+ "ignorePatterns": [
18
+ "dist",
19
+ "src/AutomateTypes.js",
20
+ "src/ManageTypes.js"
21
+ ],
22
+ "rules": {}
23
+ }
package/README.md CHANGED
@@ -1,15 +1,39 @@
1
1
  # connectwise-rest
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/connectwise-rest.svg)](https://www.npmjs.com/package/connectwise-rest) [![npm downloads](https://img.shields.io/npm/dt/connectwise-rest.svg)](https://www.npmjs.com/package/connectwise-rest) [![travis build](https://api.travis-ci.org/covenanttechnologysolutions/connectwise-rest.svg?branch=master)](https://travis-ci.org/covenanttechnologysolutions/connectwise-rest)
3
+ [![npm version](https://img.shields.io/npm/v/connectwise-rest.svg)](https://www.npmjs.com/package/connectwise-rest) [![npm downloads](https://img.shields.io/npm/dt/connectwise-rest.svg)](https://www.npmjs.com/package/connectwise-rest) ![Node.js CI](https://github.com/covenanttechnologysolutions/connectwise-rest/actions/workflows/node.js.yml/badge.svg?branch=master)
4
4
 
5
- A Node.JS TypeScript module for interacting with the ConnectWise Manage and Automate REST APIs. This module provides bindings for ease of development against the ConnectWise REST APIs.
5
+ A Node.JS TypeScript module for interacting with the ConnectWise Manage and Automate REST APIs.
6
+ This module provides bindings for ease of development against the ConnectWise REST APIs as well as pagination, automatic retries and logging.
7
+
8
+ ### ⚠️Breaking Changes ⚠️
9
+
10
+ Version 1.0 has been completely re-written and is automatically generated, some function names have changed as well as removal of subsections from version 0.x. Pagination API has been changed for easier usage. VSCode, JetBrains, etc editors will automatically pick up the new type definitions.
11
+
12
+ ## Table of Contents
13
+
14
+ - [Requirements](#requirements)
15
+ - [Manage](#manage)
16
+ - [Automate](#automate)
17
+ - [Documentation](#documentation)
18
+ - [Usage](#usage)
19
+ - [Manage Usage](#manage-usage)
20
+ - [Automate Usage](#automate-usage)
21
+ - [Pagination](#pagination)
22
+ - [APIs Without Typings](#apis-without-typings)
23
+ - [Cloud-Hosted ConnectWise Manage](#cloud-hosted-connectwise-manage)
24
+ - [Examples](#examples)
25
+ - [Sample Project](#sample-project)
26
+ - [Code Examples](#code-examples)
27
+ - [Manage Conditions Example](#manage-conditions-example)
28
+ - [Manage Callbacks](#manage-callbacks)
6
29
 
7
30
  ## Requirements
8
31
 
9
32
  ### Manage
10
33
 
11
34
  - ConnectWise Manage 2018.1+, though these functions are written for ConnectWise Manage 2021.1 APIs.
12
- - ConnectWise Manage API keys (available on ConnectWise 2015.3+), or API Only Member keys (only available on ConnectWise 2015.6+). See the [documentation](https://developer.connectwise.com/Authentication) for more details.
35
+ - ConnectWise Manage API keys (available on ConnectWise 2015.3+), or API Only Member keys (only available on ConnectWise 2015.6+). See the [documentation](https://developer.connectwise.com/Authentication) for more details.
36
+
13
37
  ### Automate
14
38
 
15
39
  - ConnectWise Automate 2020+
@@ -21,7 +45,7 @@ See the full documentation [here](https://covenanttechnologysolutions.github.io/
21
45
 
22
46
  ## Usage
23
47
 
24
- ### Manage
48
+ ### Manage Usage
25
49
 
26
50
  ```javascript
27
51
  // ESM
@@ -43,7 +67,7 @@ const cwm = new ManageAPI({
43
67
  retries: 4, // maximum number of retries
44
68
  minTimeout: 50, // number of ms to wait between retries
45
69
  maxTimeout: 20000, // maximum number of ms between retries
46
- randomize: true, // randomize timeouts
70
+ randomize: true, // randomize delay between retries on timeouts
47
71
  },
48
72
  debug: false, // optional, enable debug logging
49
73
  logger: (level, text, meta) => { } // optional, pass in logging function
@@ -59,7 +83,7 @@ cwm.ServiceDeskAPI.Tickets.getTicketById(1234)
59
83
  ```
60
84
 
61
85
 
62
- ### Automate
86
+ ### Automate Usage
63
87
 
64
88
  ```javascript
65
89
  // ESM
@@ -71,12 +95,12 @@ const cwa = new ManageAPI({
71
95
  companyId: 'company',
72
96
  serverUrl: 'your.connectwise.com',
73
97
  clientId: '<your client id>',
74
- // One of the following: token, integrator username and password or username, password and two-factor code
75
- token: '<bearer token>',
76
-
77
- // or integrator username/password:
98
+ // One of the following: integrator username and password or username, password and two-factor code
99
+ // integrator username/password:
78
100
  username: '<username>',
79
101
  password: '<private key>',
102
+
103
+ // also pass in two factor passcode if not using an integrator account
80
104
  twoFactorPasscode: '<2fa code>',
81
105
 
82
106
  timeout: 20000, // optional, request connection timeout in ms, defaults to 20000
@@ -85,7 +109,7 @@ const cwa = new ManageAPI({
85
109
  retries: 4, // maximum number of retries
86
110
  minTimeout: 50, // number of ms to wait between retries
87
111
  maxTimeout: 20000, // maximum number of ms between retries
88
- randomize: true, // randomize timeouts
112
+ randomize: true, // randomize delay between retries on timeouts
89
113
  },
90
114
  debug: false, // optional, enable debug logging
91
115
  logger: (level, text, meta) => { } // optional, pass in logging function
@@ -100,6 +124,27 @@ cwa.ComputersAPI.getComputerList()
100
124
  });
101
125
  ```
102
126
 
127
+ ### Pagination
128
+
129
+ Use the pagination function to automatically fetch all records in order that match the request.
130
+
131
+ Note: the last argument to the pagination function must be an object, or an error will be thrown.
132
+
133
+ ```javascript
134
+ const cwa = new ManageAPI()
135
+ const cwm = new AutomateAPI()
136
+
137
+ // use the instantiated ManageAPI or AutomateAPI
138
+ cwm.paginate(
139
+ cwm.ServiceAPI.getServiceTickets, // pass in the api function to be paginated
140
+ {startPage: 10, pageSize: 500}, // pagination options, defaults to startPage 1, pageSize 1000
141
+ {} // additional arguments to the api function as needed
142
+ )
143
+ .then(results => { ... })
144
+ .catch(error => { ... })
145
+
146
+ ```
147
+
103
148
  ### APIs Without Typings
104
149
 
105
150
  You can also manually access the API without typings:
@@ -153,6 +198,10 @@ To access cloud-hosted ConnectWise, use the `companyUrl` of `api-na.myconnectwis
153
198
 
154
199
  ## Examples
155
200
 
201
+ ### Sample Project
202
+
203
+ See [the sample project here](https://github.com/k-grube/cw-micro). This is a simple node.js express based API.
204
+
156
205
  ### Code Examples
157
206
 
158
207
  Get ticket 1234 and print ticket number, summary and status.
@@ -217,7 +266,7 @@ Error message returned from server when invalid conditions are passed in:
217
266
  > Expected a boolean value, not a numeric. String values should be enclosed with double or single quotes; DateTime values should be enclosed in square brackets; numbers should consist of only digits, and optionally a decimal point and a negation sign; boolean values should be indicated with the keywords true or false; null values should be indicated by the keyword null.
218
267
 
219
268
 
220
- ### Callbacks
269
+ ### Manage Callbacks
221
270
 
222
271
  This library includes an express style callback middleware that will parse and verify the payload signature.
223
272
 
@@ -241,3 +290,4 @@ This library includes an express style callback middleware that will parse and v
241
290
  }));
242
291
 
243
292
  ```
293
+