tm1npm 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 (451) hide show
  1. package/.env.example +16 -0
  2. package/.eslintrc.js +28 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. package/.github/ISSUE_TEMPLATE/question.md +24 -0
  6. package/.github/workflows/publish-npm.yml +53 -0
  7. package/.github/workflows/test-on-tag.yml +172 -0
  8. package/DEVELOPMENT_GUIDE.md +587 -0
  9. package/LICENSE +21 -0
  10. package/README.md +580 -0
  11. package/jest.ci.config.js +83 -0
  12. package/jest.config.js +68 -0
  13. package/lib/exceptions/TM1Exception.d.ts +17 -0
  14. package/lib/exceptions/TM1Exception.d.ts.map +1 -0
  15. package/lib/exceptions/TM1Exception.js +36 -0
  16. package/lib/exceptions/TM1RestException.d.ts +10 -0
  17. package/lib/exceptions/TM1RestException.d.ts.map +1 -0
  18. package/lib/exceptions/TM1RestException.js +17 -0
  19. package/lib/exceptions/TM1TimeoutException.d.ts +9 -0
  20. package/lib/exceptions/TM1TimeoutException.d.ts.map +1 -0
  21. package/lib/exceptions/TM1TimeoutException.js +16 -0
  22. package/lib/index.d.ts +41 -0
  23. package/lib/index.d.ts.map +1 -0
  24. package/lib/index.js +132 -0
  25. package/lib/objects/Annotation.d.ts +36 -0
  26. package/lib/objects/Annotation.d.ts.map +1 -0
  27. package/lib/objects/Annotation.js +134 -0
  28. package/lib/objects/Application.d.ts +67 -0
  29. package/lib/objects/Application.d.ts.map +1 -0
  30. package/lib/objects/Application.js +125 -0
  31. package/lib/objects/Axis.d.ts +36 -0
  32. package/lib/objects/Axis.d.ts.map +1 -0
  33. package/lib/objects/Axis.js +103 -0
  34. package/lib/objects/Chore.d.ts +43 -0
  35. package/lib/objects/Chore.d.ts.map +1 -0
  36. package/lib/objects/Chore.js +129 -0
  37. package/lib/objects/ChoreFrequency.d.ts +23 -0
  38. package/lib/objects/ChoreFrequency.d.ts.map +1 -0
  39. package/lib/objects/ChoreFrequency.js +61 -0
  40. package/lib/objects/ChoreStartTime.d.ts +15 -0
  41. package/lib/objects/ChoreStartTime.d.ts.map +1 -0
  42. package/lib/objects/ChoreStartTime.js +85 -0
  43. package/lib/objects/ChoreTask.d.ts +28 -0
  44. package/lib/objects/ChoreTask.d.ts.map +1 -0
  45. package/lib/objects/ChoreTask.js +66 -0
  46. package/lib/objects/Cube.d.ts +26 -0
  47. package/lib/objects/Cube.d.ts.map +1 -0
  48. package/lib/objects/Cube.js +109 -0
  49. package/lib/objects/Dimension.d.ts +26 -0
  50. package/lib/objects/Dimension.d.ts.map +1 -0
  51. package/lib/objects/Dimension.js +86 -0
  52. package/lib/objects/Element.d.ts +35 -0
  53. package/lib/objects/Element.d.ts.map +1 -0
  54. package/lib/objects/Element.js +115 -0
  55. package/lib/objects/ElementAttribute.d.ts +28 -0
  56. package/lib/objects/ElementAttribute.d.ts.map +1 -0
  57. package/lib/objects/ElementAttribute.js +97 -0
  58. package/lib/objects/Git.d.ts +21 -0
  59. package/lib/objects/Git.d.ts.map +1 -0
  60. package/lib/objects/Git.js +49 -0
  61. package/lib/objects/GitCommit.d.ts +12 -0
  62. package/lib/objects/GitCommit.d.ts.map +1 -0
  63. package/lib/objects/GitCommit.js +26 -0
  64. package/lib/objects/GitPlan.d.ts +35 -0
  65. package/lib/objects/GitPlan.d.ts.map +1 -0
  66. package/lib/objects/GitPlan.js +78 -0
  67. package/lib/objects/GitRemote.d.ts +12 -0
  68. package/lib/objects/GitRemote.d.ts.map +1 -0
  69. package/lib/objects/GitRemote.js +26 -0
  70. package/lib/objects/Hierarchy.d.ts +47 -0
  71. package/lib/objects/Hierarchy.d.ts.map +1 -0
  72. package/lib/objects/Hierarchy.js +165 -0
  73. package/lib/objects/MDXView.d.ts +19 -0
  74. package/lib/objects/MDXView.d.ts.map +1 -0
  75. package/lib/objects/MDXView.js +67 -0
  76. package/lib/objects/NativeView.d.ts +39 -0
  77. package/lib/objects/NativeView.d.ts.map +1 -0
  78. package/lib/objects/NativeView.js +209 -0
  79. package/lib/objects/Process.d.ts +70 -0
  80. package/lib/objects/Process.d.ts.map +1 -0
  81. package/lib/objects/Process.js +210 -0
  82. package/lib/objects/ProcessDebugBreakpoint.d.ts +60 -0
  83. package/lib/objects/ProcessDebugBreakpoint.d.ts.map +1 -0
  84. package/lib/objects/ProcessDebugBreakpoint.js +168 -0
  85. package/lib/objects/ProcessParameter.d.ts +23 -0
  86. package/lib/objects/ProcessParameter.d.ts.map +1 -0
  87. package/lib/objects/ProcessParameter.js +55 -0
  88. package/lib/objects/ProcessVariable.d.ts +26 -0
  89. package/lib/objects/ProcessVariable.d.ts.map +1 -0
  90. package/lib/objects/ProcessVariable.js +63 -0
  91. package/lib/objects/Rules.d.ts +30 -0
  92. package/lib/objects/Rules.d.ts.map +1 -0
  93. package/lib/objects/Rules.js +103 -0
  94. package/lib/objects/Sandbox.d.ts +21 -0
  95. package/lib/objects/Sandbox.d.ts.map +1 -0
  96. package/lib/objects/Sandbox.js +64 -0
  97. package/lib/objects/Server.d.ts +27 -0
  98. package/lib/objects/Server.d.ts.map +1 -0
  99. package/lib/objects/Server.js +26 -0
  100. package/lib/objects/Subset.d.ts +44 -0
  101. package/lib/objects/Subset.d.ts.map +1 -0
  102. package/lib/objects/Subset.js +222 -0
  103. package/lib/objects/TM1Object.d.ts +8 -0
  104. package/lib/objects/TM1Object.d.ts.map +1 -0
  105. package/lib/objects/TM1Object.js +17 -0
  106. package/lib/objects/TM1Project.d.ts +74 -0
  107. package/lib/objects/TM1Project.d.ts.map +1 -0
  108. package/lib/objects/TM1Project.js +409 -0
  109. package/lib/objects/User.d.ts +42 -0
  110. package/lib/objects/User.d.ts.map +1 -0
  111. package/lib/objects/User.js +157 -0
  112. package/lib/objects/View.d.ts +19 -0
  113. package/lib/objects/View.d.ts.map +1 -0
  114. package/lib/objects/View.js +33 -0
  115. package/lib/objects/index.d.ts +30 -0
  116. package/lib/objects/index.d.ts.map +1 -0
  117. package/lib/objects/index.js +68 -0
  118. package/lib/services/AnnotationService.d.ts +17 -0
  119. package/lib/services/AnnotationService.d.ts.map +1 -0
  120. package/lib/services/AnnotationService.js +91 -0
  121. package/lib/services/ApplicationService.d.ts +21 -0
  122. package/lib/services/ApplicationService.d.ts.map +1 -0
  123. package/lib/services/ApplicationService.js +227 -0
  124. package/lib/services/AuditLogService.d.ts +15 -0
  125. package/lib/services/AuditLogService.d.ts.map +1 -0
  126. package/lib/services/AuditLogService.js +153 -0
  127. package/lib/services/CellService.d.ts +191 -0
  128. package/lib/services/CellService.d.ts.map +1 -0
  129. package/lib/services/CellService.js +597 -0
  130. package/lib/services/ChoreService.d.ts +24 -0
  131. package/lib/services/ChoreService.d.ts.map +1 -0
  132. package/lib/services/ChoreService.js +219 -0
  133. package/lib/services/ConfigurationService.d.ts +18 -0
  134. package/lib/services/ConfigurationService.d.ts.map +1 -0
  135. package/lib/services/ConfigurationService.js +60 -0
  136. package/lib/services/CubeService.d.ts +43 -0
  137. package/lib/services/CubeService.d.ts.map +1 -0
  138. package/lib/services/CubeService.js +296 -0
  139. package/lib/services/DimensionService.d.ts +21 -0
  140. package/lib/services/DimensionService.d.ts.map +1 -0
  141. package/lib/services/DimensionService.js +146 -0
  142. package/lib/services/ElementService.d.ts +132 -0
  143. package/lib/services/ElementService.d.ts.map +1 -0
  144. package/lib/services/ElementService.js +579 -0
  145. package/lib/services/FileService.d.ts +14 -0
  146. package/lib/services/FileService.d.ts.map +1 -0
  147. package/lib/services/FileService.js +65 -0
  148. package/lib/services/GitService.d.ts +23 -0
  149. package/lib/services/GitService.d.ts.map +1 -0
  150. package/lib/services/GitService.js +225 -0
  151. package/lib/services/HierarchyService.d.ts +32 -0
  152. package/lib/services/HierarchyService.d.ts.map +1 -0
  153. package/lib/services/HierarchyService.js +235 -0
  154. package/lib/services/JobService.d.ts +13 -0
  155. package/lib/services/JobService.d.ts.map +1 -0
  156. package/lib/services/JobService.js +83 -0
  157. package/lib/services/LoggerService.d.ts +16 -0
  158. package/lib/services/LoggerService.d.ts.map +1 -0
  159. package/lib/services/LoggerService.js +101 -0
  160. package/lib/services/ManageService.d.ts +47 -0
  161. package/lib/services/ManageService.d.ts.map +1 -0
  162. package/lib/services/ManageService.js +221 -0
  163. package/lib/services/MessageLogService.d.ts +13 -0
  164. package/lib/services/MessageLogService.d.ts.map +1 -0
  165. package/lib/services/MessageLogService.js +175 -0
  166. package/lib/services/MonitoringService.d.ts +29 -0
  167. package/lib/services/MonitoringService.d.ts.map +1 -0
  168. package/lib/services/MonitoringService.js +86 -0
  169. package/lib/services/ObjectService.d.ts +8 -0
  170. package/lib/services/ObjectService.d.ts.map +1 -0
  171. package/lib/services/ObjectService.js +20 -0
  172. package/lib/services/PowerBiService.d.ts +13 -0
  173. package/lib/services/PowerBiService.d.ts.map +1 -0
  174. package/lib/services/PowerBiService.js +52 -0
  175. package/lib/services/ProcessService.d.ts +57 -0
  176. package/lib/services/ProcessService.d.ts.map +1 -0
  177. package/lib/services/ProcessService.js +499 -0
  178. package/lib/services/RestService.d.ts +68 -0
  179. package/lib/services/RestService.d.ts.map +1 -0
  180. package/lib/services/RestService.js +166 -0
  181. package/lib/services/SandboxService.d.ts +28 -0
  182. package/lib/services/SandboxService.d.ts.map +1 -0
  183. package/lib/services/SandboxService.js +197 -0
  184. package/lib/services/SecurityService.d.ts +33 -0
  185. package/lib/services/SecurityService.d.ts.map +1 -0
  186. package/lib/services/SecurityService.js +249 -0
  187. package/lib/services/ServerService.d.ts +55 -0
  188. package/lib/services/ServerService.d.ts.map +1 -0
  189. package/lib/services/ServerService.js +247 -0
  190. package/lib/services/SessionService.d.ts +15 -0
  191. package/lib/services/SessionService.d.ts.map +1 -0
  192. package/lib/services/SessionService.js +68 -0
  193. package/lib/services/SubsetService.d.ts +13 -0
  194. package/lib/services/SubsetService.d.ts.map +1 -0
  195. package/lib/services/SubsetService.js +46 -0
  196. package/lib/services/TM1Service.d.ts +39 -0
  197. package/lib/services/TM1Service.d.ts.map +1 -0
  198. package/lib/services/TM1Service.js +94 -0
  199. package/lib/services/ThreadService.d.ts +15 -0
  200. package/lib/services/ThreadService.d.ts.map +1 -0
  201. package/lib/services/ThreadService.js +104 -0
  202. package/lib/services/TransactionLogService.d.ts +11 -0
  203. package/lib/services/TransactionLogService.d.ts.map +1 -0
  204. package/lib/services/TransactionLogService.js +124 -0
  205. package/lib/services/UserService.d.ts +14 -0
  206. package/lib/services/UserService.d.ts.map +1 -0
  207. package/lib/services/UserService.js +103 -0
  208. package/lib/services/ViewService.d.ts +30 -0
  209. package/lib/services/ViewService.d.ts.map +1 -0
  210. package/lib/services/ViewService.js +331 -0
  211. package/lib/services/index.d.ts +26 -0
  212. package/lib/services/index.d.ts.map +1 -0
  213. package/lib/services/index.js +56 -0
  214. package/lib/tests/100PercentParityCheck.test.d.ts +6 -0
  215. package/lib/tests/100PercentParityCheck.test.d.ts.map +1 -0
  216. package/lib/tests/100PercentParityCheck.test.js +143 -0
  217. package/lib/tests/basic.test.d.ts +6 -0
  218. package/lib/tests/basic.test.d.ts.map +1 -0
  219. package/lib/tests/basic.test.js +52 -0
  220. package/lib/tests/cellService.test.d.ts +6 -0
  221. package/lib/tests/cellService.test.d.ts.map +1 -0
  222. package/lib/tests/cellService.test.js +311 -0
  223. package/lib/tests/ciSetup.d.ts +6 -0
  224. package/lib/tests/ciSetup.d.ts.map +1 -0
  225. package/lib/tests/ciSetup.js +23 -0
  226. package/lib/tests/comprehensive.service.test.d.ts +6 -0
  227. package/lib/tests/comprehensive.service.test.d.ts.map +1 -0
  228. package/lib/tests/comprehensive.service.test.js +507 -0
  229. package/lib/tests/connection.test.d.ts +6 -0
  230. package/lib/tests/connection.test.d.ts.map +1 -0
  231. package/lib/tests/connection.test.js +89 -0
  232. package/lib/tests/cubeService.test.d.ts +6 -0
  233. package/lib/tests/cubeService.test.d.ts.map +1 -0
  234. package/lib/tests/cubeService.test.js +368 -0
  235. package/lib/tests/dimensionService.comprehensive.test.d.ts +7 -0
  236. package/lib/tests/dimensionService.comprehensive.test.d.ts.map +1 -0
  237. package/lib/tests/dimensionService.comprehensive.test.js +614 -0
  238. package/lib/tests/dimensionService.test.d.ts +6 -0
  239. package/lib/tests/dimensionService.test.d.ts.map +1 -0
  240. package/lib/tests/dimensionService.test.js +293 -0
  241. package/lib/tests/edgeCases.test.d.ts +6 -0
  242. package/lib/tests/edgeCases.test.d.ts.map +1 -0
  243. package/lib/tests/edgeCases.test.js +301 -0
  244. package/lib/tests/elementService.comprehensive.test.d.ts +7 -0
  245. package/lib/tests/elementService.comprehensive.test.d.ts.map +1 -0
  246. package/lib/tests/elementService.comprehensive.test.js +846 -0
  247. package/lib/tests/elementService.test.d.ts +6 -0
  248. package/lib/tests/elementService.test.d.ts.map +1 -0
  249. package/lib/tests/elementService.test.js +350 -0
  250. package/lib/tests/enhancedCellService.test.d.ts +2 -0
  251. package/lib/tests/enhancedCellService.test.d.ts.map +1 -0
  252. package/lib/tests/enhancedCellService.test.js +152 -0
  253. package/lib/tests/enhancedCubeService.test.d.ts +2 -0
  254. package/lib/tests/enhancedCubeService.test.d.ts.map +1 -0
  255. package/lib/tests/enhancedCubeService.test.js +246 -0
  256. package/lib/tests/enhancedElementService.test.d.ts +2 -0
  257. package/lib/tests/enhancedElementService.test.d.ts.map +1 -0
  258. package/lib/tests/enhancedElementService.test.js +199 -0
  259. package/lib/tests/enhancedViewService.test.d.ts +2 -0
  260. package/lib/tests/enhancedViewService.test.d.ts.map +1 -0
  261. package/lib/tests/enhancedViewService.test.js +260 -0
  262. package/lib/tests/errorHandling.test.d.ts +6 -0
  263. package/lib/tests/errorHandling.test.d.ts.map +1 -0
  264. package/lib/tests/errorHandling.test.js +227 -0
  265. package/lib/tests/exceptions.test.d.ts +7 -0
  266. package/lib/tests/exceptions.test.d.ts.map +1 -0
  267. package/lib/tests/exceptions.test.js +257 -0
  268. package/lib/tests/hierarchyService.test.d.ts +6 -0
  269. package/lib/tests/hierarchyService.test.d.ts.map +1 -0
  270. package/lib/tests/hierarchyService.test.js +294 -0
  271. package/lib/tests/index.test.d.ts +6 -0
  272. package/lib/tests/index.test.d.ts.map +1 -0
  273. package/lib/tests/index.test.js +346 -0
  274. package/lib/tests/integration.test.d.ts +6 -0
  275. package/lib/tests/integration.test.d.ts.map +1 -0
  276. package/lib/tests/integration.test.js +302 -0
  277. package/lib/tests/integrationTests.test.d.ts +2 -0
  278. package/lib/tests/integrationTests.test.d.ts.map +1 -0
  279. package/lib/tests/integrationTests.test.js +252 -0
  280. package/lib/tests/mdx.advanced.test.d.ts +6 -0
  281. package/lib/tests/mdx.advanced.test.d.ts.map +1 -0
  282. package/lib/tests/mdx.advanced.test.js +437 -0
  283. package/lib/tests/objects.improved.test.d.ts +7 -0
  284. package/lib/tests/objects.improved.test.d.ts.map +1 -0
  285. package/lib/tests/objects.improved.test.js +302 -0
  286. package/lib/tests/performance.test.d.ts +6 -0
  287. package/lib/tests/performance.test.d.ts.map +1 -0
  288. package/lib/tests/performance.test.js +264 -0
  289. package/lib/tests/processService.comprehensive.test.d.ts +7 -0
  290. package/lib/tests/processService.comprehensive.test.d.ts.map +1 -0
  291. package/lib/tests/processService.comprehensive.test.js +656 -0
  292. package/lib/tests/processService.test.d.ts +6 -0
  293. package/lib/tests/processService.test.d.ts.map +1 -0
  294. package/lib/tests/processService.test.js +322 -0
  295. package/lib/tests/restService.test.d.ts +6 -0
  296. package/lib/tests/restService.test.d.ts.map +1 -0
  297. package/lib/tests/restService.test.js +177 -0
  298. package/lib/tests/security.advanced.test.d.ts +6 -0
  299. package/lib/tests/security.advanced.test.d.ts.map +1 -0
  300. package/lib/tests/security.advanced.test.js +407 -0
  301. package/lib/tests/security.test.d.ts +6 -0
  302. package/lib/tests/security.test.d.ts.map +1 -0
  303. package/lib/tests/security.test.js +204 -0
  304. package/lib/tests/securityService.comprehensive.test.d.ts +7 -0
  305. package/lib/tests/securityService.comprehensive.test.d.ts.map +1 -0
  306. package/lib/tests/securityService.comprehensive.test.js +457 -0
  307. package/lib/tests/setup.d.ts +4 -0
  308. package/lib/tests/setup.d.ts.map +1 -0
  309. package/lib/tests/setup.js +40 -0
  310. package/lib/tests/simpleCoverage.test.d.ts +6 -0
  311. package/lib/tests/simpleCoverage.test.d.ts.map +1 -0
  312. package/lib/tests/simpleCoverage.test.js +236 -0
  313. package/lib/tests/stress.performance.test.d.ts +6 -0
  314. package/lib/tests/stress.performance.test.d.ts.map +1 -0
  315. package/lib/tests/stress.performance.test.js +423 -0
  316. package/lib/tests/subsetService.test.d.ts +6 -0
  317. package/lib/tests/subsetService.test.d.ts.map +1 -0
  318. package/lib/tests/subsetService.test.js +271 -0
  319. package/lib/tests/testConfig.d.ts +18 -0
  320. package/lib/tests/testConfig.d.ts.map +1 -0
  321. package/lib/tests/testConfig.js +38 -0
  322. package/lib/tests/testUtils.d.ts +9 -0
  323. package/lib/tests/testUtils.d.ts.map +1 -0
  324. package/lib/tests/testUtils.js +100 -0
  325. package/lib/tests/tm1Service.test.d.ts +7 -0
  326. package/lib/tests/tm1Service.test.d.ts.map +1 -0
  327. package/lib/tests/tm1Service.test.js +290 -0
  328. package/lib/tests/viewService.test.d.ts +6 -0
  329. package/lib/tests/viewService.test.d.ts.map +1 -0
  330. package/lib/tests/viewService.test.js +240 -0
  331. package/lib/utils/Utils.d.ts +90 -0
  332. package/lib/utils/Utils.d.ts.map +1 -0
  333. package/lib/utils/Utils.js +379 -0
  334. package/package.json +81 -0
  335. package/run-all-tests.js +296 -0
  336. package/src/exceptions/TM1Exception.ts +38 -0
  337. package/src/exceptions/TM1RestException.ts +17 -0
  338. package/src/exceptions/TM1TimeoutException.ts +15 -0
  339. package/src/index.ts +94 -0
  340. package/src/objects/Annotation.ts +194 -0
  341. package/src/objects/Application.ts +146 -0
  342. package/src/objects/Axis.ts +149 -0
  343. package/src/objects/Chore.ts +174 -0
  344. package/src/objects/ChoreFrequency.ts +83 -0
  345. package/src/objects/ChoreStartTime.ts +111 -0
  346. package/src/objects/ChoreTask.ts +92 -0
  347. package/src/objects/Cube.ts +125 -0
  348. package/src/objects/Dimension.ts +107 -0
  349. package/src/objects/Element.ts +153 -0
  350. package/src/objects/ElementAttribute.ts +115 -0
  351. package/src/objects/Git.ts +86 -0
  352. package/src/objects/GitCommit.ts +31 -0
  353. package/src/objects/GitPlan.ts +121 -0
  354. package/src/objects/GitRemote.ts +31 -0
  355. package/src/objects/Hierarchy.ts +229 -0
  356. package/src/objects/MDXView.ts +91 -0
  357. package/src/objects/NativeView.ts +268 -0
  358. package/src/objects/Process.ts +320 -0
  359. package/src/objects/ProcessDebugBreakpoint.ts +239 -0
  360. package/src/objects/ProcessParameter.ts +76 -0
  361. package/src/objects/ProcessVariable.ts +89 -0
  362. package/src/objects/Rules.ts +117 -0
  363. package/src/objects/Sandbox.ts +90 -0
  364. package/src/objects/Server.ts +45 -0
  365. package/src/objects/Subset.ts +323 -0
  366. package/src/objects/TM1Object.ts +17 -0
  367. package/src/objects/TM1Project.ts +587 -0
  368. package/src/objects/User.ts +198 -0
  369. package/src/objects/View.ts +43 -0
  370. package/src/objects/index.ts +36 -0
  371. package/src/services/AnnotationService.ts +107 -0
  372. package/src/services/ApplicationService.ts +279 -0
  373. package/src/services/AuditLogService.ts +172 -0
  374. package/src/services/CellService.ts +814 -0
  375. package/src/services/ChoreService.ts +219 -0
  376. package/src/services/ConfigurationService.ts +69 -0
  377. package/src/services/CubeService.ts +338 -0
  378. package/src/services/DimensionService.ts +168 -0
  379. package/src/services/ElementService.ts +966 -0
  380. package/src/services/FileService.ts +67 -0
  381. package/src/services/GitService.ts +324 -0
  382. package/src/services/HierarchyService.ts +284 -0
  383. package/src/services/JobService.ts +59 -0
  384. package/src/services/LoggerService.ts +118 -0
  385. package/src/services/ManageService.ts +322 -0
  386. package/src/services/MessageLogService.ts +211 -0
  387. package/src/services/MonitoringService.ts +105 -0
  388. package/src/services/ObjectService.ts +21 -0
  389. package/src/services/PowerBiService.ts +85 -0
  390. package/src/services/ProcessService.ts +589 -0
  391. package/src/services/RestService.ts +224 -0
  392. package/src/services/SandboxService.ts +217 -0
  393. package/src/services/SecurityService.ts +284 -0
  394. package/src/services/ServerService.ts +313 -0
  395. package/src/services/SessionService.ts +81 -0
  396. package/src/services/SubsetService.ts +52 -0
  397. package/src/services/TM1Service.ts +133 -0
  398. package/src/services/ThreadService.ts +83 -0
  399. package/src/services/TransactionLogService.ts +148 -0
  400. package/src/services/UserService.ts +77 -0
  401. package/src/services/ViewService.ts +398 -0
  402. package/src/services/index.ts +28 -0
  403. package/src/tests/100PercentParityCheck.test.ts +166 -0
  404. package/src/tests/basic.test.ts +59 -0
  405. package/src/tests/cellService.test.ts +405 -0
  406. package/src/tests/ciSetup.ts +26 -0
  407. package/src/tests/comprehensive.service.test.ts +653 -0
  408. package/src/tests/config.ini.template +23 -0
  409. package/src/tests/connection.test.ts +90 -0
  410. package/src/tests/cubeService.test.ts +458 -0
  411. package/src/tests/dimensionService.comprehensive.test.ts +786 -0
  412. package/src/tests/dimensionService.test.ts +373 -0
  413. package/src/tests/edgeCases.test.ts +358 -0
  414. package/src/tests/elementService.comprehensive.test.ts +1190 -0
  415. package/src/tests/elementService.test.ts +472 -0
  416. package/src/tests/enhancedCellService.test.ts +237 -0
  417. package/src/tests/enhancedCubeService.test.ts +384 -0
  418. package/src/tests/enhancedElementService.test.ts +301 -0
  419. package/src/tests/enhancedViewService.test.ts +373 -0
  420. package/src/tests/errorHandling.test.ts +264 -0
  421. package/src/tests/exceptions.test.ts +313 -0
  422. package/src/tests/hierarchyService.test.ts +386 -0
  423. package/src/tests/index.test.ts +376 -0
  424. package/src/tests/integration.test.ts +333 -0
  425. package/src/tests/integrationTests.test.ts +302 -0
  426. package/src/tests/mdx.advanced.test.ts +513 -0
  427. package/src/tests/objects.improved.test.ts +385 -0
  428. package/src/tests/performance.test.ts +314 -0
  429. package/src/tests/processService.comprehensive.test.ts +933 -0
  430. package/src/tests/processService.test.ts +409 -0
  431. package/src/tests/restService.test.ts +218 -0
  432. package/src/tests/security.advanced.test.ts +464 -0
  433. package/src/tests/security.test.ts +233 -0
  434. package/src/tests/securityService.comprehensive.test.ts +582 -0
  435. package/src/tests/setup.ts +42 -0
  436. package/src/tests/simpleCoverage.test.ts +287 -0
  437. package/src/tests/stress.performance.test.ts +531 -0
  438. package/src/tests/subsetService.test.ts +350 -0
  439. package/src/tests/testConfig.ts +53 -0
  440. package/src/tests/testUtils.ts +94 -0
  441. package/src/tests/tm1Service.test.ts +361 -0
  442. package/src/tests/viewService.test.ts +324 -0
  443. package/src/utils/Utils.ts +395 -0
  444. package/tests/README.md +57 -0
  445. package/tests/connection/test-connection.ts +86 -0
  446. package/tests/edge-cases/edge-cases-test.ts +244 -0
  447. package/tests/integration/working-test.ts +193 -0
  448. package/tests/performance/performance-test.ts +133 -0
  449. package/tests/run-all-tests.sh +106 -0
  450. package/tests/security/security-test.ts +103 -0
  451. package/tsconfig.json +20 -0
@@ -0,0 +1,59 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { RestService } from './RestService';
3
+ import { ObjectService } from './ObjectService';
4
+ import { formatUrl, requireVersion } from '../utils/Utils';
5
+
6
+ export class JobService extends ObjectService {
7
+ /** Service to handle TM1 Job objects introduced in v12
8
+ */
9
+
10
+ constructor(rest: RestService) {
11
+ super(rest);
12
+ }
13
+
14
+ @requireVersion("12.0.0")
15
+ public async getAll(): Promise<any[]> {
16
+ /** Return a dict of the currently running jobs from the TM1 Server
17
+ *
18
+ * :return:
19
+ * dict: the response
20
+ */
21
+ const url = '/Jobs';
22
+ const response = await this.rest.get(url);
23
+ return response.data.value;
24
+ }
25
+
26
+ @requireVersion("12.0.0")
27
+ public async cancel(jobId: string | number): Promise<AxiosResponse> {
28
+ /** Cancels a running Job
29
+ *
30
+ * :param job_id:
31
+ * :return:
32
+ */
33
+ const url = formatUrl("/Jobs('{}')/tm1.Cancel", jobId.toString());
34
+ const response = await this.rest.post(url);
35
+ return response;
36
+ }
37
+
38
+ @requireVersion("12.0.0")
39
+ public async cancelAll(): Promise<any[]> {
40
+ const jobs = await this.getAll();
41
+ const canceledJobs: any[] = [];
42
+
43
+ for (const job of jobs) {
44
+ await this.cancel(job["ID"]);
45
+ canceledJobs.push(job);
46
+ }
47
+
48
+ return canceledJobs;
49
+ }
50
+
51
+ @requireVersion("12.0.0")
52
+ public async getAsDataFrame(): Promise<any[]> {
53
+ /** Gets jobs and returns them as an array (equivalent to dataframe)
54
+ * Note: In JavaScript/TypeScript, we return array of objects instead of pandas DataFrame
55
+ */
56
+ const jobs = await this.getAll();
57
+ return jobs;
58
+ }
59
+ }
@@ -0,0 +1,118 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { RestService } from './RestService';
3
+ import { ObjectService } from './ObjectService';
4
+ import { formatUrl, CaseAndSpaceInsensitiveDict, requireOpsAdmin } from '../utils/Utils';
5
+
6
+ export class LoggerService extends ObjectService {
7
+ /** Service to query and update loggers
8
+ */
9
+
10
+ constructor(rest: RestService) {
11
+ super(rest);
12
+ }
13
+
14
+
15
+ public async getAll(): Promise<any[]> {
16
+ const url = "/Loggers";
17
+ const response = await this.rest.get(url);
18
+ return response.data.value;
19
+ }
20
+
21
+
22
+ public async getAllNames(): Promise<string[]> {
23
+ const loggers = await this.getAll();
24
+ return loggers.map((logger: any) => logger.Name);
25
+ }
26
+
27
+
28
+ public async get(logger: string): Promise<any> {
29
+ /** Get level for specified logger
30
+ *
31
+ * :param logger: string name of logger
32
+ * :return: Dict of logger and level
33
+ */
34
+ const url = formatUrl("/Loggers('{}')", logger);
35
+ const response = await this.rest.get(url);
36
+ const loggerData = response.data;
37
+ delete loggerData["@odata.context"];
38
+ return loggerData;
39
+ }
40
+
41
+
42
+ public async search(wildcard: string = '', level: string = ''): Promise<any[]> {
43
+ /** Searches logger names by wildcard or by level. Combining wildcard and level will filter via AND and not OR
44
+ *
45
+ * :param wildcard: string to match in logger name
46
+ * :param level: string e.g. FATAL, ERROR, WARNING, INFO, DEBUG, UNKOWN, OFF
47
+ * :return: Dict of matching loggers and levels
48
+ */
49
+ let url = "/Loggers";
50
+
51
+ const loggerFilters: string[] = [];
52
+
53
+ if (level) {
54
+ const levelDict = new CaseAndSpaceInsensitiveDict([
55
+ ['FATAL', 0], ['ERROR', 1], ['WARNING', 2], ['INFO', 3], ['DEBUG', 4], ['UNKNOWN', 5], ['OFF', 6]
56
+ ]);
57
+ const levelIndex = levelDict.get(level);
58
+ if (levelIndex !== undefined) {
59
+ loggerFilters.push(`Level eq ${levelIndex}`);
60
+ }
61
+ }
62
+
63
+ if (wildcard) {
64
+ loggerFilters.push(`contains(tolower(Name), tolower('${wildcard}'))`);
65
+ }
66
+
67
+ if (loggerFilters.length > 0) {
68
+ url += `?$filter=${loggerFilters.join(" and ")}`;
69
+ }
70
+
71
+ const response = await this.rest.get(url);
72
+ return response.data.value;
73
+ }
74
+
75
+
76
+ public async exists(logger: string): Promise<boolean> {
77
+ /** Test if logger exists
78
+ * :param logger: string name of logger
79
+ * :return: bool
80
+ */
81
+ const url = formatUrl("/Loggers('{}')", logger);
82
+ return await this._exists(url);
83
+ }
84
+
85
+
86
+ public async setLevel(logger: string, level: string): Promise<AxiosResponse> {
87
+ /** Set logger level
88
+ * :param logger: string name of logger
89
+ * :param level: string e.g. FATAL, ERROR, WARNING, INFO, DEBUG, UNKOWN, OFF
90
+ * :return: response
91
+ */
92
+ const url = formatUrl("/Loggers('{}')", logger);
93
+
94
+ if (!(await this.exists(logger))) {
95
+ throw new Error(`${logger} is not a valid logger`);
96
+ }
97
+
98
+ const levelDict = new CaseAndSpaceInsensitiveDict([
99
+ ['FATAL', 0], ['ERROR', 1], ['WARNING', 2], ['INFO', 3], ['DEBUG', 4], ['UNKNOWN', 5], ['OFF', 6]
100
+ ]);
101
+ const levelIndex = levelDict.get(level);
102
+ if (levelIndex !== undefined) {
103
+ const loggerData = { 'Level': levelIndex };
104
+ return await this.rest.patch(url, JSON.stringify(loggerData));
105
+ } else {
106
+ throw new Error(`${level} is not a valid level`);
107
+ }
108
+ }
109
+
110
+ private async _exists(url: string): Promise<boolean> {
111
+ try {
112
+ await this.rest.get(url);
113
+ return true;
114
+ } catch (error) {
115
+ return false;
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,322 @@
1
+ import axios, { AxiosResponse } from 'axios';
2
+
3
+ export interface DatabaseResourceConfig {
4
+ cpuRequests?: string;
5
+ cpuLimits?: string;
6
+ memoryRequests?: string;
7
+ memoryLimits?: string;
8
+ storageSize?: string;
9
+ }
10
+
11
+ export class ManageService {
12
+ /** Manage service to interact with the manage endpoint.
13
+ * The manage endpoint uses basic auth using the root client and secret
14
+ */
15
+
16
+ private _domain: string;
17
+ private _rootClient: string;
18
+ private _rootSecret: string;
19
+ private _rootUrl: string;
20
+ private _authConfig: any;
21
+
22
+ constructor(domain: string, rootClient: string, rootSecret: string) {
23
+ this._domain = domain;
24
+ this._rootClient = rootClient;
25
+ this._rootSecret = rootSecret;
26
+ this._rootUrl = `${this._domain}/manage/v1`;
27
+ this._authConfig = {
28
+ auth: {
29
+ username: this._rootClient,
30
+ password: this._rootSecret
31
+ }
32
+ };
33
+ }
34
+
35
+ public async getInstances(): Promise<any[]> {
36
+ const url = `${this._rootUrl}/Instances`;
37
+ const response = await axios.get(url, this._authConfig);
38
+ return response.data.value;
39
+ }
40
+
41
+ public async getInstance(instanceName: string): Promise<any> {
42
+ const url = `${this._rootUrl}/Instances('${instanceName}')`;
43
+ const response = await axios.get(url, this._authConfig);
44
+ return response.data;
45
+ }
46
+
47
+ public async createInstance(instanceName: string): Promise<AxiosResponse> {
48
+ const url = `${this._rootUrl}/Instances`;
49
+ const payload = { "Name": instanceName };
50
+ const response = await axios.post(url, payload, this._authConfig);
51
+ return response;
52
+ }
53
+
54
+ public async deleteInstance(instanceName: string): Promise<AxiosResponse> {
55
+ const url = `${this._rootUrl}/Instances('${instanceName}')`;
56
+ const response = await axios.delete(url, this._authConfig);
57
+ return response;
58
+ }
59
+
60
+ public async instanceExists(instanceName: string): Promise<boolean> {
61
+ const url = `${this._rootUrl}/Instances('${instanceName}')`;
62
+ try {
63
+ const response = await axios.get(url, this._authConfig);
64
+ return response.status === 200;
65
+ } catch (error) {
66
+ return false;
67
+ }
68
+ }
69
+
70
+ public async getDatabases(instanceName: string): Promise<any[]> {
71
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases`;
72
+ const response = await axios.get(url, this._authConfig);
73
+ return response.data.value;
74
+ }
75
+
76
+ public async getDatabase(instanceName: string, databaseName: string): Promise<any> {
77
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
78
+ const response = await axios.get(url, this._authConfig);
79
+ return response.data;
80
+ }
81
+
82
+ public async createDatabase(
83
+ instanceName: string,
84
+ databaseName: string,
85
+ numberReplicas: number,
86
+ productVersion: string,
87
+ resourceConfig: DatabaseResourceConfig = {}
88
+ ): Promise<AxiosResponse> {
89
+ const {
90
+ cpuRequests = "1000m",
91
+ cpuLimits = "2000m",
92
+ memoryRequests = "1G",
93
+ memoryLimits = "2G",
94
+ storageSize = "20Gi"
95
+ } = resourceConfig;
96
+
97
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases`;
98
+
99
+ const payload = {
100
+ "Name": databaseName,
101
+ "Replicas": numberReplicas,
102
+ "ProductVersion": productVersion,
103
+ "Resources": {
104
+ "Replica": {
105
+ "CPU": {
106
+ "Requests": cpuRequests,
107
+ "Limits": cpuLimits
108
+ },
109
+ "Memory": {
110
+ "Requests": memoryRequests,
111
+ "Limits": memoryLimits
112
+ }
113
+ },
114
+ "Storage": {
115
+ "Size": storageSize
116
+ }
117
+ }
118
+ };
119
+
120
+ const response = await axios.post(url, payload, this._authConfig);
121
+ return response;
122
+ }
123
+
124
+ public async updateDatabaseCpu(
125
+ instanceName: string,
126
+ databaseName: string,
127
+ cpuRequests: string,
128
+ cpuLimits: string
129
+ ): Promise<AxiosResponse> {
130
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
131
+
132
+ const payload = {
133
+ "Resources": {
134
+ "Replica": {
135
+ "CPU": {
136
+ "Requests": cpuRequests,
137
+ "Limits": cpuLimits
138
+ }
139
+ }
140
+ }
141
+ };
142
+
143
+ const response = await axios.patch(url, payload, this._authConfig);
144
+ return response;
145
+ }
146
+
147
+ public async updateDatabaseMemory(
148
+ instanceName: string,
149
+ databaseName: string,
150
+ memoryRequests: string,
151
+ memoryLimits: string
152
+ ): Promise<AxiosResponse> {
153
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
154
+
155
+ const payload = {
156
+ "Resources": {
157
+ "Replica": {
158
+ "Memory": {
159
+ "Requests": memoryRequests,
160
+ "Limits": memoryLimits
161
+ }
162
+ }
163
+ }
164
+ };
165
+
166
+ const response = await axios.patch(url, payload, this._authConfig);
167
+ return response;
168
+ }
169
+
170
+ public async updateDatabaseStorage(
171
+ instanceName: string,
172
+ databaseName: string,
173
+ storageSize: string
174
+ ): Promise<AxiosResponse> {
175
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
176
+
177
+ const payload = {
178
+ "Resources": {
179
+ "Storage": {
180
+ "Size": storageSize
181
+ }
182
+ }
183
+ };
184
+
185
+ const response = await axios.patch(url, payload, this._authConfig);
186
+ return response;
187
+ }
188
+
189
+ public async deleteDatabase(instanceName: string, databaseName: string): Promise<AxiosResponse> {
190
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
191
+ const response = await axios.delete(url, this._authConfig);
192
+ return response;
193
+ }
194
+
195
+ public async databaseExists(instanceName: string, databaseName: string): Promise<boolean> {
196
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
197
+ try {
198
+ const response = await axios.get(url, this._authConfig);
199
+ return response.status === 200;
200
+ } catch (error) {
201
+ return false;
202
+ }
203
+ }
204
+
205
+ public async upgradeDatabase(
206
+ instanceName: string,
207
+ databaseName: string,
208
+ targetVersion: string = ""
209
+ ): Promise<AxiosResponse> {
210
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/tm1s.Upgrade`;
211
+ const payload = { "ProductVersion": targetVersion };
212
+ const response = await axios.post(url, payload, this._authConfig);
213
+ return response;
214
+ }
215
+
216
+ public async createDatabaseBackup(
217
+ instanceName: string,
218
+ databaseName: string,
219
+ backupSetName: string
220
+ ): Promise<AxiosResponse> {
221
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/tm1s.Backup`;
222
+ const payload = { "URL": `${backupSetName}.tgz` };
223
+ const response = await axios.post(url, payload, this._authConfig);
224
+ return response;
225
+ }
226
+
227
+ public async createAndUploadDatabaseBackupSetFile(
228
+ instanceName: string,
229
+ databaseName: string,
230
+ backupSetName: string
231
+ ): Promise<AxiosResponse> {
232
+ const createUrl = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/Contents('Files')/Contents('.backupsets')/Contents`;
233
+ const payload = {
234
+ "@odata.type": "#ibm.tm1.api.v1.Document",
235
+ "Name": `${backupSetName}.tgz`
236
+ };
237
+ await axios.post(createUrl, payload, this._authConfig);
238
+
239
+ const uploadUrl = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/Contents('Files')/Contents('.backupsets')/Contents('${backupSetName}.tgz')/Content`;
240
+ const response = await axios.post(uploadUrl, payload, this._authConfig);
241
+ return response;
242
+ }
243
+
244
+ public async restoreDatabase(
245
+ instanceName: string,
246
+ databaseName: string,
247
+ backupUrl: string
248
+ ): Promise<AxiosResponse> {
249
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/tm1s.Restore`;
250
+ const payload = { "URL": backupUrl };
251
+ const response = await axios.post(url, payload, this._authConfig);
252
+ return response;
253
+ }
254
+
255
+ public async scaleDatabase(
256
+ instanceName: string,
257
+ databaseName: string,
258
+ replicas: number
259
+ ): Promise<AxiosResponse> {
260
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')`;
261
+ const payload = { "Replicas": replicas };
262
+ const response = await axios.patch(url, payload, this._authConfig);
263
+ return response;
264
+ }
265
+
266
+ public async getApplications(instanceName: string): Promise<any> {
267
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Applications`;
268
+ const response = await axios.get(url, this._authConfig);
269
+ return response.data;
270
+ }
271
+
272
+ public async getApplication(instanceName: string, applicationName: string): Promise<any> {
273
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Applications('${applicationName}')`;
274
+ const response = await axios.get(url, this._authConfig);
275
+ return response.data;
276
+ }
277
+
278
+ public async createApplication(
279
+ instanceName: string,
280
+ applicationName: string
281
+ ): Promise<{ clientId: string; clientSecret: string }> {
282
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Applications`;
283
+ const payload = { "Name": applicationName };
284
+ const response = await axios.post(url, payload, this._authConfig);
285
+ const responseJson = response.data;
286
+ return {
287
+ clientId: responseJson['ClientID'],
288
+ clientSecret: responseJson['ClientSecret']
289
+ };
290
+ }
291
+
292
+ public async getMetadata(): Promise<any> {
293
+ const url = `${this._rootUrl}/$metadata?$format=json`;
294
+ const response = await axios.get(url, this._authConfig);
295
+ return response.data;
296
+ }
297
+
298
+ public async subscribeToDataChanges(
299
+ instanceName: string,
300
+ databaseName: string,
301
+ targetUrl: string,
302
+ additionalProperties: Record<string, any> = {}
303
+ ): Promise<AxiosResponse> {
304
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/tm1.Subscribe`;
305
+ const payload = {
306
+ "URL": targetUrl,
307
+ "AdditionalProperties": additionalProperties
308
+ };
309
+ const response = await axios.post(url, payload, this._authConfig);
310
+ return response;
311
+ }
312
+
313
+ public async unsubscribeFromDataChanges(
314
+ instanceName: string,
315
+ databaseName: string,
316
+ targetUrl: string
317
+ ): Promise<AxiosResponse> {
318
+ const url = `${this._rootUrl}/Instances('${instanceName}')/Databases('${databaseName}')/tm1.Unsubscribe`;
319
+ const response = await axios.post(url, this._authConfig);
320
+ return response;
321
+ }
322
+ }