@credibledata/cred-cli 0.0.103 → 0.0.105

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 (430) hide show
  1. package/README.md +106 -1
  2. package/dist/agent-contract.spec.js +548 -0
  3. package/dist/agent-contract.spec.js.map +1 -0
  4. package/dist/browser.js +72 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/browser.spec.js +125 -0
  7. package/dist/browser.spec.js.map +1 -0
  8. package/dist/client/api.js +4137 -1159
  9. package/dist/client/api.js.map +1 -1
  10. package/dist/client-codeassist/api.js +476 -0
  11. package/dist/client-codeassist/api.js.map +1 -0
  12. package/dist/client-codeassist/base.js +69 -0
  13. package/dist/client-codeassist/base.js.map +1 -0
  14. package/dist/client-codeassist/common.js +162 -0
  15. package/dist/client-codeassist/common.js.map +1 -0
  16. package/dist/client-codeassist/configuration.js +44 -0
  17. package/dist/client-codeassist/configuration.js.map +1 -0
  18. package/dist/client-codeassist/index.js +32 -0
  19. package/dist/client-codeassist/index.js.map +1 -0
  20. package/dist/clientconfiguration.js +17 -289
  21. package/dist/clientconfiguration.js.map +1 -1
  22. package/dist/clientconfiguration.spec.js +35 -96
  23. package/dist/clientconfiguration.spec.js.map +1 -1
  24. package/dist/commands/add.js +103 -3
  25. package/dist/commands/add.js.map +1 -1
  26. package/dist/commands/add.spec.js +113 -0
  27. package/dist/commands/add.spec.js.map +1 -0
  28. package/dist/commands/connection/createconnections.js +104 -7
  29. package/dist/commands/connection/createconnections.js.map +1 -1
  30. package/dist/commands/connection/createconnections.spec.js +35 -1
  31. package/dist/commands/connection/createconnections.spec.js.map +1 -1
  32. package/dist/commands/connection/deleteconnection.js +4 -2
  33. package/dist/commands/connection/deleteconnection.js.map +1 -1
  34. package/dist/commands/connection/deleteconnection.spec.js +6 -1
  35. package/dist/commands/connection/deleteconnection.spec.js.map +1 -1
  36. package/dist/commands/connection/listconnections.js +2 -0
  37. package/dist/commands/connection/listconnections.js.map +1 -1
  38. package/dist/commands/connection/updateconnection.js +365 -0
  39. package/dist/commands/connection/updateconnection.js.map +1 -0
  40. package/dist/commands/connection/updateconnection.spec.js +625 -0
  41. package/dist/commands/connection/updateconnection.spec.js.map +1 -0
  42. package/dist/commands/database/createdatabase.js +52 -0
  43. package/dist/commands/database/createdatabase.js.map +1 -0
  44. package/dist/commands/database/database.spec.js +267 -0
  45. package/dist/commands/database/database.spec.js.map +1 -0
  46. package/dist/commands/database/deletedatabase.js +91 -0
  47. package/dist/commands/database/deletedatabase.js.map +1 -0
  48. package/dist/commands/database/getdatabase.js +97 -0
  49. package/dist/commands/database/getdatabase.js.map +1 -0
  50. package/dist/commands/database/listdatabases.js +36 -0
  51. package/dist/commands/database/listdatabases.js.map +1 -0
  52. package/dist/commands/database/shared.js +125 -0
  53. package/dist/commands/database/shared.js.map +1 -0
  54. package/dist/commands/database/shared.spec.js +109 -0
  55. package/dist/commands/database/shared.spec.js.map +1 -0
  56. package/dist/commands/database/updatedatabase.js +39 -0
  57. package/dist/commands/database/updatedatabase.js.map +1 -0
  58. package/dist/commands/environment/createenvironment.js +59 -28
  59. package/dist/commands/environment/createenvironment.js.map +1 -1
  60. package/dist/commands/environment/createenvironment.spec.js +29 -0
  61. package/dist/commands/environment/createenvironment.spec.js.map +1 -1
  62. package/dist/commands/environment/deleteenvironment.js +3 -2
  63. package/dist/commands/environment/deleteenvironment.js.map +1 -1
  64. package/dist/commands/environment/deleteenvironment.spec.js +5 -1
  65. package/dist/commands/environment/deleteenvironment.spec.js.map +1 -1
  66. package/dist/commands/environment/getenvironment.js +1 -0
  67. package/dist/commands/environment/getenvironment.js.map +1 -1
  68. package/dist/commands/environment/listenvironments.js +40 -8
  69. package/dist/commands/environment/listenvironments.js.map +1 -1
  70. package/dist/commands/environment/listenvironments.spec.js +41 -2
  71. package/dist/commands/environment/listenvironments.spec.js.map +1 -1
  72. package/dist/commands/environment/setenvironment.js +145 -6
  73. package/dist/commands/environment/setenvironment.js.map +1 -1
  74. package/dist/commands/environment/setenvironment.spec.js +256 -8
  75. package/dist/commands/environment/setenvironment.spec.js.map +1 -1
  76. package/dist/commands/environment/updateenvironment.js +12 -8
  77. package/dist/commands/environment/updateenvironment.js.map +1 -1
  78. package/dist/commands/environment/updateenvironment.spec.js +36 -2
  79. package/dist/commands/environment/updateenvironment.spec.js.map +1 -1
  80. package/dist/commands/get.js +64 -1
  81. package/dist/commands/get.js.map +1 -1
  82. package/dist/commands/group/addmember.js +3 -1
  83. package/dist/commands/group/addmember.js.map +1 -1
  84. package/dist/commands/group/addmember.spec.js +7 -2
  85. package/dist/commands/group/addmember.spec.js.map +1 -1
  86. package/dist/commands/group/creategroup.js +2 -0
  87. package/dist/commands/group/creategroup.js.map +1 -1
  88. package/dist/commands/group/deletegroup.js +3 -1
  89. package/dist/commands/group/deletegroup.js.map +1 -1
  90. package/dist/commands/group/deletegroup.spec.js +7 -1
  91. package/dist/commands/group/deletegroup.spec.js.map +1 -1
  92. package/dist/commands/group/getgroup.js +2 -0
  93. package/dist/commands/group/getgroup.js.map +1 -1
  94. package/dist/commands/group/listgroups.js +2 -0
  95. package/dist/commands/group/listgroups.js.map +1 -1
  96. package/dist/commands/group/removemember.js +3 -1
  97. package/dist/commands/group/removemember.js.map +1 -1
  98. package/dist/commands/group/removemember.spec.js +7 -2
  99. package/dist/commands/group/removemember.spec.js.map +1 -1
  100. package/dist/commands/groupaccesstoken/deleteToken.js +2 -1
  101. package/dist/commands/groupaccesstoken/deleteToken.js.map +1 -1
  102. package/dist/commands/groupaccesstoken/groupContainer.js +2 -0
  103. package/dist/commands/groupaccesstoken/groupContainer.js.map +1 -1
  104. package/dist/commands/list.js +24 -4
  105. package/dist/commands/list.js.map +1 -1
  106. package/dist/commands/materialization/cancelrun.js +3 -1
  107. package/dist/commands/materialization/cancelrun.js.map +1 -1
  108. package/dist/commands/materialization/getindex.js +2 -0
  109. package/dist/commands/materialization/getindex.js.map +1 -1
  110. package/dist/commands/materialization/getmaterialization.js +2 -0
  111. package/dist/commands/materialization/getmaterialization.js.map +1 -1
  112. package/dist/commands/materialization/getpreaggregate.js +2 -0
  113. package/dist/commands/materialization/getpreaggregate.js.map +1 -1
  114. package/dist/commands/materialization/getrun.js +2 -0
  115. package/dist/commands/materialization/getrun.js.map +1 -1
  116. package/dist/commands/materialization/listindexes.js +2 -0
  117. package/dist/commands/materialization/listindexes.js.map +1 -1
  118. package/dist/commands/materialization/listmaterializations.js +2 -0
  119. package/dist/commands/materialization/listmaterializations.js.map +1 -1
  120. package/dist/commands/materialization/listpreaggregates.js +2 -0
  121. package/dist/commands/materialization/listpreaggregates.js.map +1 -1
  122. package/dist/commands/materialization/listruns.js +3 -1
  123. package/dist/commands/materialization/listruns.js.map +1 -1
  124. package/dist/commands/materialization/rerun.js +3 -1
  125. package/dist/commands/materialization/rerun.js.map +1 -1
  126. package/dist/commands/misc/inquirerHost.js +87 -0
  127. package/dist/commands/misc/inquirerHost.js.map +1 -0
  128. package/dist/commands/misc/inquirerHost.spec.js +91 -0
  129. package/dist/commands/misc/inquirerHost.spec.js.map +1 -0
  130. package/dist/commands/misc/login.js +348 -58
  131. package/dist/commands/misc/login.js.map +1 -1
  132. package/dist/commands/misc/login.spec.js +525 -7
  133. package/dist/commands/misc/login.spec.js.map +1 -1
  134. package/dist/commands/misc/logout.js +26 -3
  135. package/dist/commands/misc/logout.js.map +1 -1
  136. package/dist/commands/misc/logout.spec.js +52 -12
  137. package/dist/commands/misc/logout.spec.js.map +1 -1
  138. package/dist/commands/misc/resolveLoginTarget.spec.js +90 -0
  139. package/dist/commands/misc/resolveLoginTarget.spec.js.map +1 -0
  140. package/dist/commands/misc/scope.spec.js +108 -0
  141. package/dist/commands/misc/scope.spec.js.map +1 -0
  142. package/dist/commands/misc/set-access-token.js +1 -1
  143. package/dist/commands/misc/set-access-token.js.map +1 -1
  144. package/dist/commands/misc/set-access-token.spec.js +13 -2
  145. package/dist/commands/misc/set-access-token.spec.js.map +1 -1
  146. package/dist/commands/misc/setup.js +819 -0
  147. package/dist/commands/misc/setup.js.map +1 -0
  148. package/dist/commands/misc/setup.spec.js +783 -0
  149. package/dist/commands/misc/setup.spec.js.map +1 -0
  150. package/dist/commands/misc/status.js +168 -0
  151. package/dist/commands/misc/status.js.map +1 -0
  152. package/dist/commands/misc/status.spec.js +301 -0
  153. package/dist/commands/misc/status.spec.js.map +1 -0
  154. package/dist/commands/misc/token.js +57 -0
  155. package/dist/commands/misc/token.js.map +1 -0
  156. package/dist/commands/misc/token.spec.js +92 -0
  157. package/dist/commands/misc/token.spec.js.map +1 -0
  158. package/dist/commands/package/deletepackage.js +4 -2
  159. package/dist/commands/package/deletepackage.js.map +1 -1
  160. package/dist/commands/package/deletepackage.spec.js +7 -1
  161. package/dist/commands/package/deletepackage.spec.js.map +1 -1
  162. package/dist/commands/package/getpackage.js +142 -0
  163. package/dist/commands/package/getpackage.js.map +1 -0
  164. package/dist/commands/package/getpackage.spec.js +246 -0
  165. package/dist/commands/package/getpackage.spec.js.map +1 -0
  166. package/dist/commands/package/listpackages.js +2 -0
  167. package/dist/commands/package/listpackages.js.map +1 -1
  168. package/dist/commands/package/publish.archive.spec.js +570 -0
  169. package/dist/commands/package/publish.archive.spec.js.map +1 -0
  170. package/dist/commands/package/publish.js +780 -49
  171. package/dist/commands/package/publish.js.map +1 -1
  172. package/dist/commands/package/publish.spec.js +451 -8
  173. package/dist/commands/package/publish.spec.js.map +1 -1
  174. package/dist/commands/package/updatepackage.js +22 -19
  175. package/dist/commands/package/updatepackage.js.map +1 -1
  176. package/dist/commands/package/updatepackage.spec.js +36 -1
  177. package/dist/commands/package/updatepackage.spec.js.map +1 -1
  178. package/dist/commands/permission/createpermission.js +3 -1
  179. package/dist/commands/permission/createpermission.js.map +1 -1
  180. package/dist/commands/permission/deletepermission.js +6 -3
  181. package/dist/commands/permission/deletepermission.js.map +1 -1
  182. package/dist/commands/permission/getpermission.js +2 -0
  183. package/dist/commands/permission/getpermission.js.map +1 -1
  184. package/dist/commands/permission/listpermissions.js +2 -0
  185. package/dist/commands/permission/listpermissions.js.map +1 -1
  186. package/dist/commands/rm.js +21 -0
  187. package/dist/commands/rm.js.map +1 -1
  188. package/dist/commands/set.js +40 -6
  189. package/dist/commands/set.js.map +1 -1
  190. package/dist/commands/set.spec.js +123 -0
  191. package/dist/commands/set.spec.js.map +1 -0
  192. package/dist/commands/table/addtable.js +155 -0
  193. package/dist/commands/table/addtable.js.map +1 -0
  194. package/dist/commands/table/deletetable.js +45 -0
  195. package/dist/commands/table/deletetable.js.map +1 -0
  196. package/dist/commands/table/gettable.js +32 -0
  197. package/dist/commands/table/gettable.js.map +1 -0
  198. package/dist/commands/table/listtables.js +36 -0
  199. package/dist/commands/table/listtables.js.map +1 -0
  200. package/dist/commands/table/table.spec.js +304 -0
  201. package/dist/commands/table/table.spec.js.map +1 -0
  202. package/dist/commands/table/tablefile.js +195 -0
  203. package/dist/commands/table/tablefile.js.map +1 -0
  204. package/dist/commands/table/tablefile.spec.js +158 -0
  205. package/dist/commands/table/tablefile.spec.js.map +1 -0
  206. package/dist/commands/update.js +21 -0
  207. package/dist/commands/update.js.map +1 -1
  208. package/dist/commands/version/archive-unarchive-version.js +4 -2
  209. package/dist/commands/version/archive-unarchive-version.js.map +1 -1
  210. package/dist/commands/version/archive-unarchive-version.spec.js +6 -1
  211. package/dist/commands/version/archive-unarchive-version.spec.js.map +1 -1
  212. package/dist/commands/version/listversions.js +2 -0
  213. package/dist/commands/version/listversions.js.map +1 -1
  214. package/dist/common/UserGroupId.js +9 -4
  215. package/dist/common/UserGroupId.js.map +1 -1
  216. package/dist/common/UserGroupId.spec.js +5 -0
  217. package/dist/common/UserGroupId.spec.js.map +1 -1
  218. package/dist/constants.js +37 -143
  219. package/dist/constants.js.map +1 -1
  220. package/dist/index.js +487 -90
  221. package/dist/index.js.map +1 -1
  222. package/dist/logger.js +42 -9
  223. package/dist/logger.js.map +1 -1
  224. package/dist/session.js +56 -0
  225. package/dist/session.js.map +1 -0
  226. package/dist/session.spec.js +103 -0
  227. package/dist/session.spec.js.map +1 -0
  228. package/dist/setup-core/briefing.js +176 -0
  229. package/dist/setup-core/briefing.js.map +1 -0
  230. package/dist/setup-core/credstore.js +415 -0
  231. package/dist/setup-core/credstore.js.map +1 -0
  232. package/dist/setup-core/credstore.spec.js +238 -0
  233. package/dist/setup-core/credstore.spec.js.map +1 -0
  234. package/dist/setup-core/environments.js +267 -0
  235. package/dist/setup-core/environments.js.map +1 -0
  236. package/dist/setup-core/flow.e2e.js +165 -0
  237. package/dist/setup-core/flow.e2e.js.map +1 -0
  238. package/dist/setup-core/flow.js +765 -0
  239. package/dist/setup-core/flow.js.map +1 -0
  240. package/dist/setup-core/flow.spec.js +1348 -0
  241. package/dist/setup-core/flow.spec.js.map +1 -0
  242. package/dist/setup-core/folderconfig.js +283 -0
  243. package/dist/setup-core/folderconfig.js.map +1 -0
  244. package/dist/setup-core/git.js +97 -0
  245. package/dist/setup-core/git.js.map +1 -0
  246. package/dist/setup-core/host.js +77 -0
  247. package/dist/setup-core/host.js.map +1 -0
  248. package/dist/setup-core/importconnections.js +470 -0
  249. package/dist/setup-core/importconnections.js.map +1 -0
  250. package/dist/setup-core/importconnections.spec.js +594 -0
  251. package/dist/setup-core/importconnections.spec.js.map +1 -0
  252. package/dist/setup-core/liveness.js +94 -0
  253. package/dist/setup-core/liveness.js.map +1 -0
  254. package/dist/setup-core/liveness.spec.js +59 -0
  255. package/dist/setup-core/liveness.spec.js.map +1 -0
  256. package/dist/setup-core/localpublisherconfig.js +26 -0
  257. package/dist/setup-core/localpublisherconfig.js.map +1 -0
  258. package/dist/setup-core/localpublisherconfig.spec.js +29 -0
  259. package/dist/setup-core/localpublisherconfig.spec.js.map +1 -0
  260. package/dist/setup-core/mcpconfig.js +198 -0
  261. package/dist/setup-core/mcpconfig.js.map +1 -0
  262. package/dist/setup-core/mcpconfig.spec.js +205 -0
  263. package/dist/setup-core/mcpconfig.spec.js.map +1 -0
  264. package/dist/setup-core/packagemanifest.js +55 -0
  265. package/dist/setup-core/packagemanifest.js.map +1 -0
  266. package/dist/setup-core/ports.js +182 -0
  267. package/dist/setup-core/ports.js.map +1 -0
  268. package/dist/setup-core/ports.spec.js +173 -0
  269. package/dist/setup-core/ports.spec.js.map +1 -0
  270. package/dist/setup-core/publisherconfig.js +268 -0
  271. package/dist/setup-core/publisherconfig.js.map +1 -0
  272. package/dist/setup-core/publisherconfig.oracle.js +166 -0
  273. package/dist/setup-core/publisherconfig.oracle.js.map +1 -0
  274. package/dist/setup-core/publisherconfig.spec.js +277 -0
  275. package/dist/setup-core/publisherconfig.spec.js.map +1 -0
  276. package/dist/setup-core/publisherversion.js +26 -0
  277. package/dist/setup-core/publisherversion.js.map +1 -0
  278. package/dist/setup-core/readiness.spec.js +161 -0
  279. package/dist/setup-core/readiness.spec.js.map +1 -0
  280. package/dist/setup-core/readylines.js +169 -0
  281. package/dist/setup-core/readylines.js.map +1 -0
  282. package/dist/setup-core/readylines.spec.js +70 -0
  283. package/dist/setup-core/readylines.spec.js.map +1 -0
  284. package/dist/setup-core/refresh.js +348 -0
  285. package/dist/setup-core/refresh.js.map +1 -0
  286. package/dist/setup-core/refresh.spec.js +501 -0
  287. package/dist/setup-core/refresh.spec.js.map +1 -0
  288. package/dist/setup-core/skills.js +279 -0
  289. package/dist/setup-core/skills.js.map +1 -0
  290. package/dist/setup-core/skills.spec.js +334 -0
  291. package/dist/setup-core/skills.spec.js.map +1 -0
  292. package/dist/setup-core/supervisor.js +879 -0
  293. package/dist/setup-core/supervisor.js.map +1 -0
  294. package/dist/setup-core/supervisor.spec.js +833 -0
  295. package/dist/setup-core/supervisor.spec.js.map +1 -0
  296. package/dist/setup-core/writefile.js +61 -0
  297. package/dist/setup-core/writefile.js.map +1 -0
  298. package/dist/setup-core/writefile.spec.js +68 -0
  299. package/dist/setup-core/writefile.spec.js.map +1 -0
  300. package/dist/utils.js +409 -3
  301. package/dist/utils.js.map +1 -1
  302. package/dist/utils.spec.js +373 -2
  303. package/dist/utils.spec.js.map +1 -1
  304. package/dist/versioncheck-refresh.js +18 -0
  305. package/dist/versioncheck-refresh.js.map +1 -0
  306. package/dist/versioncheck.js +324 -0
  307. package/dist/versioncheck.js.map +1 -0
  308. package/dist/versioncheck.spec.js +587 -0
  309. package/dist/versioncheck.spec.js.map +1 -0
  310. package/node_modules/@credibledata/cli-auth/dist/index.d.ts +86 -0
  311. package/node_modules/@credibledata/cli-auth/dist/index.js +102 -0
  312. package/node_modules/@credibledata/cli-auth/package.json +19 -0
  313. package/package.json +18 -6
  314. package/.github/workflows/build.yml +0 -23
  315. package/.mocharc.json +0 -10
  316. package/.prettierignore +0 -2
  317. package/.prettierrc +0 -4
  318. package/README-DEV.md +0 -40
  319. package/coverage/coverage-summary.json +0 -40
  320. package/coverage/tmp/coverage-2152-1789496974457-0.json +0 -1
  321. package/coverage/tmp/coverage-2153-1789496954404-0.json +0 -1
  322. package/docker/Dockerfile.ci +0 -18
  323. package/docker-compose.yml +0 -18
  324. package/eslint.config.mjs +0 -45
  325. package/generate-client.sh +0 -27
  326. package/mocha.setup.ts +0 -4
  327. package/openapitools.json +0 -10
  328. package/src/client/.openapi-generator/FILES +0 -9
  329. package/src/client/.openapi-generator/VERSION +0 -1
  330. package/src/client/.openapi-generator-ignore +0 -23
  331. package/src/client/api.ts +0 -15999
  332. package/src/client/base.ts +0 -86
  333. package/src/client/common.ts +0 -150
  334. package/src/client/configuration.ts +0 -110
  335. package/src/client/git_push.sh +0 -57
  336. package/src/client/index.ts +0 -18
  337. package/src/clientconfiguration.spec.ts +0 -615
  338. package/src/clientconfiguration.ts +0 -364
  339. package/src/commands/add.ts +0 -191
  340. package/src/commands/connection/createconnections.spec.ts +0 -413
  341. package/src/commands/connection/createconnections.ts +0 -109
  342. package/src/commands/connection/deleteconnection.spec.ts +0 -189
  343. package/src/commands/connection/deleteconnection.ts +0 -57
  344. package/src/commands/connection/listconnections.spec.ts +0 -132
  345. package/src/commands/connection/listconnections.ts +0 -58
  346. package/src/commands/environment/createenvironment.spec.ts +0 -249
  347. package/src/commands/environment/createenvironment.ts +0 -73
  348. package/src/commands/environment/deleteenvironment.spec.ts +0 -152
  349. package/src/commands/environment/deleteenvironment.ts +0 -48
  350. package/src/commands/environment/getenvironment.spec.ts +0 -110
  351. package/src/commands/environment/getenvironment.ts +0 -43
  352. package/src/commands/environment/listenvironments.spec.ts +0 -123
  353. package/src/commands/environment/listenvironments.ts +0 -67
  354. package/src/commands/environment/setenvironment.spec.ts +0 -63
  355. package/src/commands/environment/setenvironment.ts +0 -14
  356. package/src/commands/environment/updateenvironment.spec.ts +0 -386
  357. package/src/commands/environment/updateenvironment.ts +0 -168
  358. package/src/commands/get.ts +0 -153
  359. package/src/commands/group/addmember.spec.ts +0 -257
  360. package/src/commands/group/addmember.ts +0 -85
  361. package/src/commands/group/creategroup.spec.ts +0 -146
  362. package/src/commands/group/creategroup.ts +0 -54
  363. package/src/commands/group/deletegroup.spec.ts +0 -120
  364. package/src/commands/group/deletegroup.ts +0 -45
  365. package/src/commands/group/getgroup.spec.ts +0 -129
  366. package/src/commands/group/getgroup.ts +0 -47
  367. package/src/commands/group/listgroups.spec.ts +0 -137
  368. package/src/commands/group/listgroups.ts +0 -45
  369. package/src/commands/group/removemember.spec.ts +0 -224
  370. package/src/commands/group/removemember.ts +0 -75
  371. package/src/commands/groupaccesstoken/createToken.spec.ts +0 -211
  372. package/src/commands/groupaccesstoken/createToken.ts +0 -72
  373. package/src/commands/groupaccesstoken/deleteToken.spec.ts +0 -147
  374. package/src/commands/groupaccesstoken/deleteToken.ts +0 -29
  375. package/src/commands/groupaccesstoken/groupContainer.ts +0 -83
  376. package/src/commands/groupaccesstoken/listTokens.spec.ts +0 -147
  377. package/src/commands/groupaccesstoken/listTokens.ts +0 -29
  378. package/src/commands/legacy.ts +0 -5
  379. package/src/commands/list.ts +0 -326
  380. package/src/commands/materialization/cancelrun.ts +0 -70
  381. package/src/commands/materialization/getindex.ts +0 -55
  382. package/src/commands/materialization/getmaterialization.ts +0 -57
  383. package/src/commands/materialization/getpreaggregate.ts +0 -58
  384. package/src/commands/materialization/getrun.ts +0 -55
  385. package/src/commands/materialization/listindexes.ts +0 -69
  386. package/src/commands/materialization/listmaterializations.ts +0 -53
  387. package/src/commands/materialization/listpreaggregates.ts +0 -74
  388. package/src/commands/materialization/listruns.ts +0 -77
  389. package/src/commands/materialization/rerun.ts +0 -123
  390. package/src/commands/misc/login.spec.ts +0 -371
  391. package/src/commands/misc/login.ts +0 -343
  392. package/src/commands/misc/logout.spec.ts +0 -32
  393. package/src/commands/misc/logout.ts +0 -9
  394. package/src/commands/misc/loopbackOAuth.ts +0 -127
  395. package/src/commands/misc/set-access-token.spec.ts +0 -95
  396. package/src/commands/misc/set-access-token.ts +0 -32
  397. package/src/commands/package/deletepackage.spec.ts +0 -164
  398. package/src/commands/package/deletepackage.ts +0 -58
  399. package/src/commands/package/listpackages.spec.ts +0 -163
  400. package/src/commands/package/listpackages.ts +0 -74
  401. package/src/commands/package/publish.spec.ts +0 -642
  402. package/src/commands/package/publish.ts +0 -236
  403. package/src/commands/package/updatepackage.spec.ts +0 -319
  404. package/src/commands/package/updatepackage.ts +0 -95
  405. package/src/commands/permission/createpermission.spec.ts +0 -507
  406. package/src/commands/permission/createpermission.ts +0 -181
  407. package/src/commands/permission/deletepermission.ts +0 -117
  408. package/src/commands/permission/getpermission.ts +0 -115
  409. package/src/commands/permission/listpermissions.ts +0 -101
  410. package/src/commands/permission/scope.ts +0 -180
  411. package/src/commands/rm.ts +0 -146
  412. package/src/commands/set.ts +0 -25
  413. package/src/commands/update.ts +0 -107
  414. package/src/commands/version/archive-unarchive-version.spec.ts +0 -456
  415. package/src/commands/version/archive-unarchive-version.ts +0 -108
  416. package/src/commands/version/listversions.spec.ts +0 -138
  417. package/src/commands/version/listversions.ts +0 -45
  418. package/src/common/UserGroupId.spec.ts +0 -115
  419. package/src/common/UserGroupId.ts +0 -137
  420. package/src/constants.spec.ts +0 -111
  421. package/src/constants.ts +0 -228
  422. package/src/index.ts +0 -378
  423. package/src/logger.spec.ts +0 -158
  424. package/src/logger.ts +0 -90
  425. package/src/polyfills/file.polyfill.ts +0 -6
  426. package/src/utils.spec.ts +0 -135
  427. package/src/utils.ts +0 -115
  428. package/src/validator.spec.ts +0 -51
  429. package/src/validator.ts +0 -44
  430. package/tsconfig.json +0 -17
@@ -1,642 +0,0 @@
1
- import { expect } from "chai";
2
- import crypto from "crypto";
3
- import fs from "fs";
4
- import path from "path";
5
- import sinon from "sinon";
6
- import { PackagesApi } from "../../client/api";
7
- import { ClientConfiguration } from "../../clientconfiguration";
8
- import { logger } from "../../logger";
9
- import { prettifyJson } from "../../utils";
10
-
11
- // We need to stub archiver before publish.ts imports it.
12
- // Since this is CommonJS, we replace archiver in the require cache.
13
- let storedCloseCallback: Function | undefined;
14
- let mockArchive: any;
15
-
16
- function createMockArchive(sandbox: sinon.SinonSandbox) {
17
- storedCloseCallback = undefined;
18
-
19
- mockArchive = {
20
- on: sandbox.stub().returnsThis(),
21
- directory: sandbox.stub().returnsThis(),
22
- pipe: sandbox.stub().returnsThis(),
23
- finalize: sandbox.stub().callsFake(function () {
24
- // Trigger the close event on the WriteStream when finalize is called
25
- if (storedCloseCallback) {
26
- // Use process.nextTick to ensure it fires after the promise is set up
27
- process.nextTick(() => storedCloseCallback!());
28
- }
29
- return mockArchive;
30
- }),
31
- pointer: sandbox.stub().returns(1024),
32
- };
33
- return mockArchive;
34
- }
35
-
36
- describe("publish", () => {
37
- let sandbox: sinon.SinonSandbox;
38
- let createOrUpdatePackageStub: sinon.SinonStub;
39
- let loggerStub: sinon.SinonStubbedInstance<typeof logger>;
40
- let getConfirmationStub: sinon.SinonStub;
41
- let readFileSyncStub: sinon.SinonStub;
42
- let existsSyncStub: sinon.SinonStub;
43
- let unlinkStub: sinon.SinonStub;
44
- let createWriteStreamStub: sinon.SinonStub;
45
- let validateManifestStub: sinon.SinonStub;
46
- let processCwdStub: sinon.SinonStub;
47
- let publish: (
48
- controlPlane: string,
49
- replicationCount: number,
50
- debug: boolean,
51
- autoConfirm: boolean,
52
- setLatest: boolean,
53
- ) => Promise<void>;
54
-
55
- // Store the original archiver module so we can restore it
56
- let originalArchiverModule: any;
57
- const archiverModulePath = require.resolve("archiver");
58
-
59
- // publish reports failure by setting process.exitCode, so each test starts from a
60
- // known 0 and the suite restores whatever the runner had — a leaked non-zero would
61
- // fail the whole mocha run regardless of the assertions.
62
- let originalExitCode: number | string | undefined;
63
-
64
- beforeEach(() => {
65
- originalExitCode = process.exitCode;
66
- process.exitCode = 0;
67
- sandbox = sinon.createSandbox();
68
-
69
- // Create mock archive
70
- const archive = createMockArchive(sandbox);
71
-
72
- // Replace archiver in require cache with our mock factory
73
- originalArchiverModule = require.cache[archiverModulePath];
74
- require.cache[archiverModulePath] = {
75
- id: archiverModulePath,
76
- filename: archiverModulePath,
77
- loaded: true,
78
- exports: function () {
79
- return archive;
80
- },
81
- } as any;
82
-
83
- // Clear publish module from cache so it picks up the stubbed archiver
84
- const publishModulePath = require.resolve("./publish");
85
- delete require.cache[publishModulePath];
86
-
87
- // Now require publish - it will get our mock archiver
88
- publish = require("./publish").publish;
89
-
90
- createOrUpdatePackageStub = sandbox.stub();
91
- loggerStub = sandbox.stub(logger);
92
- getConfirmationStub = sandbox.stub();
93
- readFileSyncStub = sandbox.stub(fs, "readFileSync");
94
- existsSyncStub = sandbox.stub(fs, "existsSync");
95
- unlinkStub = sandbox.stub(fs, "unlink");
96
- createWriteStreamStub = sandbox.stub(fs, "createWriteStream");
97
- validateManifestStub = sandbox.stub();
98
- sandbox.stub(console, "log");
99
- processCwdStub = sandbox.stub(process, "cwd");
100
-
101
- sandbox
102
- .stub(ClientConfiguration.prototype, "getOrganization")
103
- .returns("test-org");
104
- sandbox
105
- .stub(ClientConfiguration.prototype, "getProject")
106
- .returns("test-project");
107
- sandbox
108
- .stub(ClientConfiguration.prototype, "doesConfigExists")
109
- .returns(true);
110
- sandbox
111
- .stub(ClientConfiguration.prototype, "isTokenValid")
112
- .returns({ valid: true });
113
- sandbox
114
- .stub(ClientConfiguration.prototype, "getHeaders")
115
- .returns({ Authorization: "Bearer test-token" });
116
-
117
- sandbox
118
- .stub(PackagesApi.prototype, "createOrUpdatePackage")
119
- .callsFake(createOrUpdatePackageStub);
120
- sandbox
121
- .stub(require("../../utils"), "getConfirmation")
122
- .callsFake(getConfirmationStub);
123
- sandbox
124
- .stub(require("../../validator"), "validateManifest")
125
- .callsFake(validateManifestStub);
126
-
127
- processCwdStub.returns("/test/package-name");
128
- validateManifestStub.returns(true);
129
- existsSyncStub.returns(true);
130
-
131
- // Mock write stream that captures the close callback
132
- const mockWriteStream = {
133
- on: sandbox.stub().callsFake(function (
134
- event: string,
135
- callback: Function,
136
- ) {
137
- if (event === "close") {
138
- storedCloseCallback = callback;
139
- }
140
- return mockWriteStream;
141
- }),
142
- once: sandbox.stub().returnsThis(),
143
- emit: sandbox.stub().returnsThis(),
144
- write: sandbox.stub(),
145
- end: sandbox.stub(),
146
- pipe: sandbox.stub().returnsThis(),
147
- };
148
- createWriteStreamStub.returns(mockWriteStream);
149
- });
150
-
151
- afterEach(() => {
152
- process.exitCode = originalExitCode;
153
- sandbox.restore();
154
- // Restore original archiver module
155
- if (originalArchiverModule) {
156
- require.cache[archiverModulePath] = originalArchiverModule;
157
- } else {
158
- delete require.cache[archiverModulePath];
159
- }
160
- });
161
-
162
- it("should publish package successfully", async function () {
163
- this.timeout(5000);
164
- const mockManifest = {
165
- name: "test-package",
166
- version: "1.0.0",
167
- description: "Test package",
168
- };
169
- const mockPackageData = Buffer.from("test package data");
170
- const mockResponse = {
171
- data: { name: "test-package", version: "1.0.0" },
172
- };
173
-
174
- readFileSyncStub.callsFake((filePath: string) => {
175
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
176
- return mockPackageData;
177
- });
178
- getConfirmationStub.resolves(true);
179
- createOrUpdatePackageStub.resolves(mockResponse);
180
- unlinkStub.callsArg(1);
181
-
182
- await publish("http://test-server", 2, false, true, false);
183
-
184
- expect(validateManifestStub.calledOnce).to.be.true;
185
- expect(readFileSyncStub.calledWith("publisher.json")).to.be.true;
186
- expect(createOrUpdatePackageStub.calledOnce).to.be.true;
187
- expect(createOrUpdatePackageStub.firstCall.args[0]).to.equal("test-org");
188
- expect(createOrUpdatePackageStub.firstCall.args[1]).to.equal(
189
- "test-project",
190
- );
191
- expect(createOrUpdatePackageStub.firstCall.args[2]).to.equal(
192
- "test-package",
193
- );
194
- expect(createOrUpdatePackageStub.firstCall.args[3]).to.deep.include({
195
- name: "test-package",
196
- description: "Test package",
197
- replicationCount: 2,
198
- });
199
- expect(createOrUpdatePackageStub.firstCall.args[4]).to.deep.include({
200
- id: "1.0.0",
201
- });
202
- expect(
203
- loggerStub.info.calledWith(
204
- sinon.match(prettifyJson(mockResponse.data)),
205
- ),
206
- ).to.be.true;
207
- });
208
-
209
- it("should set latest version when setLatest is true", async function () {
210
- this.timeout(5000);
211
- const mockManifest = {
212
- name: "test-package",
213
- version: "1.0.0",
214
- description: "Test package",
215
- };
216
- const mockPackageData = Buffer.from("test package data");
217
-
218
- readFileSyncStub.callsFake((filePath: string) => {
219
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
220
- return mockPackageData;
221
- });
222
- getConfirmationStub.resolves(true);
223
- createOrUpdatePackageStub.resolves({ data: {} });
224
- unlinkStub.callsArg(1);
225
-
226
- await publish("http://test-server", 2, false, true, true);
227
-
228
- expect(createOrUpdatePackageStub.firstCall.args[3]).to.deep.include({
229
- latestVersion: "1.0.0",
230
- });
231
- });
232
-
233
- it("should not set latest version when setLatest is false", async function () {
234
- this.timeout(5000);
235
- const mockManifest = {
236
- name: "test-package",
237
- version: "1.0.0",
238
- description: "Test package",
239
- };
240
- const mockPackageData = Buffer.from("test package data");
241
-
242
- readFileSyncStub.callsFake((filePath: string) => {
243
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
244
- return mockPackageData;
245
- });
246
- getConfirmationStub.resolves(true);
247
- createOrUpdatePackageStub.resolves({ data: {} });
248
- unlinkStub.callsArg(1);
249
-
250
- await publish("http://test-server", 2, false, true, false);
251
-
252
- expect(createOrUpdatePackageStub.firstCall.args[3]).to.not.have.property(
253
- "latestVersion",
254
- );
255
- });
256
-
257
- it("should skip confirmation when autoConfirm is true", async function () {
258
- this.timeout(5000);
259
- const mockManifest = {
260
- name: "test-package",
261
- version: "1.0.0",
262
- description: "Test package",
263
- };
264
- const mockPackageData = Buffer.from("test package data");
265
-
266
- readFileSyncStub.callsFake((filePath: string) => {
267
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
268
- return mockPackageData;
269
- });
270
- createOrUpdatePackageStub.resolves({ data: {} });
271
- unlinkStub.callsArg(1);
272
-
273
- await publish("http://test-server", 2, false, true, false);
274
-
275
- expect(getConfirmationStub.called).to.be.false;
276
- expect(createOrUpdatePackageStub.calledOnce).to.be.true;
277
- });
278
-
279
- it("should use package name from cwd directory", async function () {
280
- this.timeout(5000);
281
- processCwdStub.returns("/some/path/my-cool-package");
282
- const mockManifest = {
283
- name: "test-package",
284
- version: "1.0.0",
285
- description: "Test package",
286
- };
287
- const mockPackageData = Buffer.from("test package data");
288
-
289
- readFileSyncStub.callsFake((filePath: string) => {
290
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
291
- return mockPackageData;
292
- });
293
- createOrUpdatePackageStub.resolves({ data: {} });
294
- unlinkStub.callsArg(1);
295
-
296
- await publish("http://test-server", 2, false, true, false);
297
-
298
- // The archive path should use the cwd directory name
299
- expect(createWriteStreamStub.calledWith("/tmp/my-cool-package.zip")).to.be
300
- .true;
301
- });
302
-
303
- it("should calculate MD5 hash correctly", async function () {
304
- this.timeout(5000);
305
- const mockManifest = {
306
- name: "test-package",
307
- version: "1.0.0",
308
- description: "Test package",
309
- };
310
- const mockPackageData = Buffer.from("test package data");
311
- const expectedHash = crypto
312
- .createHash("md5")
313
- .update(mockPackageData)
314
- .digest("hex");
315
-
316
- readFileSyncStub.callsFake((filePath: string) => {
317
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
318
- return mockPackageData;
319
- });
320
- getConfirmationStub.resolves(true);
321
- createOrUpdatePackageStub.resolves({ data: {} });
322
- unlinkStub.callsArg(1);
323
-
324
- await publish("http://test-server", 2, false, true, false);
325
-
326
- expect(createOrUpdatePackageStub.firstCall.args[6]).to.equal(
327
- expectedHash,
328
- );
329
- });
330
-
331
- it("should handle missing config", async () => {
332
- sandbox.restore();
333
- sandbox = sinon.createSandbox();
334
- createOrUpdatePackageStub = sandbox.stub();
335
- loggerStub = sandbox.stub(logger);
336
- getConfirmationStub = sandbox.stub();
337
- readFileSyncStub = sandbox.stub(fs, "readFileSync");
338
- existsSyncStub = sandbox.stub(fs, "existsSync");
339
- validateManifestStub = sandbox.stub();
340
-
341
- sandbox
342
- .stub(ClientConfiguration.prototype, "doesConfigExists")
343
- .returns(false);
344
- sandbox
345
- .stub(PackagesApi.prototype, "createOrUpdatePackage")
346
- .callsFake(createOrUpdatePackageStub);
347
- sandbox
348
- .stub(require("../../utils"), "getConfirmation")
349
- .callsFake(getConfirmationStub);
350
- sandbox
351
- .stub(require("../../validator"), "validateManifest")
352
- .callsFake(validateManifestStub);
353
-
354
- await publish("http://test-server", 2, false, true, false);
355
-
356
- expect(createOrUpdatePackageStub.called).to.be.false;
357
- expect(
358
- loggerStub.error.calledWith(
359
- sinon.match("Please, make sure that you are logged in"),
360
- ),
361
- ).to.be.true;
362
- expect(
363
- process.exitCode,
364
- "a publish that never ran must not exit 0",
365
- ).to.equal(1);
366
- });
367
-
368
- it("should handle invalid token", async () => {
369
- sandbox.restore();
370
- sandbox = sinon.createSandbox();
371
- createOrUpdatePackageStub = sandbox.stub();
372
- loggerStub = sandbox.stub(logger);
373
- getConfirmationStub = sandbox.stub();
374
- readFileSyncStub = sandbox.stub(fs, "readFileSync");
375
- existsSyncStub = sandbox.stub(fs, "existsSync");
376
- validateManifestStub = sandbox.stub();
377
-
378
- sandbox
379
- .stub(ClientConfiguration.prototype, "doesConfigExists")
380
- .returns(true);
381
- sandbox
382
- .stub(ClientConfiguration.prototype, "isTokenValid")
383
- .returns({ valid: false, reason: "No token found. Please login." });
384
- sandbox
385
- .stub(PackagesApi.prototype, "createOrUpdatePackage")
386
- .callsFake(createOrUpdatePackageStub);
387
- sandbox
388
- .stub(require("../../utils"), "getConfirmation")
389
- .callsFake(getConfirmationStub);
390
- sandbox
391
- .stub(require("../../validator"), "validateManifest")
392
- .callsFake(validateManifestStub);
393
-
394
- await publish("http://test-server", 2, false, true, false);
395
-
396
- expect(createOrUpdatePackageStub.called).to.be.false;
397
- expect(
398
- loggerStub.error.calledWith(
399
- sinon.match("No token found. Please login."),
400
- ),
401
- ).to.be.true;
402
- expect(
403
- process.exitCode,
404
- "a publish that never ran must not exit 0",
405
- ).to.equal(1);
406
- });
407
-
408
- it("should handle invalid manifest", async () => {
409
- validateManifestStub.returns(false);
410
-
411
- await publish("http://test-server", 2, false, true, false);
412
-
413
- expect(createOrUpdatePackageStub.called).to.be.false;
414
- // validateManifest logs its own reason, so only the exit code is asserted here.
415
- expect(
416
- process.exitCode,
417
- "a publish that never ran must not exit 0",
418
- ).to.equal(1);
419
- });
420
-
421
- it("should handle missing organization", async () => {
422
- sandbox.restore();
423
- sandbox = sinon.createSandbox();
424
- createOrUpdatePackageStub = sandbox.stub();
425
- loggerStub = sandbox.stub(logger);
426
- getConfirmationStub = sandbox.stub();
427
- readFileSyncStub = sandbox.stub(fs, "readFileSync");
428
- existsSyncStub = sandbox.stub(fs, "existsSync");
429
- validateManifestStub = sandbox.stub();
430
-
431
- sandbox
432
- .stub(ClientConfiguration.prototype, "doesConfigExists")
433
- .returns(true);
434
- sandbox
435
- .stub(ClientConfiguration.prototype, "isTokenValid")
436
- .returns({ valid: true });
437
- sandbox
438
- .stub(ClientConfiguration.prototype, "getOrganization")
439
- .returns("");
440
- // publish calls getProject before the organization check — stub it too
441
- // so we don't fall through into real loadConfig against a stubbed fs.
442
- sandbox
443
- .stub(ClientConfiguration.prototype, "getProject")
444
- .returns("test-project");
445
- validateManifestStub.returns(true);
446
- sandbox
447
- .stub(PackagesApi.prototype, "createOrUpdatePackage")
448
- .callsFake(createOrUpdatePackageStub);
449
- sandbox
450
- .stub(require("../../utils"), "getConfirmation")
451
- .callsFake(getConfirmationStub);
452
- sandbox
453
- .stub(require("../../validator"), "validateManifest")
454
- .callsFake(validateManifestStub);
455
-
456
- await publish("http://test-server", 2, false, true, false);
457
-
458
- expect(createOrUpdatePackageStub.called).to.be.false;
459
- expect(
460
- loggerStub.error.calledWith(
461
- sinon.match("Please, make sure that you are logged in"),
462
- ),
463
- ).to.be.true;
464
- expect(
465
- process.exitCode,
466
- "a publish that never ran must not exit 0",
467
- ).to.equal(1);
468
- });
469
-
470
- it("should handle missing project", async () => {
471
- sandbox.restore();
472
- sandbox = sinon.createSandbox();
473
- createOrUpdatePackageStub = sandbox.stub();
474
- loggerStub = sandbox.stub(logger);
475
- getConfirmationStub = sandbox.stub();
476
- readFileSyncStub = sandbox.stub(fs, "readFileSync");
477
- existsSyncStub = sandbox.stub(fs, "existsSync");
478
- validateManifestStub = sandbox.stub();
479
-
480
- sandbox
481
- .stub(ClientConfiguration.prototype, "doesConfigExists")
482
- .returns(true);
483
- sandbox
484
- .stub(ClientConfiguration.prototype, "isTokenValid")
485
- .returns({ valid: true });
486
- sandbox
487
- .stub(ClientConfiguration.prototype, "getOrganization")
488
- .returns("test-org");
489
- sandbox.stub(ClientConfiguration.prototype, "getProject").returns("");
490
- validateManifestStub.returns(true);
491
- sandbox
492
- .stub(PackagesApi.prototype, "createOrUpdatePackage")
493
- .callsFake(createOrUpdatePackageStub);
494
- sandbox
495
- .stub(require("../../utils"), "getConfirmation")
496
- .callsFake(getConfirmationStub);
497
- sandbox
498
- .stub(require("../../validator"), "validateManifest")
499
- .callsFake(validateManifestStub);
500
-
501
- await publish("http://test-server", 2, false, true, false);
502
-
503
- expect(createOrUpdatePackageStub.called).to.be.false;
504
- expect(
505
- loggerStub.error.calledWith(
506
- sinon.match("Please, make sure to set an environment"),
507
- ),
508
- ).to.be.true;
509
- expect(
510
- process.exitCode,
511
- "a publish that never ran must not exit 0",
512
- ).to.equal(1);
513
- });
514
-
515
- it("should handle missing publisher.json", async () => {
516
- existsSyncStub.callsFake((filePath: string) => {
517
- if (filePath === "publisher.json") return false;
518
- return true;
519
- });
520
-
521
- await publish("http://test-server", 2, false, true, false);
522
-
523
- expect(createOrUpdatePackageStub.called).to.be.false;
524
- expect(readFileSyncStub.called).to.be.false;
525
- expect(
526
- loggerStub.error.calledWith(
527
- sinon.match(
528
- "Failed to publish the package. Could not find publisher.json, please ensure you are in a directory containing publisher.json",
529
- ),
530
- ),
531
- ).to.be.true;
532
- expect(
533
- process.exitCode,
534
- "a publish that never ran must not exit 0",
535
- ).to.equal(1);
536
- });
537
-
538
- it("should request confirmation when autoConfirm is false", async function () {
539
- this.timeout(5000);
540
- const mockManifest = {
541
- name: "test-package",
542
- version: "1.0.0",
543
- description: "Test package",
544
- };
545
- const mockPackageData = Buffer.from("test package data");
546
-
547
- readFileSyncStub.callsFake((filePath: string) => {
548
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
549
- return mockPackageData;
550
- });
551
- getConfirmationStub.resolves(true);
552
- createOrUpdatePackageStub.resolves({ data: {} });
553
- unlinkStub.callsArg(1);
554
-
555
- await publish("http://test-server", 2, false, false, false);
556
-
557
- expect(getConfirmationStub.calledOnce).to.be.true;
558
- expect(createOrUpdatePackageStub.calledOnce).to.be.true;
559
- });
560
-
561
- it("should cancel when confirmation is denied", async () => {
562
- const mockManifest = {
563
- name: "test-package",
564
- version: "1.0.0",
565
- description: "Test package",
566
- };
567
-
568
- readFileSyncStub.returns(JSON.stringify(mockManifest));
569
- getConfirmationStub.resolves(false);
570
-
571
- await publish("http://test-server", 2, false, false, false);
572
-
573
- expect(getConfirmationStub.calledOnce).to.be.true;
574
- expect(createOrUpdatePackageStub.called).to.be.false;
575
- expect(loggerStub.info.calledWith(sinon.match("Operation cancelled."))).to
576
- .be.true;
577
- // Declining the prompt is an answer, not a failure: it can only happen
578
- // interactively, and a human who said no does not want a failed command.
579
- expect(process.exitCode, "cancelling is not a failure").to.equal(0);
580
- });
581
-
582
- it("should handle API errors", async function () {
583
- this.timeout(5000);
584
- const mockManifest = {
585
- name: "test-package",
586
- version: "1.0.0",
587
- description: "Test package",
588
- };
589
- const mockPackageData = Buffer.from("test package data");
590
- const mockError = new Error("API Error");
591
-
592
- readFileSyncStub.callsFake((filePath: string) => {
593
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
594
- return mockPackageData;
595
- });
596
- getConfirmationStub.resolves(true);
597
- createOrUpdatePackageStub.rejects(mockError);
598
- unlinkStub.callsArg(1);
599
-
600
- await publish("http://test-server", 2, true, true, false);
601
-
602
- expect(createOrUpdatePackageStub.calledOnce).to.be.true;
603
- expect(
604
- loggerStub.error.calledWith(sinon.match("Failed to publish package")),
605
- ).to.be.true;
606
- // The log alone is not the contract: CI and scripts wrap `cred publish` and
607
- // read its exit code, so a rejected publish exiting 0 reports success for a
608
- // package that was never published.
609
- expect(process.exitCode).to.equal(1);
610
- });
611
-
612
- it("should log package URL after successful publish", async function () {
613
- this.timeout(5000);
614
- const mockManifest = {
615
- name: "test-package",
616
- version: "1.0.0",
617
- description: "Test package",
618
- };
619
- const mockPackageData = Buffer.from("test package data");
620
- const mockResponse = {
621
- data: { name: "test-package", version: "1.0.0" },
622
- };
623
-
624
- readFileSyncStub.callsFake((filePath: string) => {
625
- if (filePath === "publisher.json") return JSON.stringify(mockManifest);
626
- return mockPackageData;
627
- });
628
- getConfirmationStub.resolves(true);
629
- createOrUpdatePackageStub.resolves(mockResponse);
630
- unlinkStub.callsArg(1);
631
-
632
- await publish("http://test-server", 2, false, true, false);
633
-
634
- expect(
635
- loggerStub.info.calledWith(
636
- sinon.match(
637
- "Package available at: test-org/test-project/test-package/1.0.0",
638
- ),
639
- ),
640
- ).to.be.true;
641
- });
642
- });