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,587 @@
1
+ # 📖 tm1npm Development Guide
2
+
3
+ Welcome to the tm1npm development guide! This document will help you understand how to develop, build, and maintain the tm1npm TypeScript/Node.js module for IBM TM1 and Planning Analytics.
4
+
5
+ ## 📋 Table of Contents
6
+
7
+ - [🚀 Getting Started](#-getting-started)
8
+ - [🏗️ Build System](#️-build-system)
9
+ - [🔗 TM1 Connection Testing](#-tm1-connection-testing)
10
+ - [🔍 Code Quality](#-code-quality)
11
+ - [🧹 Maintenance](#-maintenance)
12
+ - [📁 Project Structure](#-project-structure)
13
+ - [⚙️ Configuration](#️-configuration)
14
+ - [🛠️ Development Workflow](#️-development-workflow)
15
+ - [📦 Publishing](#-publishing)
16
+
17
+ ## 🚀 Getting Started
18
+
19
+ ### Prerequisites
20
+ - **Node.js**: >= 16.0.0
21
+ - **npm**: >= 7.0.0
22
+ - **TypeScript**: ^5.0.0
23
+
24
+ ### Installation
25
+ ```bash
26
+ git clone https://github.com/KimKaoPoo/tm1npm.git
27
+ cd tm1npm
28
+ npm install
29
+ ```
30
+
31
+ ## 🏗️ Build System
32
+
33
+ ### Core Build Commands
34
+
35
+ #### `npm run build`
36
+ Compiles TypeScript source code to JavaScript in the `lib/` directory.
37
+
38
+ ```bash
39
+ npm run build
40
+ ```
41
+
42
+ **What it does:**
43
+ - Transpiles all `.ts` files from `src/` to `lib/`
44
+ - Generates type declaration files (`.d.ts`)
45
+ - Applies TypeScript compiler optimizations
46
+ - Creates source maps for debugging
47
+
48
+ **Output:**
49
+ - `lib/` - Compiled JavaScript files
50
+ - `lib/index.js` - Main entry point
51
+ - `lib/index.d.ts` - Type definitions
52
+
53
+ #### `npm run dev`
54
+ Runs TypeScript compiler in watch mode for active development.
55
+
56
+ ```bash
57
+ npm run dev
58
+ ```
59
+
60
+ **What it does:**
61
+ - Monitors `src/` directory for file changes
62
+ - Automatically recompiles on save
63
+ - Provides fast incremental compilation
64
+ - Perfect for active development
65
+
66
+ **Use when:**
67
+ - Developing new features
68
+ - Making frequent code changes
69
+ - Need immediate feedback on compilation errors
70
+
71
+ #### `npm run clean`
72
+ Removes build artifacts and coverage reports.
73
+
74
+ ```bash
75
+ npm run clean
76
+ ```
77
+
78
+ **What it does:**
79
+ - Deletes `lib/` directory
80
+ - Removes `coverage/` reports
81
+ - Cleans up temporary build files
82
+
83
+ **Use when:**
84
+ - Preparing for fresh build
85
+ - Troubleshooting build issues
86
+ - Before publishing
87
+
88
+ #### `npm run prepare`
89
+ Automatically runs before publishing to npm.
90
+
91
+ ```bash
92
+ npm run prepare
93
+ ```
94
+
95
+ **What it does:**
96
+ - Automatically triggers `npm run build`
97
+ - Ensures fresh build before package distribution
98
+ - Runs automatically during `npm publish`
99
+
100
+ ## 🔗 TM1 Connection Testing
101
+
102
+ ⚠️ **Important**: These scripts are designed to test connections to **actual TM1 server instances**. They require a running TM1 server and proper credentials.
103
+
104
+ ### Connection Test Scripts
105
+
106
+ #### `npm run test:connection`
107
+ Tests connection to your TM1 server instance.
108
+
109
+ ```bash
110
+ npm run test:connection
111
+ ```
112
+
113
+ **What it does:**
114
+ - Connects to your configured TM1 server
115
+ - Validates authentication credentials
116
+ - Tests basic REST API connectivity
117
+ - Verifies server accessibility
118
+
119
+ **Prerequisites:**
120
+ - Running TM1 server instance
121
+ - Valid TM1 user credentials
122
+ - Network access to TM1 server
123
+ - Properly configured `.env` file
124
+
125
+ #### `npm run test:simple`
126
+ Runs simplified connection test with minimal operations.
127
+
128
+ ```bash
129
+ npm run test:simple
130
+ ```
131
+
132
+ **What it does:**
133
+ - Performs basic TM1 server connection
134
+ - Tests fundamental service availability
135
+ - Minimal server impact
136
+ - Quick connectivity verification
137
+
138
+ #### `npm run test:minimal`
139
+ Most basic connection test for initial setup verification.
140
+
141
+ ```bash
142
+ npm run test:minimal
143
+ ```
144
+
145
+ **What it does:**
146
+ - Validates server reachability
147
+ - Tests authentication only
148
+ - No data operations
149
+ - Perfect for initial setup testing
150
+
151
+ ### Advanced TM1 Testing Scripts
152
+
153
+ #### `npm run test:working`
154
+ Comprehensive integration test with real TM1 operations.
155
+
156
+ ```bash
157
+ npm run test:working
158
+ ```
159
+
160
+ **What it does:**
161
+ - Tests multiple TM1 services (dimensions, cubes, processes)
162
+ - Performs read/write operations on server
163
+ - Validates service functionality end-to-end
164
+ - **⚠️ May modify server data** - use with caution
165
+
166
+ #### `npm run test:security`
167
+ Tests TM1 security and authentication features.
168
+
169
+ ```bash
170
+ npm run test:security
171
+ ```
172
+
173
+ **What it does:**
174
+ - Validates user authentication methods
175
+ - Tests security permissions
176
+ - Verifies access control functionality
177
+ - Requires TM1 security admin privileges
178
+
179
+ #### `npm run test:performance`
180
+ Performance testing against TM1 server.
181
+
182
+ ```bash
183
+ npm run test:performance
184
+ ```
185
+
186
+ **What it does:**
187
+ - Measures response times for TM1 operations
188
+ - Tests concurrent connection handling
189
+ - Evaluates server performance under load
190
+ - **⚠️ May impact server performance**
191
+
192
+ #### `npm run test:edge-cases`
193
+ Tests edge cases and error handling with TM1 server.
194
+
195
+ ```bash
196
+ npm run test:edge-cases
197
+ ```
198
+
199
+ **What it does:**
200
+ - Tests error conditions and exception handling
201
+ - Validates edge case scenarios
202
+ - Tests server behavior with invalid data
203
+ - May generate expected errors in server logs
204
+
205
+ ### Setting Up TM1 Connection
206
+
207
+ #### 1. Environment Configuration
208
+ Create and configure your `.env` file:
209
+
210
+ ```bash
211
+ # Copy the example environment file
212
+ cp .env.example .env
213
+
214
+ # Edit with your TM1 server details
215
+ nano .env
216
+ ```
217
+
218
+ #### 2. Required Environment Variables
219
+ ```env
220
+ # TM1 Server Connection Settings
221
+ TM1_ADDRESS=your-tm1-server.company.com
222
+ TM1_PORT=8080
223
+ TM1_USER=your-username
224
+ TM1_PASSWORD=your-password
225
+ TM1_SSL=true
226
+
227
+ # Optional Settings
228
+ TM1_NAMESPACE=LDAP
229
+ TM1_DATABASE=tm1srv01
230
+ TM1_TIMEOUT=30000
231
+ ```
232
+
233
+ #### 3. Connection Test Workflow
234
+ ```bash
235
+ # 1. Start with minimal connection test
236
+ npm run test:minimal
237
+
238
+ # 2. If successful, try simple test
239
+ npm run test:simple
240
+
241
+ # 3. For full validation, run connection test
242
+ npm run test:connection
243
+
244
+ # 4. Advanced testing (use carefully)
245
+ npm run test:working
246
+ ```
247
+
248
+ ### 🔒 Security Considerations
249
+
250
+ **Important Notes:**
251
+ - **Never commit `.env` files** to version control
252
+ - **Use dedicated test credentials** when possible
253
+ - **Test on development servers** before production
254
+ - **Be aware of data modification** in working tests
255
+ - **Monitor server logs** during testing
256
+
257
+ ### 🚨 Troubleshooting Connection Issues
258
+
259
+ #### Common Connection Problems
260
+ ```bash
261
+ # Network connectivity
262
+ ping your-tm1-server.company.com
263
+
264
+ # Port accessibility
265
+ telnet your-tm1-server.company.com 8080
266
+
267
+ # SSL certificate issues
268
+ # Set TM1_SSL=false for testing (not recommended for production)
269
+ ```
270
+
271
+ #### Error Messages and Solutions
272
+
273
+ | Error | Likely Cause | Solution |
274
+ |-------|--------------|----------|
275
+ | `ECONNREFUSED` | Server not running or wrong port | Check server status and port |
276
+ | `Authentication failed` | Invalid credentials | Verify username/password |
277
+ | `SSL/TLS errors` | Certificate issues | Check SSL configuration |
278
+ | `Timeout` | Network/server issues | Increase timeout or check network |
279
+
280
+ ### Connection Testing Best Practices
281
+
282
+ 1. **Start Small**: Begin with `test:minimal` before advanced tests
283
+ 2. **Use Test Servers**: Don't test against production TM1 instances
284
+ 3. **Monitor Impact**: Watch server performance during testing
285
+ 4. **Clean Up**: Remove any test data created during testing
286
+ 5. **Document Results**: Keep track of successful connection configurations
287
+
288
+ ## 🔍 Code Quality
289
+
290
+ ### Linting Commands
291
+
292
+ #### `npm run lint`
293
+ Analyzes code for style and potential issues.
294
+
295
+ ```bash
296
+ npm run lint
297
+ ```
298
+
299
+ **What it does:**
300
+ - Runs ESLint on all TypeScript files in `src/`
301
+ - Checks for code style violations
302
+ - Identifies potential bugs and issues
303
+ - Enforces consistent coding standards
304
+
305
+ **Example output:**
306
+ ```
307
+ src/services/RestService.ts
308
+ 45:12 error Missing return type annotation @typescript-eslint/explicit-function-return-type
309
+ 67:8 warning 'unusedVar' is assigned a value but never used @typescript-eslint/no-unused-vars
310
+ ```
311
+
312
+ #### `npm run lint:fix`
313
+ Automatically fixes linting issues where possible.
314
+
315
+ ```bash
316
+ npm run lint:fix
317
+ ```
318
+
319
+ **What it does:**
320
+ - Runs ESLint with `--fix` flag
321
+ - Automatically corrects style issues
322
+ - Formats code according to project standards
323
+ - Reports issues that require manual fixes
324
+
325
+ **Use when:**
326
+ - Before committing code
327
+ - Cleaning up code formatting
328
+ - Preparing for code review
329
+
330
+ ## 🧹 Maintenance
331
+
332
+ ### Environment Management
333
+
334
+ #### Environment Files
335
+ The project uses environment files for configuration:
336
+
337
+ ```bash
338
+ # Create your local environment file
339
+ cp .env.example .env
340
+ # Edit with your TM1 server details
341
+ nano .env
342
+ ```
343
+
344
+ **Environment variables:**
345
+ ```env
346
+ TM1_ADDRESS=localhost
347
+ TM1_PORT=8080
348
+ TM1_USER=admin
349
+ TM1_PASSWORD=apple
350
+ TM1_SSL=false
351
+ ```
352
+
353
+ ### Development Utilities
354
+
355
+ #### File Watching
356
+ ```bash
357
+ # Watch mode for development
358
+ npm run dev
359
+
360
+ # In another terminal, run your code
361
+ node lib/index.js
362
+ ```
363
+
364
+ #### Debugging Setup
365
+ ```typescript
366
+ // Add debug configuration to your IDE
367
+ {
368
+ "type": "node",
369
+ "request": "launch",
370
+ "name": "Debug tm1npm",
371
+ "program": "${workspaceFolder}/lib/index.js",
372
+ "preLaunchTask": "npm: build"
373
+ }
374
+ ```
375
+
376
+ ## 📁 Project Structure
377
+
378
+ ```
379
+ tm1npm/
380
+ ├── src/ # TypeScript source code
381
+ │ ├── services/ # TM1 service classes
382
+ │ ├── objects/ # TM1 object models
383
+ │ ├── exceptions/ # Custom exceptions
384
+ │ ├── utils/ # Utility functions
385
+ │ └── index.ts # Main entry point
386
+ ├── lib/ # Compiled JavaScript (generated)
387
+ ├── coverage/ # Coverage reports (generated)
388
+ ├── tests/ # Integration test files
389
+ ├── .env # Environment configuration
390
+ ├── .gitignore # Git ignore patterns
391
+ ├── tsconfig.json # TypeScript configuration
392
+ ├── jest.config.js # Jest configuration
393
+ ├── eslint.config.js # ESLint configuration
394
+ └── package.json # NPM package configuration
395
+ ```
396
+
397
+ ## ⚙️ Configuration
398
+
399
+ ### TypeScript Configuration
400
+ The project uses `tsconfig.json` for TypeScript compilation settings:
401
+
402
+ ```json
403
+ {
404
+ "compilerOptions": {
405
+ "target": "ES2020",
406
+ "module": "commonjs",
407
+ "outDir": "./lib",
408
+ "rootDir": "./src",
409
+ "strict": true,
410
+ "declaration": true,
411
+ "esModuleInterop": true
412
+ }
413
+ }
414
+ ```
415
+
416
+ ### ESLint Configuration
417
+ Code quality rules are defined in `eslint.config.js`:
418
+
419
+ - **Style**: Consistent code formatting
420
+ - **Type Safety**: TypeScript-specific rules
421
+ - **Best Practices**: JavaScript/Node.js conventions
422
+ - **Custom Rules**: TM1-specific patterns
423
+
424
+ ## 🛠️ Development Workflow
425
+
426
+ ### 1. Feature Development
427
+ ```bash
428
+ # Start development mode
429
+ npm run dev
430
+
431
+ # In another terminal, make your changes
432
+ # The build will automatically update
433
+
434
+ # Check code quality
435
+ npm run lint
436
+
437
+ # Fix any issues
438
+ npm run lint:fix
439
+ ```
440
+
441
+ ### 2. Code Quality Checks
442
+ ```bash
443
+ # Before committing
444
+ npm run lint
445
+ npm run build
446
+
447
+ # Verify everything works
448
+ node lib/index.js
449
+ ```
450
+
451
+ ### 3. Pre-commit Checklist
452
+ - [ ] `npm run lint` passes without errors
453
+ - [ ] `npm run build` completes successfully
454
+ - [ ] Code follows project conventions
455
+ - [ ] Environment files are not committed
456
+
457
+ ### 4. Build Verification
458
+ ```bash
459
+ # Clean build
460
+ npm run clean
461
+ npm run build
462
+
463
+ # Verify package contents
464
+ ls -la lib/
465
+ ```
466
+
467
+ ## 📦 Publishing
468
+
469
+ ### Pre-publication Steps
470
+ ```bash
471
+ # 1. Clean previous builds
472
+ npm run clean
473
+
474
+ # 2. Fresh build
475
+ npm run build
476
+
477
+ # 3. Verify package contents
478
+ npm pack --dry-run
479
+
480
+ # 4. Update version (if needed)
481
+ npm version patch|minor|major
482
+ ```
483
+
484
+ ### Package Contents
485
+ When published, the package includes:
486
+ - `lib/` - Compiled JavaScript
487
+ - `lib/index.d.ts` - Type definitions
488
+ - `package.json` - Package metadata
489
+ - `README.md` - Documentation
490
+
491
+ ### npm Scripts Summary
492
+
493
+ #### Build & Development Scripts
494
+ | Script | Purpose | When to Use |
495
+ |--------|---------|-------------|
496
+ | `build` | Compile TypeScript | Before testing production build |
497
+ | `dev` | Watch mode compilation | During active development |
498
+ | `clean` | Remove build artifacts | Before fresh build or troubleshooting |
499
+ | `prepare` | Pre-publish build | Automatic before npm publish |
500
+ | `lint` | Check code quality | Before committing code |
501
+ | `lint:fix` | Fix linting issues | Code cleanup and formatting |
502
+
503
+ #### TM1 Connection Testing Scripts
504
+ | Script | Purpose | Prerequisites |
505
+ |--------|---------|---------------|
506
+ | `test:minimal` | Basic connection test | Running TM1 server, valid credentials |
507
+ | `test:simple` | Simple connection validation | Running TM1 server, configured `.env` |
508
+ | `test:connection` | Full connection test | TM1 server, network access, credentials |
509
+ | `test:working` | ⚠️ Comprehensive integration test | TM1 server, **may modify data** |
510
+ | `test:security` | Security & authentication test | TM1 server, admin privileges |
511
+ | `test:performance` | Performance testing | TM1 server, **may impact performance** |
512
+ | `test:edge-cases` | Error handling validation | TM1 server, expect errors in logs |
513
+
514
+ **⚠️ Important**: All TM1 connection tests require an actual TM1 server instance. Use development servers only!
515
+
516
+ ## 🔧 Troubleshooting
517
+
518
+ ### Common Issues
519
+
520
+ #### Build Errors
521
+ ```bash
522
+ # Clear cache and rebuild
523
+ npm run clean
524
+ rm -rf node_modules package-lock.json
525
+ npm install
526
+ npm run build
527
+ ```
528
+
529
+ #### Linting Issues
530
+ ```bash
531
+ # Auto-fix common issues
532
+ npm run lint:fix
533
+
534
+ # For complex issues, check:
535
+ # - Import/export statements
536
+ # - Type annotations
537
+ # - Unused variables
538
+ ```
539
+
540
+ #### TypeScript Errors
541
+ ```bash
542
+ # Check TypeScript configuration
543
+ npx tsc --showConfig
544
+
545
+ # Verify types are installed
546
+ npm list @types/node
547
+ ```
548
+
549
+ ## 💡 Tips and Best Practices
550
+
551
+ ### Development Tips
552
+ 1. **Use watch mode** (`npm run dev`) for active development
553
+ 2. **Run linting frequently** to catch issues early
554
+ 3. **Clean builds** before major testing or publishing
555
+ 4. **Keep environment files** out of version control
556
+
557
+ ### Code Quality
558
+ 1. **Follow TypeScript strict mode** - enabled in tsconfig.json
559
+ 2. **Use explicit return types** for better documentation
560
+ 3. **Handle errors properly** with custom TM1 exceptions
561
+ 4. **Write self-documenting code** with clear variable names
562
+
563
+ ### Performance
564
+ 1. **Use incremental compilation** in development
565
+ 2. **Minimize dependencies** in production builds
566
+ 3. **Leverage TypeScript optimizations** through proper configuration
567
+
568
+ ---
569
+
570
+ ## 🤝 Contributing
571
+
572
+ When contributing to tm1npm:
573
+
574
+ 1. **Fork the repository** and create a feature branch
575
+ 2. **Follow the development workflow** outlined above
576
+ 3. **Ensure all checks pass**: `npm run lint && npm run build`
577
+ 4. **Write clear commit messages** describing your changes
578
+ 5. **Test your changes** thoroughly before submitting
579
+
580
+ ## 📞 Support
581
+
582
+ For development questions:
583
+ - **GitHub Issues**: Report bugs and feature requests
584
+ - **Documentation**: Check README.md for usage examples
585
+ - **Code Examples**: See `/tests` directory for integration patterns
586
+
587
+ Happy coding! 🚀
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 KimKaoPoo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.