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,322 @@
1
+ "use strict";
2
+ /**
3
+ * ProcessService Tests for tm1npm
4
+ * Comprehensive tests for TM1 Process operations with proper mocking
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const ProcessService_1 = require("../services/ProcessService");
8
+ const Process_1 = require("../objects/Process");
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('ProcessService Tests', () => {
19
+ let processService;
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
+ processService = new ProcessService_1.ProcessService(mockRestService);
35
+ });
36
+ describe('Process Retrieval Operations', () => {
37
+ test('should get all process names', async () => {
38
+ mockRestService.get.mockResolvedValue(createMockResponse({
39
+ value: [
40
+ { Name: 'Process1' },
41
+ { Name: 'Process2' },
42
+ { Name: 'Process3' }
43
+ ]
44
+ }));
45
+ const processNames = await processService.getAllNames();
46
+ expect(Array.isArray(processNames)).toBe(true);
47
+ expect(processNames.length).toBe(3);
48
+ expect(processNames).toEqual(['Process1', 'Process2', 'Process3']);
49
+ expect(mockRestService.get).toHaveBeenCalledWith("/Processes?$select=Name");
50
+ console.log('✅ Process names retrieved successfully');
51
+ });
52
+ test('should get all processes with skip control processes', async () => {
53
+ mockRestService.get.mockResolvedValue(createMockResponse({
54
+ value: [
55
+ { Name: 'UserProcess1', HasSecurityAccess: true },
56
+ { Name: 'UserProcess2', HasSecurityAccess: true }
57
+ ]
58
+ }));
59
+ const processes = await processService.getAll(true); // skip control processes
60
+ expect(Array.isArray(processes)).toBe(true);
61
+ expect(processes.length).toBe(2);
62
+ expect(processes[0].name).toBe('UserProcess1');
63
+ expect(processes[1].name).toBe('UserProcess2');
64
+ console.log('✅ All processes retrieved with control process filtering');
65
+ });
66
+ test('should get a specific process if it exists', async () => {
67
+ mockRestService.get.mockResolvedValueOnce(createMockResponse({
68
+ value: [{ Name: 'TestProcess' }]
69
+ }));
70
+ mockRestService.get.mockResolvedValueOnce(createMockResponse({
71
+ Name: 'TestProcess',
72
+ HasSecurityAccess: true,
73
+ PrologProcedure: 'sMessage = "Hello World";',
74
+ MetadataProcedure: '',
75
+ DataProcedure: '',
76
+ EpilogProcedure: ''
77
+ }));
78
+ const processNames = await processService.getAllNames();
79
+ expect(processNames).toContain('TestProcess');
80
+ const process = await processService.get('TestProcess');
81
+ expect(process).toBeDefined();
82
+ expect(process.name).toBe('TestProcess');
83
+ console.log('✅ Specific process retrieved successfully');
84
+ });
85
+ test('should check if a process exists', async () => {
86
+ // Test existing process
87
+ mockRestService.get.mockResolvedValue(createMockResponse({
88
+ Name: 'ExistingProcess',
89
+ HasSecurityAccess: true
90
+ }));
91
+ const exists = await processService.exists('ExistingProcess');
92
+ expect(exists).toBe(true);
93
+ console.log('✅ Process existence check working');
94
+ });
95
+ test('should check if a process does not exist', async () => {
96
+ // Test non-existing process - create proper TM1RestException
97
+ const mockError = new TM1Exception_1.TM1RestException('Process not found', 404, { status: 404 });
98
+ mockRestService.get.mockRejectedValue(mockError);
99
+ const notExists = await processService.exists('NonExistentProcess');
100
+ expect(notExists).toBe(false);
101
+ console.log('✅ Process non-existence check working');
102
+ });
103
+ });
104
+ describe('Process Execution Operations', () => {
105
+ test('should handle process execution attempts', async () => {
106
+ mockRestService.post.mockResolvedValue(createMockResponse({
107
+ ProcessExecuteStatusCode: 'CompletedSuccessfully',
108
+ ErrorLogFile: ''
109
+ }));
110
+ await processService.execute('TestProcess');
111
+ expect(mockRestService.post).toHaveBeenCalledWith("/Processes('TestProcess')/tm1.Execute", "{}");
112
+ console.log('✅ Process execution handled successfully');
113
+ });
114
+ test('should handle process execution with parameters', async () => {
115
+ const parameters = [
116
+ { Name: 'pParam1', Value: 'Value1' },
117
+ { Name: 'pParam2', Value: 123 }
118
+ ];
119
+ mockRestService.post.mockResolvedValue(createMockResponse({
120
+ ProcessExecuteStatusCode: 'CompletedSuccessfully',
121
+ ErrorLogFile: ''
122
+ }));
123
+ await processService.executeWithReturn('TestProcess', parameters);
124
+ expect(mockRestService.post).toHaveBeenCalled();
125
+ console.log('✅ Process execution with parameters handled successfully');
126
+ });
127
+ test('should handle executeWithReturn attempts', async () => {
128
+ mockRestService.post.mockResolvedValue(createMockResponse({
129
+ ProcessExecuteStatusCode: 'CompletedSuccessfully',
130
+ ErrorLogFile: '',
131
+ ProcessReturnValue: 'Success'
132
+ }));
133
+ const result = await processService.executeWithReturn('TestProcess');
134
+ expect(result).toBeDefined();
135
+ expect(mockRestService.post).toHaveBeenCalled();
136
+ console.log('✅ Process executeWithReturn handled successfully');
137
+ });
138
+ });
139
+ describe('Process Compilation Operations', () => {
140
+ test('should handle process compilation attempts', async () => {
141
+ mockRestService.post.mockResolvedValue(createMockResponse({
142
+ ProcessCompileStatusCode: 'CompletedSuccessfully',
143
+ ErrorLogFile: ''
144
+ }));
145
+ const result = await processService.compile('TestProcess');
146
+ expect(result).toBeDefined();
147
+ expect(mockRestService.post).toHaveBeenCalledWith("/Processes('TestProcess')/tm1.Compile", "{}");
148
+ console.log('✅ Process compilation handled successfully');
149
+ });
150
+ });
151
+ describe('Process Error Handling', () => {
152
+ test('should handle invalid process names gracefully', async () => {
153
+ mockRestService.get.mockRejectedValue({
154
+ response: { status: 400, statusText: 'Bad Request' }
155
+ });
156
+ await expect(processService.get('')).rejects.toMatchObject({
157
+ response: { status: 400 }
158
+ });
159
+ console.log('✅ Invalid process names handled gracefully');
160
+ });
161
+ test('should handle network errors gracefully', async () => {
162
+ mockRestService.get.mockRejectedValue({
163
+ code: 'ECONNREFUSED'
164
+ });
165
+ await expect(processService.getAllNames()).rejects.toMatchObject({
166
+ code: 'ECONNREFUSED'
167
+ });
168
+ console.log('✅ Network errors handled gracefully');
169
+ });
170
+ test('should handle authentication errors', async () => {
171
+ mockRestService.get.mockRejectedValue({
172
+ response: { status: 401, statusText: 'Unauthorized' }
173
+ });
174
+ await expect(processService.getAllNames()).rejects.toMatchObject({
175
+ response: { status: 401 }
176
+ });
177
+ console.log('✅ Authentication errors handled gracefully');
178
+ });
179
+ });
180
+ describe('Process Service Edge Cases', () => {
181
+ test('should handle empty process lists', async () => {
182
+ mockRestService.get.mockResolvedValue(createMockResponse({
183
+ value: []
184
+ }));
185
+ const processNames = await processService.getAllNames();
186
+ expect(Array.isArray(processNames)).toBe(true);
187
+ expect(processNames.length).toBe(0);
188
+ console.log('✅ Empty process lists handled correctly');
189
+ });
190
+ test('should handle concurrent process operations', async () => {
191
+ mockRestService.get.mockResolvedValue(createMockResponse({
192
+ value: [{ Name: 'TestProcess' }]
193
+ }));
194
+ const operations = [
195
+ processService.getAllNames(),
196
+ processService.getAllNames(),
197
+ processService.getAllNames()
198
+ ];
199
+ const results = await Promise.allSettled(operations);
200
+ const successful = results.filter(r => r.status === 'fulfilled');
201
+ expect(successful.length).toBe(3);
202
+ console.log('✅ Concurrent operations handled successfully');
203
+ });
204
+ test('should handle large process lists efficiently', async () => {
205
+ const largeProcessList = Array(1000).fill(null).map((_, i) => ({
206
+ Name: `Process${i}`,
207
+ HasSecurityAccess: true
208
+ }));
209
+ mockRestService.get.mockResolvedValue(createMockResponse({
210
+ value: largeProcessList
211
+ }));
212
+ const startTime = Date.now();
213
+ const processNames = await processService.getAllNames();
214
+ const endTime = Date.now();
215
+ expect(processNames.length).toBe(1000);
216
+ expect(endTime - startTime).toBeLessThan(1000); // Should be fast with mocking
217
+ console.log('✅ Large process lists handled efficiently');
218
+ });
219
+ });
220
+ describe('Process Service Integration', () => {
221
+ test('should maintain consistent data across operations', async () => {
222
+ const processData = {
223
+ value: [
224
+ { Name: 'Process1' },
225
+ { Name: 'Process2' }
226
+ ]
227
+ };
228
+ mockRestService.get.mockResolvedValue(createMockResponse(processData));
229
+ const names1 = await processService.getAllNames();
230
+ const names2 = await processService.getAllNames();
231
+ expect(names1).toEqual(names2);
232
+ expect(names1).toEqual(['Process1', 'Process2']);
233
+ console.log('✅ Data consistency maintained across operations');
234
+ });
235
+ });
236
+ describe('Process CRUD Operations', () => {
237
+ test('should handle process creation and deletion lifecycle', async () => {
238
+ const testProcess = new Process_1.Process('TestProcess', true, // hasSecurityAccess
239
+ '', // uiData
240
+ [], // parameters
241
+ [], // variables
242
+ [], // variablesUiData
243
+ 'sMessage = "Test Process";' // prologProcedure
244
+ );
245
+ // Mock process existence check (false initially)
246
+ const mockError = new TM1Exception_1.TM1RestException('Process not found', 404, { status: 404 });
247
+ mockRestService.get.mockRejectedValueOnce(mockError);
248
+ const initialExists = await processService.exists('TestProcess');
249
+ expect(initialExists).toBe(false);
250
+ // Mock process creation
251
+ mockRestService.post.mockResolvedValue(createMockResponse({}, 201));
252
+ await processService.create(testProcess);
253
+ // Mock process existence check (true after creation)
254
+ mockRestService.get.mockResolvedValueOnce(createMockResponse({
255
+ Name: 'TestProcess',
256
+ HasSecurityAccess: true
257
+ }));
258
+ const afterCreationExists = await processService.exists('TestProcess');
259
+ expect(afterCreationExists).toBe(true);
260
+ // Mock process deletion
261
+ mockRestService.delete.mockResolvedValue(createMockResponse({}, 204));
262
+ await processService.delete('TestProcess');
263
+ console.log('✅ Process lifecycle operations handled successfully');
264
+ });
265
+ });
266
+ describe('Process Search Operations', () => {
267
+ test('should handle searchStringInCode functionality', async () => {
268
+ mockRestService.get.mockResolvedValue(createMockResponse({
269
+ value: [
270
+ {
271
+ Name: 'ProcessWithCode',
272
+ PrologProcedure: 'sMessage = "Hello World";',
273
+ HasSecurityAccess: true
274
+ },
275
+ {
276
+ Name: 'ProcessWithoutCode',
277
+ PrologProcedure: 'nValue = 123;',
278
+ HasSecurityAccess: true
279
+ }
280
+ ]
281
+ }));
282
+ const results = await processService.searchStringInCode('Hello');
283
+ expect(Array.isArray(results)).toBe(true);
284
+ expect(results.length).toBe(1);
285
+ expect(results[0]).toBe('ProcessWithCode'); // Returns process name string, not object
286
+ console.log('✅ Search string in code functionality working');
287
+ });
288
+ test('should handle empty search results gracefully', async () => {
289
+ mockRestService.get.mockResolvedValue(createMockResponse({
290
+ value: [
291
+ {
292
+ Name: 'Process1',
293
+ PrologProcedure: 'nValue = 123;',
294
+ HasSecurityAccess: true
295
+ }
296
+ ]
297
+ }));
298
+ const results = await processService.searchStringInCode('NonExistentString');
299
+ expect(Array.isArray(results)).toBe(true);
300
+ expect(results.length).toBe(0);
301
+ console.log('✅ Empty search results handled gracefully');
302
+ });
303
+ });
304
+ describe('Process Debug Operations', () => {
305
+ test('should handle debug breakpoint operations for existing processes', async () => {
306
+ mockRestService.get.mockResolvedValue(createMockResponse({
307
+ value: [{ Name: 'DebugProcess' }]
308
+ }));
309
+ // Mock debug operations (these would typically return specific debug info)
310
+ mockRestService.post.mockResolvedValue(createMockResponse({
311
+ DebugInfo: 'Breakpoint set successfully'
312
+ }));
313
+ const processNames = await processService.getAllNames();
314
+ expect(processNames).toContain('DebugProcess');
315
+ // In a real implementation, this would set debug breakpoints
316
+ // For now, we just verify the mock interaction
317
+ expect(mockRestService.get).toHaveBeenCalled();
318
+ console.log('✅ Debug operations handled for existing processes');
319
+ });
320
+ });
321
+ });
322
+ //# sourceMappingURL=processService.test.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * RestService Tests for tm1npm
3
+ * Comprehensive tests for TM1 REST API operations with proper mocking
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=restService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restService.test.d.ts","sourceRoot":"","sources":["../../src/tests/restService.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /**
3
+ * RestService Tests for tm1npm
4
+ * Comprehensive tests for TM1 REST API operations with proper mocking
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const RestService_1 = require("../services/RestService");
11
+ const axios_1 = __importDefault(require("axios"));
12
+ // Mock axios
13
+ jest.mock('axios');
14
+ const mockedAxios = axios_1.default;
15
+ // Helper function to create mock AxiosResponse
16
+ const createMockResponse = (data, status = 200) => ({
17
+ data,
18
+ status,
19
+ statusText: status === 200 ? 'OK' : status === 201 ? 'Created' : status === 204 ? 'No Content' : 'Error',
20
+ headers: {},
21
+ config: {}
22
+ });
23
+ describe('RestService Tests', () => {
24
+ let restService;
25
+ beforeEach(() => {
26
+ // Clear all mocks
27
+ jest.clearAllMocks();
28
+ // Mock axios.create
29
+ const mockAxiosInstance = {
30
+ get: jest.fn(),
31
+ post: jest.fn(),
32
+ patch: jest.fn(),
33
+ delete: jest.fn(),
34
+ put: jest.fn(),
35
+ interceptors: {
36
+ request: { use: jest.fn() },
37
+ response: { use: jest.fn() }
38
+ }
39
+ };
40
+ mockedAxios.create.mockReturnValue(mockAxiosInstance);
41
+ const config = {
42
+ baseUrl: 'http://localhost:8879/api/v1',
43
+ user: 'admin',
44
+ password: 'password',
45
+ timeout: 30000
46
+ };
47
+ restService = new RestService_1.RestService(config);
48
+ });
49
+ describe('Basic HTTP Operations', () => {
50
+ test('should handle GET requests', async () => {
51
+ const mockResponse = createMockResponse({ value: '11.8.0' });
52
+ restService.axiosInstance.get.mockResolvedValue(mockResponse);
53
+ const response = await restService.get('/Configuration/ProductVersion');
54
+ expect(response.status).toBe(200);
55
+ expect(response.data.value).toBe('11.8.0');
56
+ });
57
+ test('should handle POST requests', async () => {
58
+ const mockResponse = createMockResponse({}, 201);
59
+ restService.axiosInstance.post.mockResolvedValue(mockResponse);
60
+ const response = await restService.post('/test', { data: 'test' });
61
+ expect(response.status).toBe(201);
62
+ });
63
+ test('should handle PATCH requests', async () => {
64
+ const mockResponse = createMockResponse({}, 200);
65
+ restService.axiosInstance.patch.mockResolvedValue(mockResponse);
66
+ const response = await restService.patch('/test', { data: 'updated' });
67
+ expect(response.status).toBe(200);
68
+ });
69
+ test('should handle DELETE requests', async () => {
70
+ const mockResponse = createMockResponse({}, 204);
71
+ restService.axiosInstance.delete.mockResolvedValue(mockResponse);
72
+ const response = await restService.delete('/test');
73
+ expect(response.status).toBe(204);
74
+ });
75
+ test('should handle PUT requests', async () => {
76
+ const mockResponse = createMockResponse({}, 200);
77
+ restService.axiosInstance.put.mockResolvedValue(mockResponse);
78
+ const response = await restService.put('/test', { data: 'test' });
79
+ expect(response.status).toBe(200);
80
+ });
81
+ });
82
+ describe('Configuration and Setup', () => {
83
+ test('should build base URL correctly', () => {
84
+ expect(restService).toBeDefined();
85
+ expect(restService.config.baseUrl).toContain('localhost:8879');
86
+ });
87
+ test('should set timeout correctly', () => {
88
+ expect(restService.config.timeout).toBe(30000);
89
+ });
90
+ test('should handle authentication config', () => {
91
+ expect(restService.config.user).toBe('admin');
92
+ expect(restService.config.password).toBe('password');
93
+ });
94
+ });
95
+ describe('Session Management', () => {
96
+ test('should handle session ID', () => {
97
+ restService.setSandbox('TestSandbox');
98
+ expect(restService.getSandbox()).toBe('TestSandbox');
99
+ });
100
+ test('should check login status', () => {
101
+ // Initially not logged in
102
+ expect(restService.isLoggedIn()).toBe(false);
103
+ });
104
+ });
105
+ describe('Error Handling', () => {
106
+ test('should handle network errors', async () => {
107
+ const networkError = new Error('Network Error');
108
+ restService.axiosInstance.get.mockRejectedValue(networkError);
109
+ await expect(restService.get('/test')).rejects.toThrow('Network Error');
110
+ });
111
+ test('should handle HTTP errors', async () => {
112
+ const httpError = {
113
+ response: {
114
+ status: 404,
115
+ statusText: 'Not Found',
116
+ data: { error: 'Resource not found' }
117
+ }
118
+ };
119
+ restService.axiosInstance.get.mockRejectedValue(httpError);
120
+ await expect(restService.get('/nonexistent')).rejects.toMatchObject(httpError);
121
+ });
122
+ test('should handle timeout errors', async () => {
123
+ const timeoutError = {
124
+ code: 'ECONNABORTED',
125
+ message: 'timeout of 30000ms exceeded'
126
+ };
127
+ restService.axiosInstance.get.mockRejectedValue(timeoutError);
128
+ await expect(restService.get('/slow-endpoint')).rejects.toMatchObject(timeoutError);
129
+ });
130
+ });
131
+ describe('API Metadata', () => {
132
+ test('should get API metadata', async () => {
133
+ const mockResponse = createMockResponse({
134
+ version: '1.0',
135
+ capabilities: ['read', 'write']
136
+ });
137
+ restService.axiosInstance.get.mockResolvedValue(mockResponse);
138
+ const metadata = await restService.getApiMetadata();
139
+ expect(metadata.version).toBe('1.0');
140
+ expect(metadata.capabilities).toEqual(['read', 'write']);
141
+ });
142
+ });
143
+ describe('RestService Integration', () => {
144
+ test('should handle complex request scenarios', async () => {
145
+ // Mock a sequence of operations
146
+ const getMockResponse = createMockResponse({ id: 'test123' });
147
+ const postMockResponse = createMockResponse({}, 201);
148
+ const patchMockResponse = createMockResponse({}, 200);
149
+ const deleteMockResponse = createMockResponse({}, 204);
150
+ restService.axiosInstance.get
151
+ .mockResolvedValueOnce(getMockResponse);
152
+ restService.axiosInstance.post
153
+ .mockResolvedValueOnce(postMockResponse);
154
+ restService.axiosInstance.patch
155
+ .mockResolvedValueOnce(patchMockResponse);
156
+ restService.axiosInstance.delete
157
+ .mockResolvedValueOnce(deleteMockResponse);
158
+ // Execute sequence
159
+ const getResponse = await restService.get('/test');
160
+ expect(getResponse.data.id).toBe('test123');
161
+ const postResponse = await restService.post('/test', { name: 'test' });
162
+ expect(postResponse.status).toBe(201);
163
+ const patchResponse = await restService.patch('/test', { name: 'updated' });
164
+ expect(patchResponse.status).toBe(200);
165
+ const deleteResponse = await restService.delete('/test');
166
+ expect(deleteResponse.status).toBe(204);
167
+ });
168
+ test('should maintain consistency across operations', async () => {
169
+ const mockResponse = createMockResponse({ consistent: true });
170
+ restService.axiosInstance.get.mockResolvedValue(mockResponse);
171
+ const response1 = await restService.get('/test');
172
+ const response2 = await restService.get('/test');
173
+ expect(response1.data).toEqual(response2.data);
174
+ });
175
+ });
176
+ });
177
+ //# sourceMappingURL=restService.test.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Advanced Security and Validation Tests for tm1npm
3
+ * Comprehensive security testing covering injection, validation, and edge cases
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=security.advanced.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.advanced.test.d.ts","sourceRoot":"","sources":["../../src/tests/security.advanced.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}