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 @@
1
+ {"version":3,"file":"subsetService.test.d.ts","sourceRoot":"","sources":["../../src/tests/subsetService.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ /**
3
+ * SubsetService Tests for tm1npm
4
+ * Comprehensive tests for TM1 Subset operations with proper mocking
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const SubsetService_1 = require("../services/SubsetService");
8
+ const Subset_1 = require("../objects/Subset");
9
+ const TM1Exception_1 = require("../exceptions/TM1Exception");
10
+ // Helper function to create mock AxiosResponse
11
+ const createMockResponse = (data, status = 200) => ({
12
+ data,
13
+ status,
14
+ statusText: status === 200 ? 'OK' : status === 201 ? 'Created' : status === 204 ? 'No Content' : 'Error',
15
+ headers: {},
16
+ config: {}
17
+ });
18
+ describe('SubsetService Tests', () => {
19
+ let subsetService;
20
+ let mockRestService;
21
+ beforeEach(() => {
22
+ // Create comprehensive mock for RestService
23
+ mockRestService = {
24
+ get: jest.fn(),
25
+ post: jest.fn(),
26
+ patch: jest.fn(),
27
+ delete: jest.fn(),
28
+ put: jest.fn(),
29
+ config: {},
30
+ rest: {},
31
+ buildBaseUrl: jest.fn(),
32
+ extractErrorMessage: jest.fn()
33
+ };
34
+ subsetService = new SubsetService_1.SubsetService(mockRestService);
35
+ });
36
+ describe('Subset Retrieval Operations', () => {
37
+ test('should get all subset names for dimension/hierarchy', async () => {
38
+ mockRestService.get.mockResolvedValue(createMockResponse({
39
+ value: [
40
+ { Name: 'Default' },
41
+ { Name: 'TopLevel' },
42
+ { Name: 'CustomSubset' }
43
+ ]
44
+ }));
45
+ const subsetNames = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
46
+ expect(Array.isArray(subsetNames)).toBe(true);
47
+ expect(subsetNames.length).toBe(3);
48
+ expect(subsetNames).toEqual(['Default', 'TopLevel', 'CustomSubset']);
49
+ console.log('✅ Subset names retrieved successfully');
50
+ });
51
+ test('should get all subsets with full details', async () => {
52
+ mockRestService.get.mockResolvedValue(createMockResponse({
53
+ value: [
54
+ {
55
+ Name: 'Default',
56
+ UniqueName: '[TestDimension].[TestHierarchy].[Default]',
57
+ Expression: '',
58
+ Hierarchy: {
59
+ Name: 'TestHierarchy',
60
+ Dimension: { Name: 'TestDimension' }
61
+ }
62
+ },
63
+ {
64
+ Name: 'TopLevel',
65
+ UniqueName: '[TestDimension].[TestHierarchy].[TopLevel]',
66
+ Expression: '{TM1FILTERBYLEVEL({TM1SUBSETALL([TestDimension])}, 0)}',
67
+ Hierarchy: {
68
+ Name: 'TestHierarchy',
69
+ Dimension: { Name: 'TestDimension' }
70
+ }
71
+ }
72
+ ]
73
+ }));
74
+ const response = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
75
+ expect(Array.isArray(response)).toBe(true);
76
+ expect(response.length).toBe(2);
77
+ expect(response[0]).toBe('Default');
78
+ expect(response[1]).toBe('TopLevel');
79
+ console.log('✅ All subsets retrieved successfully');
80
+ });
81
+ test('should get specific subset by name', async () => {
82
+ mockRestService.get.mockResolvedValue(createMockResponse({
83
+ Name: 'SpecificSubset',
84
+ UniqueName: '[TestDimension].[TestHierarchy].[SpecificSubset]',
85
+ Expression: '{[Element1], [Element2], [Element3]}',
86
+ Hierarchy: {
87
+ Name: 'TestHierarchy',
88
+ Dimension: { Name: 'TestDimension' }
89
+ },
90
+ Elements: [
91
+ { Name: 'Element1' },
92
+ { Name: 'Element2' },
93
+ { Name: 'Element3' }
94
+ ]
95
+ }));
96
+ const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'SpecificSubset');
97
+ expect(subset).toBeDefined();
98
+ expect(subset.Name).toBe('SpecificSubset');
99
+ console.log('✅ Specific subset retrieved successfully');
100
+ });
101
+ test('should check if subset exists', async () => {
102
+ // Test existing subset
103
+ mockRestService.get.mockResolvedValue(createMockResponse({
104
+ Name: 'ExistingSubset'
105
+ }));
106
+ const exists = await subsetService.exists('TestDimension', 'TestHierarchy', 'ExistingSubset');
107
+ expect(exists).toBe(true);
108
+ console.log('✅ Subset existence check working correctly');
109
+ });
110
+ test('should check if subset does not exist', async () => {
111
+ // Test non-existing subset
112
+ const mockError = new TM1Exception_1.TM1RestException('Subset not found', 404, { status: 404 });
113
+ mockRestService.get.mockRejectedValue(mockError);
114
+ const notExists = await subsetService.exists('TestDimension', 'TestHierarchy', 'NonExistent');
115
+ expect(notExists).toBe(false);
116
+ console.log('✅ Subset non-existence check working correctly');
117
+ });
118
+ });
119
+ describe('Subset CRUD Operations', () => {
120
+ test('should create new subset', async () => {
121
+ const mockSubset = new Subset_1.Subset('NewSubset', 'TestDimension', 'TestHierarchy');
122
+ mockSubset.expression = '{[Element1], [Element2]}';
123
+ mockRestService.post.mockResolvedValue(createMockResponse({
124
+ Name: 'NewSubset'
125
+ }, 201));
126
+ const result = await subsetService.create('TestDimension', 'TestHierarchy', mockSubset);
127
+ expect(result.status).toBe(201);
128
+ expect(mockRestService.post).toHaveBeenCalled();
129
+ console.log('✅ Subset creation successful');
130
+ });
131
+ test('should update existing subset', async () => {
132
+ const mockSubset = new Subset_1.Subset('UpdatedSubset', 'TestDimension', 'TestHierarchy');
133
+ mockSubset.expression = '{[Element1], [Element2], [Element3]}';
134
+ mockRestService.patch.mockResolvedValue(createMockResponse({}, 200));
135
+ const result = await subsetService.update('TestDimension', 'TestHierarchy', mockSubset);
136
+ expect(result.status).toBe(200);
137
+ console.log('✅ Subset update successful');
138
+ });
139
+ test('should delete subset', async () => {
140
+ mockRestService.delete.mockResolvedValue(createMockResponse({}, 204));
141
+ const result = await subsetService.delete('TestDimension', 'TestHierarchy', 'SubsetToDelete');
142
+ expect(result.status).toBe(204);
143
+ console.log('✅ Subset deletion successful');
144
+ });
145
+ });
146
+ describe('Subset Element Operations', () => {
147
+ test('should get subset elements', async () => {
148
+ mockRestService.get.mockResolvedValue(createMockResponse({
149
+ value: [
150
+ { Name: 'Element1' },
151
+ { Name: 'Element2' },
152
+ { Name: 'Element3' }
153
+ ]
154
+ }));
155
+ const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'TestSubset');
156
+ expect(subset).toBeDefined();
157
+ expect(Array.isArray(subset.value)).toBe(true);
158
+ console.log('✅ Subset elements retrieved successfully');
159
+ });
160
+ test('should handle empty subset', async () => {
161
+ mockRestService.get.mockResolvedValue(createMockResponse({
162
+ Name: 'EmptySubset',
163
+ Elements: []
164
+ }));
165
+ const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'EmptySubset');
166
+ expect(subset).toBeDefined();
167
+ expect(subset.Name).toBe('EmptySubset');
168
+ console.log('✅ Empty subset handling working');
169
+ });
170
+ });
171
+ describe('Subset Error Handling', () => {
172
+ test('should handle invalid subset names gracefully', async () => {
173
+ mockRestService.get.mockRejectedValue({
174
+ response: { status: 400, statusText: 'Bad Request' }
175
+ });
176
+ await expect(subsetService.get('TestDimension', 'TestHierarchy', ''))
177
+ .rejects.toMatchObject({
178
+ response: { status: 400 }
179
+ });
180
+ console.log('✅ Invalid subset name handling working');
181
+ });
182
+ test('should handle network errors gracefully', async () => {
183
+ mockRestService.get.mockRejectedValue({
184
+ code: 'ECONNREFUSED'
185
+ });
186
+ await expect(subsetService.getAllNames('TestDimension', 'TestHierarchy'))
187
+ .rejects.toMatchObject({
188
+ code: 'ECONNREFUSED'
189
+ });
190
+ console.log('✅ Network error handling working');
191
+ });
192
+ test('should handle authentication errors', async () => {
193
+ mockRestService.get.mockRejectedValue({
194
+ response: { status: 401, statusText: 'Unauthorized' }
195
+ });
196
+ await expect(subsetService.get('TestDimension', 'TestHierarchy', 'TestSubset'))
197
+ .rejects.toMatchObject({
198
+ response: { status: 401 }
199
+ });
200
+ console.log('✅ Authentication error handling working');
201
+ });
202
+ });
203
+ describe('Subset Service Edge Cases', () => {
204
+ test('should handle large subset lists', async () => {
205
+ const largeSubsetData = Array(1000).fill(null).map((_, i) => ({
206
+ Name: `Subset${i}`,
207
+ Expression: `{[Element${i}]}`
208
+ }));
209
+ mockRestService.get.mockResolvedValue(createMockResponse({
210
+ value: largeSubsetData
211
+ }));
212
+ const startTime = Date.now();
213
+ const subsets = await subsetService.getAllNames('LargeDimension', 'LargeHierarchy');
214
+ const endTime = Date.now();
215
+ expect(subsets.length).toBe(1000);
216
+ expect(endTime - startTime).toBeLessThan(1000); // Should be fast with mocking
217
+ console.log('✅ Large subset list processing efficient');
218
+ });
219
+ test('should handle concurrent operations efficiently', async () => {
220
+ mockRestService.get.mockResolvedValue(createMockResponse({
221
+ value: [{ Name: 'TestSubset' }]
222
+ }));
223
+ const operations = Array(5).fill(null).map(() => subsetService.getAllNames('TestDimension', 'TestHierarchy'));
224
+ const results = await Promise.allSettled(operations);
225
+ const successful = results.filter(r => r.status === 'fulfilled');
226
+ expect(successful.length).toBe(5);
227
+ console.log('✅ Concurrent operations handling working');
228
+ });
229
+ });
230
+ describe('Subset Service Integration', () => {
231
+ test('should maintain data consistency across operations', async () => {
232
+ const subsetList = [
233
+ { Name: 'Subset1' },
234
+ { Name: 'Subset2' }
235
+ ];
236
+ mockRestService.get.mockResolvedValue(createMockResponse({
237
+ value: subsetList
238
+ }));
239
+ const names1 = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
240
+ const names2 = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
241
+ expect(names1).toEqual(names2);
242
+ expect(names1).toEqual(['Subset1', 'Subset2']);
243
+ console.log('✅ Data consistency maintained');
244
+ });
245
+ test('should handle subset lifecycle operations', async () => {
246
+ const testSubset = new Subset_1.Subset('LifecycleSubset', 'TestDimension', 'TestHierarchy');
247
+ testSubset.expression = '{[Element1]}';
248
+ // Mock create
249
+ mockRestService.post.mockResolvedValue(createMockResponse({}, 201));
250
+ // Mock get (exists)
251
+ mockRestService.get.mockResolvedValue(createMockResponse({
252
+ Name: 'LifecycleSubset'
253
+ }));
254
+ // Mock update
255
+ mockRestService.patch.mockResolvedValue(createMockResponse({}, 200));
256
+ // Mock delete
257
+ mockRestService.delete.mockResolvedValue(createMockResponse({}, 204));
258
+ // Test lifecycle operations
259
+ const createResult = await subsetService.create('TestDimension', 'TestHierarchy', testSubset);
260
+ expect(createResult.status).toBe(201);
261
+ const exists = await subsetService.exists('TestDimension', 'TestHierarchy', 'LifecycleSubset');
262
+ expect(exists).toBe(true);
263
+ const updateResult = await subsetService.update('TestDimension', 'TestHierarchy', testSubset);
264
+ expect(updateResult.status).toBe(200);
265
+ const deleteResult = await subsetService.delete('TestDimension', 'TestHierarchy', 'LifecycleSubset');
266
+ expect(deleteResult.status).toBe(204);
267
+ console.log('✅ Subset lifecycle operations working');
268
+ });
269
+ });
270
+ });
271
+ //# sourceMappingURL=subsetService.test.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Configuration interface for TM1 connection in tests
3
+ */
4
+ export interface TM1TestConfig {
5
+ address: string;
6
+ port: number;
7
+ user: string;
8
+ password: string;
9
+ ssl: boolean;
10
+ namespace?: string;
11
+ gateway?: string;
12
+ }
13
+ /**
14
+ * Load configuration from environment variables
15
+ * Throws error if required environment variables are not set
16
+ */
17
+ export declare function loadTestConfig(): TM1TestConfig;
18
+ //# sourceMappingURL=testConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testConfig.d.ts","sourceRoot":"","sources":["../../src/tests/testConfig.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAkB9C"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTestConfig = loadTestConfig;
4
+ const dotenv_1 = require("dotenv");
5
+ // Load environment variables from .env file
6
+ (0, dotenv_1.config)();
7
+ /**
8
+ * Default test configuration - all values should come from environment variables
9
+ * These are fallback values only and should not contain real credentials
10
+ */
11
+ const defaultTestConfig = {
12
+ address: "localhost",
13
+ port: 8879,
14
+ user: "admin",
15
+ password: "", // No default password - must be set via environment
16
+ ssl: false
17
+ };
18
+ /**
19
+ * Load configuration from environment variables
20
+ * Throws error if required environment variables are not set
21
+ */
22
+ function loadTestConfig() {
23
+ // Check for required environment variables
24
+ if (!process.env.TM1_PASSWORD) {
25
+ throw new Error('TM1_PASSWORD environment variable is required. ' +
26
+ 'Please set it in your .env file or environment.');
27
+ }
28
+ return {
29
+ address: process.env.TM1_ADDRESS || defaultTestConfig.address,
30
+ port: parseInt(process.env.TM1_PORT || defaultTestConfig.port.toString()),
31
+ user: process.env.TM1_USER || defaultTestConfig.user,
32
+ password: process.env.TM1_PASSWORD, // Required from environment
33
+ ssl: process.env.TM1_SSL === 'true' || defaultTestConfig.ssl,
34
+ namespace: process.env.TM1_NAMESPACE,
35
+ gateway: process.env.TM1_GATEWAY
36
+ };
37
+ }
38
+ //# sourceMappingURL=testConfig.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Test utility decorators for Jest testing - equivalent to Python test decorators
3
+ */
4
+ export declare function skipIfNoPandas(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
5
+ export declare function skipIfVersionLowerThan(version: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
6
+ export declare function skipIfVersionHigherOrEqualThan(version: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
7
+ export declare function skipIfAuthNotBasic(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
8
+ export declare function skipIfPaoc(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
9
+ //# sourceMappingURL=testUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAY/F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,IAKjC,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,wBAarF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,IAKzC,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,wBAarF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAenG;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAe3F"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skipIfNoPandas = skipIfNoPandas;
4
+ exports.skipIfVersionLowerThan = skipIfVersionLowerThan;
5
+ exports.skipIfVersionHigherOrEqualThan = skipIfVersionHigherOrEqualThan;
6
+ exports.skipIfAuthNotBasic = skipIfAuthNotBasic;
7
+ exports.skipIfPaoc = skipIfPaoc;
8
+ const RestService_1 = require("../services/RestService");
9
+ const Utils_1 = require("../utils/Utils");
10
+ /**
11
+ * Test utility decorators for Jest testing - equivalent to Python test decorators
12
+ */
13
+ function skipIfNoPandas(target, propertyName, descriptor) {
14
+ /**
15
+ * Checks whether pandas equivalent exists and skips the test if not
16
+ * Note: In JavaScript/TypeScript, we don't have pandas, so this always skips
17
+ */
18
+ const method = descriptor.value;
19
+ descriptor.value = function (...args) {
20
+ // In JavaScript environment, we don't have pandas equivalent
21
+ console.log(`Test '${propertyName}' requires pandas equivalent - skipping`);
22
+ return;
23
+ };
24
+ return descriptor;
25
+ }
26
+ function skipIfVersionLowerThan(version) {
27
+ /**
28
+ * Checks whether TM1 version is lower than a certain version and skips the test
29
+ * if this is the case. This function is useful if a test needs a minimum required version.
30
+ */
31
+ return function (target, propertyName, descriptor) {
32
+ const method = descriptor.value;
33
+ descriptor.value = function (...args) {
34
+ // @ts-ignore - accessing tm1 from test context
35
+ if (!(0, Utils_1.verifyVersion)(version, this.tm1.version)) {
36
+ console.log(`Function '${propertyName}' requires TM1 server version >= '${version}' - skipping`);
37
+ return;
38
+ }
39
+ else {
40
+ return method.apply(this, args);
41
+ }
42
+ };
43
+ return descriptor;
44
+ };
45
+ }
46
+ function skipIfVersionHigherOrEqualThan(version) {
47
+ /**
48
+ * Checks whether TM1 version is higher or equal than a certain version and skips the test
49
+ * if this is the case. This function is useful if a test should not run for higher versions.
50
+ */
51
+ return function (target, propertyName, descriptor) {
52
+ const method = descriptor.value;
53
+ descriptor.value = function (...args) {
54
+ // @ts-ignore - accessing tm1 from test context
55
+ if ((0, Utils_1.verifyVersion)(version, this.tm1.version)) {
56
+ console.log(`Function '${propertyName}' requires TM1 server version < '${version}' - skipping`);
57
+ return;
58
+ }
59
+ else {
60
+ return method.apply(this, args);
61
+ }
62
+ };
63
+ return descriptor;
64
+ };
65
+ }
66
+ function skipIfAuthNotBasic(target, propertyName, descriptor) {
67
+ /**
68
+ * Checks whether TM1 authentication is basic (user+password). Skip test if authentication is not basic
69
+ */
70
+ const method = descriptor.value;
71
+ descriptor.value = function (...args) {
72
+ // @ts-ignore - accessing tm1 from test context
73
+ if (this.tm1.connection.authenticationMode !== RestService_1.AuthenticationMode.BASIC) {
74
+ console.log(`Function '${propertyName}' requires IntegratedSecurityMode1 (Basic) - skipping`);
75
+ return;
76
+ }
77
+ else {
78
+ return method.apply(this, args);
79
+ }
80
+ };
81
+ return descriptor;
82
+ }
83
+ function skipIfPaoc(target, propertyName, descriptor) {
84
+ /**
85
+ * Checks whether TM1 is deployed as Planning Analytics on Cloud (PAoC)
86
+ */
87
+ const method = descriptor.value;
88
+ descriptor.value = function (...args) {
89
+ // @ts-ignore - accessing tm1 from test context
90
+ if (this.tm1.connection.baseUrl.includes("planning-analytics.ibmcloud.com/tm1/api")) {
91
+ console.log(`Function '${propertyName}' requires on prem TM1 instead of PAoC - skipping`);
92
+ return;
93
+ }
94
+ else {
95
+ return method.apply(this, args);
96
+ }
97
+ };
98
+ return descriptor;
99
+ }
100
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TM1Service Tests
3
+ * Comprehensive test suite for the main TM1Service class
4
+ * Target: Improve coverage from 0% to 40%+
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=tm1Service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm1Service.test.d.ts","sourceRoot":"","sources":["../../src/tests/tm1Service.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}