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
@@ -0,0 +1,12 @@
1
+ import ManageAPI, { CWMOptions, CommonParameters, PatchOperation } from './ManageAPI';
2
+ import AutomateAPI, { CWAOptions } from './AutomateAPI';
3
+ import type * as types from './types';
4
+ import type * as Automate from './AutomateAPI';
5
+ import type * as Manage from './ManageAPI';
6
+ import * as utils from './utils';
7
+ export type { CWMOptions, CommonParameters, PatchOperation, CWAOptions, types, Automate, Manage };
8
+ /**
9
+ * @public
10
+ */
11
+ export { AutomateAPI, ManageAPI, utils };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,KAAK,QAAQ,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AAEjG;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
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
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.utils = exports.ManageAPI = exports.AutomateAPI = void 0;
30
+ const ManageAPI_1 = __importDefault(require("./ManageAPI"));
31
+ exports.ManageAPI = ManageAPI_1.default;
32
+ const AutomateAPI_1 = __importDefault(require("./AutomateAPI"));
33
+ exports.AutomateAPI = AutomateAPI_1.default;
34
+ const utils = __importStar(require("./utils"));
35
+ exports.utils = utils;
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAqF;AAY/D,oBAZf,mBAAS,CAYe;AAX/B,gEAAuD;AAW9C,sBAXF,qBAAW,CAWE;AAPpB,+CAAgC;AAOC,sBAAK"}
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.19.5"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,48 @@
1
+ /// <reference types="node" />
2
+ import type * as ManageAPIs from './ManageAPI';
3
+ import type * as AutomateApis from './AutomateAPI';
4
+ export declare enum StatusCode {
5
+ OK = 200,
6
+ Created = 201,
7
+ Accepted = 202,
8
+ NoContent = 204,
9
+ MovedPermanently = 301,
10
+ BadRequest = 400,
11
+ Unauthorized = 401,
12
+ Forbidden = 403,
13
+ NotFound = 404,
14
+ TooManyRequests = 429,
15
+ InternalServerError = 500,
16
+ BadGateway = 502,
17
+ ServiceUnavailable = 503,
18
+ GatewayTimeout = 504
19
+ }
20
+ export declare type Methods = 'get' | 'put' | 'delete' | 'post' | 'patch';
21
+ export declare type RetryOptions = {
22
+ minTimeout: number;
23
+ retries: number;
24
+ maxTimeout: number;
25
+ randomize: boolean;
26
+ factor?: number;
27
+ };
28
+ export declare type RequestOptions = {
29
+ path: string;
30
+ method?: Methods;
31
+ params?: Record<string, unknown>;
32
+ data?: Record<string, unknown> | Record<string, unknown>[] | PatchOperation[] | null | string | number | undefined;
33
+ };
34
+ export declare type LoggingLevels = 'error' | 'warn' | 'info' | 'debug';
35
+ export declare type CWLogger = (level: LoggingLevels, text: string, meta?: Record<string, unknown>) => void;
36
+ export declare type DataResponse = Record<string, unknown> | Record<string, unknown>[] | string | number | null | undefined;
37
+ export declare type ErrorResponse = {
38
+ status: number | string;
39
+ data: DataResponse;
40
+ message: string;
41
+ };
42
+ export declare type NoContentResponse = undefined;
43
+ export declare type OctetStreamResponse = Buffer;
44
+ export declare type PDFResponse = Blob;
45
+ export declare type HTMLResponse = string;
46
+ export declare type PatchOperation = ManageAPIs.PatchOperation;
47
+ export type { ManageAPIs, AutomateApis };
48
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAA;AAElD,oBAAY,UAAU;IACpB,EAAE,MAAM;IACR,OAAO,MAAM;IACb,QAAQ,MAAM;IACd,SAAS,MAAM;IACf,gBAAgB,MAAM;IACtB,UAAU,MAAM;IAChB,YAAY,MAAM;IAClB,SAAS,MAAM;IACf,QAAQ,MAAM;IACd,eAAe,MAAM;IACrB,mBAAmB,MAAM;IACzB,UAAU,MAAM;IAChB,kBAAkB,MAAM;IACxB,cAAc,MAAM;CACrB;AAED,oBAAY,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAEjE,oBAAY,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,oBAAY,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,IAAI,CAAC,EACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACzB,cAAc,EAAE,GAChB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,SAAS,CAAA;CACd,CAAA;AAED,oBAAY,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAC/D,oBAAY,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AAEnG,oBAAY,YAAY,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACzB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,CAAA;AAEb,oBAAY,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAGD,oBAAY,iBAAiB,GAAG,SAAS,CAAA;AACzC,oBAAY,mBAAmB,GAAG,MAAM,CAAA;AACxC,oBAAY,WAAW,GAAG,IAAI,CAAA;AAC9B,oBAAY,YAAY,GAAG,MAAM,CAAA;AACjC,oBAAY,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusCode = void 0;
4
+ var StatusCode;
5
+ (function (StatusCode) {
6
+ StatusCode[StatusCode["OK"] = 200] = "OK";
7
+ StatusCode[StatusCode["Created"] = 201] = "Created";
8
+ StatusCode[StatusCode["Accepted"] = 202] = "Accepted";
9
+ StatusCode[StatusCode["NoContent"] = 204] = "NoContent";
10
+ StatusCode[StatusCode["MovedPermanently"] = 301] = "MovedPermanently";
11
+ StatusCode[StatusCode["BadRequest"] = 400] = "BadRequest";
12
+ StatusCode[StatusCode["Unauthorized"] = 401] = "Unauthorized";
13
+ StatusCode[StatusCode["Forbidden"] = 403] = "Forbidden";
14
+ StatusCode[StatusCode["NotFound"] = 404] = "NotFound";
15
+ StatusCode[StatusCode["TooManyRequests"] = 429] = "TooManyRequests";
16
+ StatusCode[StatusCode["InternalServerError"] = 500] = "InternalServerError";
17
+ StatusCode[StatusCode["BadGateway"] = 502] = "BadGateway";
18
+ StatusCode[StatusCode["ServiceUnavailable"] = 503] = "ServiceUnavailable";
19
+ StatusCode[StatusCode["GatewayTimeout"] = 504] = "GatewayTimeout";
20
+ })(StatusCode = exports.StatusCode || (exports.StatusCode = {}));
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAGA,IAAY,UAeX;AAfD,WAAY,UAAU;IACpB,yCAAQ,CAAA;IACR,mDAAa,CAAA;IACb,qDAAc,CAAA;IACd,uDAAe,CAAA;IACf,qEAAsB,CAAA;IACtB,yDAAgB,CAAA;IAChB,6DAAkB,CAAA;IAClB,uDAAe,CAAA;IACf,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,2EAAyB,CAAA;IACzB,yDAAgB,CAAA;IAChB,yEAAwB,CAAA;IACxB,iEAAoB,CAAA;AACtB,CAAC,EAfW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAerB"}
@@ -0,0 +1,70 @@
1
+ /// <reference types="node" />
2
+ import type { ClientRequest, ServerResponse } from 'http';
3
+ export interface ExpressRequest extends ClientRequest {
4
+ body: CallbackPayload;
5
+ headers: Record<string, string>;
6
+ }
7
+ /**
8
+ * @public
9
+ */
10
+ export declare type CallbackPayload = {
11
+ Action: string;
12
+ CompanyId: string | number;
13
+ Entity: string;
14
+ FromUrl: string;
15
+ ID: string | number;
16
+ MemberId: string | number;
17
+ Metadata: {
18
+ key_url: string;
19
+ };
20
+ Type: string;
21
+ };
22
+ export declare type Entity = Record<string, unknown> | Array<Record<string, unknown>>;
23
+ /**
24
+ * Load signing key and verify the message
25
+ * @param callbackBody -
26
+ * @param contentSignature - base64 content signature req.headers[x-content-signature]
27
+ * @returns verifies callback signature
28
+ * @public
29
+ */
30
+ export declare function verifyCallback(callbackBody: CallbackPayload, contentSignature: string): Promise<boolean>;
31
+ /**
32
+ * Validate a callback body against signed key
33
+ * @param callbackBody -
34
+ * @param contentSignature -
35
+ * @param signingKey -
36
+ * @returns boolean if verified
37
+ * @public
38
+ */
39
+ export declare function verifyMessage(callbackBody: CallbackPayload, contentSignature: string, signingKey: string): boolean;
40
+ /**
41
+ *
42
+ * @example
43
+ * Express style middleware
44
+ * ```
45
+ * app.post('/your/api', cw.utils.middleware((err, req, res, verified, payload) => {
46
+ * if (err) {
47
+ * //handle error
48
+ * res.status(500).end();
49
+ * } else if (!verified) {
50
+ * // send 403 on verification failure
51
+ * res.status(403).end();
52
+ * } else {
53
+ * res.status(200).end()
54
+ * }
55
+ * const {action, id} = req.query;
56
+ * // do something with the payload
57
+ * }));
58
+ * ```
59
+ *
60
+ * @param cb - callback(err, req, res, verified, payload)
61
+ * @public
62
+ */
63
+ export declare function middleware(cb: (err: Error | null, req: ExpressRequest, res: ServerResponse, verified: boolean, payload: Entity | undefined) => void): (req: ExpressRequest, res: ServerResponse) => void;
64
+ declare const _default: {
65
+ middleware: typeof middleware;
66
+ verifyCallback: typeof verifyCallback;
67
+ verifyMessage: typeof verifyMessage;
68
+ };
69
+ export default _default;
70
+ //# sourceMappingURL=Callback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callback.d.ts","sourceRoot":"","sources":["../../src/utils/Callback.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAEzD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,oBAAY,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAE7E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,eAAe,EAC7B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,eAAe,EAC7B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,CACF,GAAG,EAAE,KAAK,GAAG,IAAI,EACjB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,KACxB,IAAI,SAMI,cAAc,OAAO,cAAc,UAyBjD;;;;;;AAED,wBAA4D"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.middleware = exports.verifyMessage = exports.verifyCallback = void 0;
7
+ /*
8
+ * Created by kgrube on 4/3/2019
9
+ */
10
+ const axios_1 = __importDefault(require("axios"));
11
+ const crypto_1 = __importDefault(require("crypto"));
12
+ /**
13
+ * Load signing key and verify the message
14
+ * @param callbackBody -
15
+ * @param contentSignature - base64 content signature req.headers[x-content-signature]
16
+ * @returns verifies callback signature
17
+ * @public
18
+ */
19
+ function verifyCallback(callbackBody, contentSignature) {
20
+ return new Promise((resolve, reject) => {
21
+ if (!callbackBody || !contentSignature) {
22
+ throw new Error('callbackBody and contentSignature must be defined.');
23
+ }
24
+ const key_url = callbackBody.Metadata && callbackBody.Metadata.key_url;
25
+ axios_1.default
26
+ .get(key_url)
27
+ .then((response) => {
28
+ const body = response.data;
29
+ try {
30
+ const parsed = JSON.parse(body);
31
+ const signingKey = parsed.signing_key;
32
+ return resolve(verifyMessage(callbackBody, contentSignature, signingKey));
33
+ }
34
+ catch (parseErr) {
35
+ return reject(parseErr);
36
+ }
37
+ })
38
+ .catch((err) => reject(err));
39
+ });
40
+ }
41
+ exports.verifyCallback = verifyCallback;
42
+ /**
43
+ * Validate a callback body against signed key
44
+ * @param callbackBody -
45
+ * @param contentSignature -
46
+ * @param signingKey -
47
+ * @returns boolean if verified
48
+ * @public
49
+ */
50
+ function verifyMessage(callbackBody, contentSignature, signingKey) {
51
+ const hash = crypto_1.default.createHash('sha256').update(signingKey).digest();
52
+ const hmac = crypto_1.default.createHmac('sha256', hash);
53
+ return contentSignature === hmac.update(JSON.stringify(callbackBody)).digest('base64');
54
+ }
55
+ exports.verifyMessage = verifyMessage;
56
+ /**
57
+ *
58
+ * @example
59
+ * Express style middleware
60
+ * ```
61
+ * app.post('/your/api', cw.utils.middleware((err, req, res, verified, payload) => {
62
+ * if (err) {
63
+ * //handle error
64
+ * res.status(500).end();
65
+ * } else if (!verified) {
66
+ * // send 403 on verification failure
67
+ * res.status(403).end();
68
+ * } else {
69
+ * res.status(200).end()
70
+ * }
71
+ * const {action, id} = req.query;
72
+ * // do something with the payload
73
+ * }));
74
+ * ```
75
+ *
76
+ * @param cb - callback(err, req, res, verified, payload)
77
+ * @public
78
+ */
79
+ function middleware(cb) {
80
+ if (!cb || typeof cb !== 'function') {
81
+ throw new Error('callback must be a function.');
82
+ }
83
+ return (req, res) => {
84
+ if (!req || !req.body || !req.body.Metadata) {
85
+ return cb(new Error('callback payload is invalid.'), req, res, false, undefined);
86
+ }
87
+ const contentSignature = req.headers['x-content-signature'];
88
+ const callbackBody = req.body;
89
+ let parsedEntity;
90
+ try {
91
+ parsedEntity = JSON.parse(callbackBody.Entity);
92
+ }
93
+ catch (parseErr) {
94
+ if (parseErr instanceof Error) {
95
+ return cb(parseErr, req, res, false, undefined);
96
+ }
97
+ }
98
+ verifyCallback(callbackBody, contentSignature)
99
+ .then((verified) => {
100
+ return cb(null, req, res, verified, Object.assign(callbackBody, { Entity: parsedEntity }));
101
+ })
102
+ .catch((err) => {
103
+ return cb(err, req, res, false, undefined);
104
+ });
105
+ };
106
+ }
107
+ exports.middleware = middleware;
108
+ exports.default = { middleware, verifyCallback, verifyMessage };
109
+ //# sourceMappingURL=Callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callback.js","sourceRoot":"","sources":["../../src/utils/Callback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export declare type PromiseLikeFunction = (() => Promise<unknown>) | Promise<unknown> | (() => unknown) | {
2
+ then: () => void;
3
+ };
4
+ /**
5
+ * @public
6
+ */
7
+ export declare type SeriesOptions = {
8
+ series: Array<PromiseLikeFunction>;
9
+ concurrent?: number;
10
+ delay?: number;
11
+ };
12
+ /**
13
+ *
14
+ * @param options - options object
15
+ * @param options.series - functions or promises to be executed
16
+ * @param options.concurrent - number of concurrent requests
17
+ * @param options.delay - number of ms between request groups
18
+ * @returns array of promise results
19
+ * @public
20
+ *
21
+ * @example
22
+ * ```javascript
23
+ * const results = await Series.all({
24
+ * series: [
25
+ * () => true,
26
+ * new Promise((resolve) => resolve(true),
27
+ * () => new Promise((resolve) => resolve(true)
28
+ * ],
29
+ * concurrent: 3,
30
+ * delay: 10,
31
+ * })
32
+ * ```
33
+ */
34
+ declare function all({ series, concurrent, delay }: SeriesOptions): Promise<Array<unknown>>;
35
+ /**
36
+ * @public
37
+ */
38
+ declare const Series: {
39
+ all: typeof all;
40
+ };
41
+ export default Series;
42
+ //# sourceMappingURL=Series.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Series.d.ts","sourceRoot":"","sources":["../../src/utils/Series.ts"],"names":[],"mappings":"AAMA,oBAAY,mBAAmB,GAC3B,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GACxB,OAAO,CAAC,OAAO,CAAC,GAChB,CAAC,MAAM,OAAO,CAAC,GACf;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAExB;;GAEG;AACH,oBAAY,aAAa,GAAG;IAC1B,MAAM,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,GAAG,CAAC,EAAE,MAAW,EAAE,UAAc,EAAE,KAAS,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAsC/F;AAED;;GAEG;AACH,QAAA,MAAM,MAAM;;CAAU,CAAA;AAEtB,eAAe,MAAM,CAAA"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Created by kgrube on 4/3/2019
5
+ */
6
+ const util_1 = require("util");
7
+ const isPromise = util_1.types.isPromise;
8
+ /**
9
+ *
10
+ * @param options - options object
11
+ * @param options.series - functions or promises to be executed
12
+ * @param options.concurrent - number of concurrent requests
13
+ * @param options.delay - number of ms between request groups
14
+ * @returns array of promise results
15
+ * @public
16
+ *
17
+ * @example
18
+ * ```javascript
19
+ * const results = await Series.all({
20
+ * series: [
21
+ * () => true,
22
+ * new Promise((resolve) => resolve(true),
23
+ * () => new Promise((resolve) => resolve(true)
24
+ * ],
25
+ * concurrent: 3,
26
+ * delay: 10,
27
+ * })
28
+ * ```
29
+ */
30
+ function all({ series = [], concurrent = 1, delay = 0 }) {
31
+ const promises = series.slice();
32
+ const concurrency = concurrent;
33
+ let results = null;
34
+ return new Promise((resolve, reject) => {
35
+ function next(result) {
36
+ const concurrentPromises = [];
37
+ if (!results) {
38
+ results = [];
39
+ }
40
+ else {
41
+ results = results.concat(result);
42
+ }
43
+ if (promises.length) {
44
+ while (concurrentPromises.length < concurrency && promises.length) {
45
+ let promise = promises.shift();
46
+ if (typeof promise === 'function') {
47
+ promise = promise();
48
+ }
49
+ if (!promise || !isPromise(promise)) {
50
+ promise = Promise.resolve(promise);
51
+ }
52
+ concurrentPromises.push(promise);
53
+ }
54
+ setTimeout(() => Promise.all(concurrentPromises).then(next).catch(reject), delay);
55
+ }
56
+ else {
57
+ resolve(results);
58
+ }
59
+ }
60
+ next();
61
+ });
62
+ }
63
+ /**
64
+ * @public
65
+ */
66
+ const Series = { all };
67
+ exports.default = Series;
68
+ //# sourceMappingURL=Series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Series.js","sourceRoot":"","sources":["../../src/utils/Series.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,+BAA4B;AAC5B,MAAM,SAAS,GAAG,YAAK,CAAC,SAAS,CAAA;AAiBjC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAiB;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAC/B,MAAM,WAAW,GAAG,UAAU,CAAA;IAC9B,IAAI,OAAO,GAA0B,IAAI,CAAA;IAEzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,SAAS,IAAI,CAAC,MAAgB;YAC5B,MAAM,kBAAkB,GAA0B,EAAE,CAAA;YAEpD,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAG,EAAE,CAAA;aACb;iBAAM;gBACL,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;aACjC;YAED,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,OAAO,kBAAkB,CAAC,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACjE,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;oBAE9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,OAAO,GAAwB,OAAO,EAAE,CAAA;qBACzC;oBAED,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;wBACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;qBACnC;oBAED,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACjC;gBAED,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;aAClF;iBAAM;gBACL,OAAO,CAAC,OAAO,CAAC,CAAA;aACjB;QACH,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAA;AAEtB,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type * as SeriesTypes from './Series';
2
+ import type * as CallbackTypes from './Callback';
3
+ import Series from './Series';
4
+ import Callback from './Callback';
5
+ export type { SeriesTypes, CallbackTypes };
6
+ export { Series, Callback };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,KAAK,aAAa,MAAM,YAAY,CAAA;AAChD,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,QAAQ,MAAM,YAAY,CAAA;AAEjC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Callback = exports.Series = void 0;
7
+ const Series_1 = __importDefault(require("./Series"));
8
+ exports.Series = Series_1.default;
9
+ const Callback_1 = __importDefault(require("./Callback"));
10
+ exports.Callback = Callback_1.default;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,sDAA6B;AAIpB,iBAJF,gBAAM,CAIE;AAHf,0DAAiC;AAGhB,mBAHV,kBAAQ,CAGU"}
package/package.json CHANGED
@@ -1,14 +1,29 @@
1
1
  {
2
2
  "name": "connectwise-rest",
3
- "version": "0.25.1",
4
- "description": "A nodejs module for interacting with the ConnectWise REST API.",
5
- "main": "index.js",
3
+ "version": "1.0.2",
4
+ "description": "A nodejs module for interacting with the ConnectWise Manage and Automate REST APIs.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
6
7
  "scripts": {
7
- "test": "nyc mocha",
8
- "jsdoc": "jsdoc src -r -c ./docs/jsdoc.json -d docs",
9
- "jsdocmd": "jsdoc2md src/**/*.js > doc.md",
10
- "eslint": "eslint --ext .js src/",
11
- "coveralls": "nyc report --reporter=text-lcov | coveralls"
8
+ "clean:docs": "npx rimraf docs/",
9
+ "clean:generator": "npx rimraf generator/Manage/*.ts generator/Automate/*.ts",
10
+ "clean:dist": "npx rimraf dist/",
11
+ "clean:src": "npx rimraf src/Manage/ & npx rimraf src/Automate/",
12
+ "clean": "npm run clean:dist & npm run clean:generator & npm run clean:src",
13
+ "test": "npx nyc mocha -r ts-node/register",
14
+ "pregenerate": "npm run clean",
15
+ "generate:automate": "node generator/automate-generator.js",
16
+ "generate:manage": "node generator/manage-generator.js",
17
+ "generate": "npm run generate:automate & npm run generate:manage",
18
+ "build": "npx tsc",
19
+ "postbuild": "npm run lint",
20
+ "lint": "npx eslint -c .eslintrc --fix",
21
+ "coveralls": "npx nyc report --reporter=text-lcov > ./.nyc_output/lcov.info",
22
+ "pretypedocs": "npm run clean:docs",
23
+ "docs": "npx typedoc src/index.ts",
24
+ "preapidocumenter": "npx api-extractor run --local --verbose",
25
+ "apidocumenter": "npx api-documenter markdown --input-folder temp --output-folder docs",
26
+ "gh-pages": "npx gh-pages -d docs"
12
27
  },
13
28
  "repository": {
14
29
  "type": "git",
@@ -16,6 +31,8 @@
16
31
  },
17
32
  "keywords": [
18
33
  "connectwise",
34
+ "connectwise manage",
35
+ "connectwise automate",
19
36
  "rest",
20
37
  "api",
21
38
  "nodejs"
@@ -30,22 +47,36 @@
30
47
  },
31
48
  "homepage": "https://github.com/covenanttechnologysolutions/connectwise-rest",
32
49
  "dependencies": {
33
- "promise-retry": "^1.1.1",
34
- "request": "^2.88.2"
50
+ "axios": "^0.26.1",
51
+ "promise-retry": "^2.0.1"
35
52
  },
36
53
  "devDependencies": {
37
- "coveralls": "^3.1.0",
38
- "dotenv": "^6.2.0",
39
- "eslint": "^8.2.0",
40
- "jsdoc": "^3.6.4",
41
- "jsdoc-to-markdown": "^5.0.3",
42
- "lodash": "^4.17.15",
43
- "mocha": "^9.1.3",
54
+ "@microsoft/api-documenter": "^7.16.0",
55
+ "@microsoft/api-extractor": "^7.19.5",
56
+ "@types/eslint": "^8.4.1",
57
+ "@types/mocha": "^9.1.0",
58
+ "@types/node": "^17.0.21",
59
+ "@types/promise-retry": "^1.1.3",
60
+ "@typescript-eslint/eslint-plugin": "^5.15.0",
61
+ "@typescript-eslint/parser": "^5.15.0",
62
+ "coveralls": "^3.1.1",
63
+ "dotenv": "^16.0.0",
64
+ "eslint": "^8.11.0",
65
+ "eslint-config-prettier": "^8.5.0",
66
+ "eslint-plugin-prettier": "^4.0.0",
67
+ "gh-pages": "^3.2.3",
68
+ "lodash": "^4.17.21",
69
+ "mocha": "^9.2.2",
44
70
  "mocha-lcov-reporter": "^1.3.0",
45
71
  "nyc": "^15.1.0",
46
- "should": "^13.2.3"
72
+ "openapi-typescript": "^5.2.0",
73
+ "prettier": "^2.6.0",
74
+ "rimraf": "^3.0.2",
75
+ "ts-node": "^10.7.0",
76
+ "typedoc": "^0.22.13",
77
+ "typescript": "^4.6.2"
47
78
  },
48
79
  "engines": {
49
- "node": ">=6"
80
+ "node": ">=12"
50
81
  }
51
82
  }