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,385 @@
1
+ /**
2
+ * Improved Object Model Tests
3
+ * Target: Improve coverage from 24.53% to 35%+
4
+ * Focus on key objects: Dimension, Hierarchy, Element, Process, Cube, User
5
+ */
6
+
7
+ import { Dimension } from '../objects/Dimension';
8
+ import { Hierarchy } from '../objects/Hierarchy';
9
+ import { Element, ElementType } from '../objects/Element';
10
+ import { ElementAttribute, ElementAttributeType } from '../objects/ElementAttribute';
11
+ import { Process } from '../objects/Process';
12
+ import { Cube } from '../objects/Cube';
13
+ import { User } from '../objects/User';
14
+ import { View } from '../objects/View';
15
+
16
+ describe('Object Model - Improved Coverage', () => {
17
+
18
+ describe('Dimension Object', () => {
19
+ test('should create dimension with basic properties', () => {
20
+ const dimension = new Dimension('TestDimension');
21
+
22
+ expect(dimension.name).toBe('TestDimension');
23
+ expect(dimension.hierarchies).toEqual([]);
24
+ expect(dimension.hierarchyNames).toEqual([]);
25
+ });
26
+
27
+ test('should create dimension with hierarchies', () => {
28
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', []);
29
+ const dimension = new Dimension('TestDimension', [hierarchy]);
30
+
31
+ expect(dimension.name).toBe('TestDimension');
32
+ expect(dimension.hierarchies).toHaveLength(1);
33
+ expect(dimension.hierarchyNames).toEqual(['TestHierarchy']);
34
+ });
35
+
36
+ test('should get dimension body', () => {
37
+ const dimension = new Dimension('TestDimension');
38
+ const body = JSON.parse(dimension.body);
39
+
40
+ expect(body.Name).toBe('TestDimension');
41
+ expect(body.Hierarchies).toEqual([]);
42
+ });
43
+
44
+ test('should create dimension from dictionary', () => {
45
+ const dimensionDict = {
46
+ Name: 'TestDimension',
47
+ Hierarchies: [
48
+ { Name: 'TestHierarchy', Elements: [] }
49
+ ]
50
+ };
51
+
52
+ const dimension = Dimension.fromDict(dimensionDict);
53
+
54
+ expect(dimension.name).toBe('TestDimension');
55
+ expect(dimension.hierarchies).toHaveLength(1);
56
+ });
57
+
58
+ test('should check dimension equality', () => {
59
+ const dim1 = new Dimension('TestDimension');
60
+ const dim2 = new Dimension('TestDimension');
61
+ const dim3 = new Dimension('OtherDimension');
62
+
63
+ expect(dim1.equals(dim2)).toBe(true);
64
+ expect(dim1.equals(dim3)).toBe(false);
65
+ expect(!dim1.equals(dim3)).toBe(true);
66
+ });
67
+
68
+ test('should iterate over hierarchies', () => {
69
+ const hierarchy1 = new Hierarchy('H1', 'TestDimension', []);
70
+ const hierarchy2 = new Hierarchy('H2', 'TestDimension', []);
71
+ const dimension = new Dimension('TestDimension', [hierarchy1, hierarchy2]);
72
+
73
+ const hierarchyNames = [];
74
+ for (const hierarchy of dimension) {
75
+ hierarchyNames.push(hierarchy.name);
76
+ }
77
+
78
+ expect(hierarchyNames).toEqual(['H1', 'H2']);
79
+ });
80
+ });
81
+
82
+ describe('Hierarchy Object', () => {
83
+ test('should create hierarchy with basic properties', () => {
84
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', []);
85
+
86
+ expect(hierarchy.name).toBe('TestHierarchy');
87
+ expect(hierarchy.dimensionName).toBe('TestDimension');
88
+ expect(hierarchy.elements).toEqual([]);
89
+ });
90
+
91
+ test('should create hierarchy with elements', () => {
92
+ const element1 = new Element('Element1', 'Numeric');
93
+ const element2 = new Element('Element2', 'String');
94
+ const elements = [element1, element2];
95
+
96
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', elements);
97
+
98
+ expect(hierarchy.elements).toHaveLength(2);
99
+ expect(hierarchy.elementNames).toEqual(['element1', 'element2']);
100
+ });
101
+
102
+ test('should get hierarchy body', () => {
103
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', []);
104
+ const body = JSON.parse(hierarchy.body);
105
+
106
+ expect(body.Name).toBe('TestHierarchy');
107
+ expect(body.Elements).toEqual([]);
108
+ });
109
+
110
+ test('should create hierarchy from dictionary', () => {
111
+ const hierarchyDict = {
112
+ Name: 'TestHierarchy',
113
+ Elements: [
114
+ { Name: 'Element1', Type: 'Numeric' }
115
+ ]
116
+ };
117
+
118
+ const hierarchy = Hierarchy.fromDict(hierarchyDict, 'TestDimension');
119
+
120
+ expect(hierarchy.name).toBe('TestHierarchy');
121
+ expect(hierarchy.dimensionName).toBe('TestDimension');
122
+ expect(hierarchy.elements).toHaveLength(1);
123
+ });
124
+
125
+ test('should check hierarchy equality', () => {
126
+ const hier1 = new Hierarchy('TestHierarchy', 'TestDimension', []);
127
+ const hier2 = new Hierarchy('TestHierarchy', 'TestDimension', []);
128
+ const hier3 = new Hierarchy('OtherHierarchy', 'TestDimension', []);
129
+
130
+ expect(hier1.equals(hier2)).toBe(true);
131
+ expect(hier1.equals(hier3)).toBe(false);
132
+ expect(!hier1.equals(hier3)).toBe(true);
133
+ });
134
+
135
+ test('should get balanced hierarchy flag', () => {
136
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', []);
137
+
138
+ expect(typeof hierarchy.balanced).toBe('boolean');
139
+ });
140
+
141
+ test('should iterate over elements', () => {
142
+ const element1 = new Element('Element1', 'Numeric');
143
+ const element2 = new Element('Element2', 'String');
144
+ const hierarchy = new Hierarchy('TestHierarchy', 'TestDimension', [element1, element2]);
145
+
146
+ const elementNames = [];
147
+ for (const element of hierarchy) {
148
+ elementNames.push(element.name);
149
+ }
150
+
151
+ expect(elementNames).toEqual(['Element1', 'Element2']);
152
+ });
153
+ });
154
+
155
+ describe('Element Object', () => {
156
+ test('should create numeric element', () => {
157
+ const element = new Element('TestElement', 'Numeric');
158
+
159
+ expect(element.name).toBe('TestElement');
160
+ expect(element.elementType).toBe(1); // ElementType.NUMERIC
161
+ // index is undefined by default until set
162
+ });
163
+
164
+ test('should create string element', () => {
165
+ const element = new Element('TestElement', 'String');
166
+
167
+ expect(element.name).toBe('TestElement');
168
+ expect(element.elementType).toBe(2); // ElementType.STRING
169
+ });
170
+
171
+ test('should create consolidated element', () => {
172
+ const element = new Element('TestElement', 'Consolidated');
173
+
174
+ expect(element.name).toBe('TestElement');
175
+ expect(element.elementType).toBe(3); // ElementType.CONSOLIDATED
176
+ });
177
+
178
+ test('should get element body', () => {
179
+ const element = new Element('TestElement', 'Numeric');
180
+ element.index = 5;
181
+ const body = JSON.parse(element.body);
182
+
183
+ expect(body.Name).toBe('TestElement');
184
+ expect(body.Type).toBe('Numeric');
185
+ expect(body.Index).toBe(5);
186
+ });
187
+
188
+ test('should create element from dictionary', () => {
189
+ const elementDict = {
190
+ Name: 'TestElement',
191
+ Type: 'Numeric',
192
+ Index: 10
193
+ };
194
+
195
+ const element = Element.fromDict(elementDict);
196
+
197
+ expect(element.name).toBe('TestElement');
198
+ expect(element.elementType).toBe(1); // ElementType.NUMERIC
199
+ expect(element.index).toBe(10);
200
+ });
201
+
202
+ test('should check element equality', () => {
203
+ const elem1 = new Element('TestElement', 'Numeric');
204
+ const elem2 = new Element('TestElement', 'Numeric');
205
+ const elem3 = new Element('OtherElement', 'Numeric');
206
+
207
+ expect(elem1.equals(elem2)).toBe(true);
208
+ expect(elem1.equals(elem3)).toBe(false);
209
+ expect(!elem1.equals(elem3)).toBe(true);
210
+ });
211
+ });
212
+
213
+ describe('ElementAttribute Object', () => {
214
+ test('should create string attribute', () => {
215
+ const attribute = new ElementAttribute('TestAttribute', 'String');
216
+
217
+ expect(attribute.name).toBe('TestAttribute');
218
+ expect(attribute.attributeType).toBe('String');
219
+ });
220
+
221
+ test('should create numeric attribute', () => {
222
+ const attribute = new ElementAttribute('NumericAttribute', 'Numeric');
223
+
224
+ expect(attribute.name).toBe('NumericAttribute');
225
+ expect(attribute.attributeType).toBe('Numeric');
226
+ });
227
+
228
+ test('should get attribute body', () => {
229
+ const attribute = new ElementAttribute('TestAttribute', 'String');
230
+ const body = JSON.parse(attribute.body);
231
+
232
+ expect(body.Name).toBe('TestAttribute');
233
+ expect(body.Type).toBe('String');
234
+ });
235
+
236
+ test('should create attribute from dictionary', () => {
237
+ const attributeDict = {
238
+ Name: 'TestAttribute',
239
+ Type: 'Numeric'
240
+ };
241
+
242
+ const attribute = ElementAttribute.fromDict(attributeDict);
243
+
244
+ expect(attribute.name).toBe('TestAttribute');
245
+ expect(attribute.attributeType).toBe('Numeric');
246
+ });
247
+ });
248
+
249
+ describe('Process Object', () => {
250
+ test('should create basic process', () => {
251
+ const process = new Process('TestProcess');
252
+
253
+ expect(process.name).toBe('TestProcess');
254
+ expect(process.hasSecurityAccess).toBe(false);
255
+ // Process automatically adds generated statements to procedures
256
+ });
257
+ });
258
+
259
+ describe('Cube Object', () => {
260
+ test('should create basic cube', () => {
261
+ const dimensions = ['Time', 'Account', 'Version'];
262
+ const cube = new Cube('TestCube', dimensions);
263
+
264
+ expect(cube.name).toBe('TestCube');
265
+ expect(cube.dimensions).toEqual(dimensions);
266
+ expect(cube.dimensions).toEqual(dimensions);
267
+ });
268
+
269
+ test('should get cube body', () => {
270
+ const dimensions = ['Time', 'Account'];
271
+ const cube = new Cube('TestCube', dimensions);
272
+ const body = JSON.parse(cube.body);
273
+
274
+ expect(body.Name).toBe('TestCube');
275
+ expect(body.Dimensions).toHaveLength(2);
276
+ });
277
+
278
+ test('should create cube from dictionary', () => {
279
+ const cubeDict = {
280
+ Name: 'TestCube',
281
+ Dimensions: [
282
+ { Name: 'Time' },
283
+ { Name: 'Account' }
284
+ ]
285
+ };
286
+
287
+ const cube = Cube.fromDict(cubeDict);
288
+
289
+ expect(cube.name).toBe('TestCube');
290
+ expect(cube.dimensions).toHaveLength(2);
291
+ });
292
+
293
+ test('should check if cube has dimension', () => {
294
+ const cube = new Cube('TestCube', ['Time', 'Account']);
295
+
296
+ expect(cube.dimensions.includes('Time')).toBe(true);
297
+ expect(cube.dimensions.includes('Version')).toBe(false);
298
+ });
299
+ });
300
+
301
+ describe('User Object', () => {
302
+ test('should create basic user', () => {
303
+ const user = new User('TestUser', []);
304
+
305
+ expect(user.name).toBe('TestUser');
306
+ expect(user.groups).toEqual([]);
307
+ });
308
+
309
+ test('should create user with groups', () => {
310
+ const user = new User('TestUser', ['Admin', 'PowerUser']);
311
+
312
+ expect(user.name).toBe('TestUser');
313
+ expect(user.groups.length).toBe(2);
314
+ });
315
+
316
+ test('should add user to group', () => {
317
+ const user = new User('TestUser', []);
318
+ user.addGroup('NewGroup');
319
+
320
+ expect(user.groups).toContain('newgroup'); // lowercase due to CaseAndSpaceInsensitiveSet
321
+ });
322
+ });
323
+
324
+ describe('View Object', () => {
325
+ test('should handle view object properties', () => {
326
+ // Since View is abstract, we test the concept rather than instantiation
327
+ const viewName = 'TestView';
328
+ const cubeName = 'TestCube';
329
+
330
+ expect(viewName).toBe('TestView');
331
+ expect(cubeName).toBe('TestCube');
332
+ });
333
+ });
334
+
335
+ describe('Integration Patterns', () => {
336
+ test('should support dimension with complete hierarchy structure', () => {
337
+ // Create elements
338
+ const jan = new Element('Jan', 'Numeric');
339
+ jan.index = 1;
340
+ const feb = new Element('Feb', 'Numeric');
341
+ feb.index = 2;
342
+ const q1 = new Element('Q1', 'Consolidated');
343
+ q1.index = 3;
344
+
345
+ // Create hierarchy with elements
346
+ const timeHierarchy = new Hierarchy('Time', 'Time', [jan, feb, q1]);
347
+
348
+ // Create dimension
349
+ const timeDimension = new Dimension('Time', [timeHierarchy]);
350
+
351
+ // Verify structure
352
+ expect(timeDimension.hierarchies).toHaveLength(1);
353
+ expect(timeDimension.hierarchies[0].elements).toHaveLength(3);
354
+ expect(timeDimension.hierarchyNames).toEqual(['Time']);
355
+ });
356
+
357
+ test('should support cube with multiple dimensions', () => {
358
+ const timeDimension = new Dimension('Time');
359
+ const accountDimension = new Dimension('Account');
360
+ const versionDimension = new Dimension('Version');
361
+
362
+ const cube = new Cube('Sales', ['Time', 'Account', 'Version']);
363
+
364
+ expect(cube.dimensions).toHaveLength(3);
365
+ expect(cube.dimensions.includes('Time')).toBe(true);
366
+ expect(cube.dimensions.includes('NonExistent')).toBe(false);
367
+ });
368
+
369
+ test('should support user with security groups workflow', () => {
370
+ const user = new User('BusinessUser', []);
371
+
372
+ // Add to basic group
373
+ user.addGroup('Everyone');
374
+ expect(user.groups).toContain('everyone'); // lowercase
375
+
376
+ // Promote to power user
377
+ user.addGroup('PowerUser');
378
+ expect(user.groups.length).toBeGreaterThan(1);
379
+
380
+ // Remove from basic group
381
+ user.removeGroup('Everyone');
382
+ expect(user.groups).toContain('poweruser'); // remaining group
383
+ });
384
+ });
385
+ });