@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
@@ -24,10 +24,12 @@ function listPackages(controlPlane, debug, page, pageSize) {
24
24
  const environmentName = clientConfig.getProject();
25
25
  if (!clientConfig.doesConfigExists()) {
26
26
  logger_1.logger.error("Please, make sure that you are logged in");
27
+ process.exitCode = 1;
27
28
  return;
28
29
  }
29
30
  if (!environmentName) {
30
31
  logger_1.logger.error("Please, make sure to set an environment");
32
+ process.exitCode = 1;
31
33
  return;
32
34
  }
33
35
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"listpackages.js","sourceRoot":"","sources":["../../../src/commands/package/listpackages.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oCA2CC;AAED,4CAeC;AAzED,0CAA+C;AAC/C,8DAA2D;AAC3D,mEAAgE;AAChE,yCAAsC;AACtC,uCAKqB;AAErB,MAAM,WAAW,GAAG,IAAI,iBAAW,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;AAEzD,SAAsB,YAAY,CAC/B,YAAoB,EACpB,KAAc,EACd,IAAsB,EACtB,QAA0B;;QAE1B,MAAM,YAAY,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAElD,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACpC,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,OAAO;QACV,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO;QACV,CAAC;QAED,IAAI,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAqB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAC5C,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,MAAM,EACN;gBACG,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE;aACpC,CACH,CAAC;YAEF,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO;gBACJ,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,UAAU;aACZ,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACV,eAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,IAAA,qBAAa,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACJ,CAAC;CAAA;AAED,SAAsB,gBAAgB,CACnC,YAAoB,EACpB,KAAc,EACd,IAAsB,EACtB,QAA0B;;QAE1B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,2EAA2E;YAC3E,qEAAqE;YACrE,0EAA0E;YAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;CAAA"}
1
+ {"version":3,"file":"listpackages.js","sourceRoot":"","sources":["../../../src/commands/package/listpackages.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oCA6CC;AAED,4CAeC;AA3ED,0CAA+C;AAC/C,8DAA2D;AAC3D,mEAAgE;AAChE,yCAAsC;AACtC,uCAKqB;AAErB,MAAM,WAAW,GAAG,IAAI,iBAAW,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;AAEzD,SAAsB,YAAY,CAC/B,YAAoB,EACpB,KAAc,EACd,IAAsB,EACtB,QAA0B;;QAE1B,MAAM,YAAY,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAElD,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACpC,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACV,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACV,CAAC;QAED,IAAI,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAqB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAC5C,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,MAAM,EACN;gBACG,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE;aACpC,CACH,CAAC;YAEF,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO;gBACJ,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,UAAU;aACZ,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACV,eAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,IAAA,qBAAa,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACJ,CAAC;CAAA;AAED,SAAsB,gBAAgB,CACnC,YAAoB,EACpB,KAAc,EACd,IAAsB,EACtB,QAA0B;;QAE1B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,2EAA2E;YAC3E,qEAAqE;YACrE,0EAA0E;YAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;CAAA"}
@@ -0,0 +1,570 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const chai_1 = require("chai");
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const os_1 = __importDefault(require("os"));
18
+ const path_1 = __importDefault(require("path"));
19
+ const sinon_1 = __importDefault(require("sinon"));
20
+ const api_1 = require("../../client/api");
21
+ const clientconfiguration_1 = require("../../clientconfiguration");
22
+ const logger_1 = require("../../logger");
23
+ const publish_1 = require("./publish");
24
+ /**
25
+ * The names in a zip's central directory, read off the real bytes.
26
+ *
27
+ * A hand-rolled reader rather than a zip library, and rather than trusting
28
+ * archiver's own `entry` events: what the server unpacks is the file, so the
29
+ * file is the oracle. The central directory is a fixed layout — end record
30
+ * signature 0x06054b50 found from the tail, entry signature 0x02014b50, name
31
+ * length at +28, extra length at +30, comment length at +32, name at +46.
32
+ */
33
+ function zipEntryNames(zip) {
34
+ let end = -1;
35
+ for (let i = zip.length - 22; i >= 0; i--) {
36
+ if (zip.readUInt32LE(i) === 0x06054b50) {
37
+ end = i;
38
+ break;
39
+ }
40
+ }
41
+ if (end < 0)
42
+ throw new Error("no end-of-central-directory record");
43
+ const count = zip.readUInt16LE(end + 10);
44
+ let cursor = zip.readUInt32LE(end + 16);
45
+ const names = [];
46
+ for (let n = 0; n < count; n++) {
47
+ if (zip.readUInt32LE(cursor) !== 0x02014b50) {
48
+ throw new Error(`bad central directory entry at ${cursor}`);
49
+ }
50
+ const nameLength = zip.readUInt16LE(cursor + 28);
51
+ const extraLength = zip.readUInt16LE(cursor + 30);
52
+ const commentLength = zip.readUInt16LE(cursor + 32);
53
+ names.push(zip.toString("utf8", cursor + 46, cursor + 46 + nameLength));
54
+ cursor += 46 + nameLength + extraLength + commentLength;
55
+ }
56
+ return names.sort();
57
+ }
58
+ describe("the package archive cred publish uploads", () => {
59
+ let workDir;
60
+ let sandbox;
61
+ beforeEach(() => {
62
+ sandbox = sinon_1.default.createSandbox();
63
+ sandbox.stub(logger_1.logger);
64
+ workDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), "publish-archive-"));
65
+ });
66
+ afterEach(() => {
67
+ sandbox.restore();
68
+ fs_1.default.rmSync(workDir, { recursive: true, force: true });
69
+ });
70
+ function write(relative, contents = "x") {
71
+ const full = path_1.default.join(workDir, relative);
72
+ fs_1.default.mkdirSync(path_1.default.dirname(full), { recursive: true });
73
+ fs_1.default.writeFileSync(full, contents);
74
+ }
75
+ it("carries the model and its data files, and nothing that is a credential or local wiring", () => __awaiter(void 0, void 0, void 0, function* () {
76
+ // The model, and the data a CSV-backed package needs.
77
+ write("publisher.json", '{"name":"bars"}');
78
+ write("models/bars.malloy");
79
+ write("data/bars.csv");
80
+ write(".malloyrc"); // a dotfile the model might need still travels
81
+ // A case-1 directory: the local Publisher config with the warehouse
82
+ // password, and everything setup wrote.
83
+ write("publisher.config.json", '{"password":"hunter2"}');
84
+ write(".credible/config.json");
85
+ write(".mcp.json");
86
+ write("CLAUDE.md");
87
+ write("AGENTS.md");
88
+ write(".claude/skills/malloy-modeling/SKILL.md");
89
+ write(".agents/skills/malloy-modeling/SKILL.md");
90
+ write(".cursor/rules/credible-modeling.mdc");
91
+ write(".git/HEAD");
92
+ write("node_modules/dep/index.js");
93
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
94
+ try {
95
+ const { excluded } = yield (0, publish_1.createPackageArchive)(zipPath, workDir);
96
+ const names = zipEntryNames(fs_1.default.readFileSync(zipPath));
97
+ (0, chai_1.expect)(names).to.eql([
98
+ ".malloyrc",
99
+ "data/bars.csv",
100
+ "models/bars.malloy",
101
+ "publisher.json",
102
+ ]);
103
+ (0, chai_1.expect)(excluded).to.eql([
104
+ ".agents",
105
+ ".claude",
106
+ ".credible",
107
+ ".cursor",
108
+ ".git",
109
+ "AGENTS.md",
110
+ "CLAUDE.md",
111
+ ".mcp.json",
112
+ "node_modules",
113
+ "publisher.config.json",
114
+ ].sort());
115
+ }
116
+ finally {
117
+ fs_1.default.rmSync(zipPath, { force: true });
118
+ }
119
+ }));
120
+ // The exclusion that mattered most was the one anchored least: `.git` and
121
+ // `node_modules` carried `**/`, the credential did not, so minimatch matched
122
+ // it only at the archive root. A monorepo with a second package below, or a
123
+ // vendored example, shipped the warehouse password.
124
+ it("excludes a credential nested below the root, not just one beside publisher.json", () => __awaiter(void 0, void 0, void 0, function* () {
125
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
126
+ write("models/bars.malloy");
127
+ write("sub/publisher.config.json", '{"password":"hunter2"}');
128
+ write("sub/.credible/config.json");
129
+ write("sub/nested/.mcp.json");
130
+ write("sub/CLAUDE.md");
131
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
132
+ try {
133
+ const { excluded } = yield (0, publish_1.createPackageArchive)(zipPath, workDir);
134
+ const names = zipEntryNames(fs_1.default.readFileSync(zipPath));
135
+ (0, chai_1.expect)(names).to.eql(["models/bars.malloy", "publisher.json"]);
136
+ // Named at the depth it was found, so the user can go and look at it.
137
+ (0, chai_1.expect)(excluded).to.eql([
138
+ "sub/.credible",
139
+ "sub/CLAUDE.md",
140
+ "sub/nested/.mcp.json",
141
+ "sub/publisher.config.json",
142
+ ].sort());
143
+ }
144
+ finally {
145
+ fs_1.default.rmSync(zipPath, { force: true });
146
+ }
147
+ }));
148
+ // A backup of the user's own MCP config, headers and all: the same class of
149
+ // thing as the credential above, not incidental litter.
150
+ it("leaves out a .mcp.json.bak and its numbered copies", () => __awaiter(void 0, void 0, void 0, function* () {
151
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
152
+ write("bars.malloy");
153
+ for (const name of [
154
+ ".mcp.json.bak",
155
+ ".mcp.json.bak.1",
156
+ ".mcp.json.bak.2",
157
+ ]) {
158
+ write(name, '{"mcpServers":{"mine":{"headers":{"x":"secret"}}}}');
159
+ }
160
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
161
+ try {
162
+ const { excluded } = yield (0, publish_1.createPackageArchive)(zipPath, workDir);
163
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
164
+ "bars.malloy",
165
+ "publisher.json",
166
+ ]);
167
+ (0, chai_1.expect)(excluded).to.eql([
168
+ ".mcp.json.bak",
169
+ ".mcp.json.bak.1",
170
+ ".mcp.json.bak.2",
171
+ ]);
172
+ }
173
+ finally {
174
+ fs_1.default.rmSync(zipPath, { force: true });
175
+ }
176
+ }));
177
+ it("leaves out conventional credential files, in any case", () => __awaiter(void 0, void 0, void 0, function* () {
178
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
179
+ write("bars.malloy");
180
+ write("data/bars.csv");
181
+ write(".env", "PGPASSWORD=hunter2");
182
+ write("sub/.env.local", "TOKEN=hunter2");
183
+ write("keys/warehouse.pem", "hunter2");
184
+ write("bq-service-account.json", '{"private_key":"hunter2"}');
185
+ write("gcp_credentials.json", '{"private_key":"hunter2"}');
186
+ write("Publisher.Config.json", '{"password":"hunter2"}');
187
+ write(".GIT/HEAD");
188
+ write("keys/snowflake_rsa_key.p8", "hunter2");
189
+ write(".aws/credentials", "aws_secret_access_key = hunter2");
190
+ write(".git-credentials", "https://me:hunter2@github.com");
191
+ write("ssh/id_rsa", "hunter2");
192
+ write("ssh/id_ed25519", "hunter2");
193
+ write("ssh/id_ecdsa", "hunter2");
194
+ write("ssh/id_dsa", "hunter2");
195
+ write("dbt/profiles.yml", "password: hunter2");
196
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
197
+ try {
198
+ const { excluded } = yield (0, publish_1.createPackageArchive)(zipPath, workDir);
199
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
200
+ "bars.malloy",
201
+ "data/bars.csv",
202
+ "publisher.json",
203
+ ]);
204
+ (0, chai_1.expect)(excluded).to.eql([
205
+ ".GIT",
206
+ ".aws/credentials",
207
+ ".env",
208
+ ".git-credentials",
209
+ "Publisher.Config.json",
210
+ "bq-service-account.json",
211
+ "dbt/profiles.yml",
212
+ "gcp_credentials.json",
213
+ "keys/snowflake_rsa_key.p8",
214
+ "keys/warehouse.pem",
215
+ "ssh/id_dsa",
216
+ "ssh/id_ecdsa",
217
+ "ssh/id_ed25519",
218
+ "ssh/id_rsa",
219
+ "sub/.env.local",
220
+ ].sort());
221
+ }
222
+ finally {
223
+ fs_1.default.rmSync(zipPath, { force: true });
224
+ }
225
+ }));
226
+ it("anchors every pattern, so none of them is root-only", () => {
227
+ // A bare pattern here is the defect this test exists to catch: minimatch
228
+ // matches it at the root only, which is silent and looks correct.
229
+ for (const pattern of publish_1.PUBLISH_EXCLUDES) {
230
+ (0, chai_1.expect)(pattern, `${pattern} is not **/-anchored`).to.match(/^\*\*\//);
231
+ }
232
+ });
233
+ it("reports only the exclusions that were actually there", () => __awaiter(void 0, void 0, void 0, function* () {
234
+ write("publisher.json");
235
+ write("bars.malloy");
236
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
237
+ try {
238
+ const { excluded } = yield (0, publish_1.createPackageArchive)(zipPath, workDir);
239
+ (0, chai_1.expect)(excluded).to.eql([]);
240
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
241
+ "bars.malloy",
242
+ "publisher.json",
243
+ ]);
244
+ }
245
+ finally {
246
+ fs_1.default.rmSync(zipPath, { force: true });
247
+ }
248
+ }));
249
+ // `.credignore` adds to the fixed list and can never take from it: a `!`
250
+ // line naming a credential is refused, not honoured.
251
+ it("leaves out what .credignore names, at any depth, and never puts a credential back", () => __awaiter(void 0, void 0, void 0, function* () {
252
+ write("publisher.json", '{"name":"bars"}');
253
+ write("models/bars.malloy");
254
+ write("modeling-notes.md");
255
+ write("tests/check.malloy");
256
+ write("models/tests/fixture.csv");
257
+ write("docs/readme.md");
258
+ write("models/docs/keep.md");
259
+ write("publisher.config.json", '{"password":"hunter2"}');
260
+ write(".credignore", "# notes for me\nmodeling-notes.md\ntests/\n/docs\n!publisher.config.json\n");
261
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
262
+ try {
263
+ const { included } = yield (0, publish_1.createPackageArchive)(zipPath, workDir, (0, publish_1.readCredignore)(workDir));
264
+ const names = zipEntryNames(fs_1.default.readFileSync(zipPath));
265
+ (0, chai_1.expect)(names).to.eql([
266
+ "models/bars.malloy",
267
+ "models/docs/keep.md", // `/docs` is anchored to the top
268
+ "publisher.json",
269
+ ]);
270
+ // What a dry run lists is what the zip holds.
271
+ (0, chai_1.expect)(included).to.eql(names);
272
+ }
273
+ finally {
274
+ fs_1.default.rmSync(zipPath, { force: true });
275
+ }
276
+ }));
277
+ // Each line here was mistranslated before: a bracket class was case-folded
278
+ // into a different pattern, `/!x` reached the glob as a negation (leaving
279
+ // out everything but x), `/#x` as a comment, and `./x` matched nothing.
280
+ it("leaves out what each kind of .credignore line names, and only that", () => __awaiter(void 0, void 0, void 0, function* () {
281
+ write("publisher.json", '{"name":"bars"}');
282
+ write("models/bars.malloy");
283
+ write("fileb.md");
284
+ write("!draft.md");
285
+ write("#scratch.md");
286
+ write("notes/todo.md");
287
+ write("models/notes/keep.md"); // `./notes` is anchored to the top
288
+ write("examples/demo/.credignore"); // never read, never uploaded
289
+ write(".credignore", "file[a-c].md\n/!draft.md\n/#scratch.md\n./notes/\n");
290
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
291
+ try {
292
+ yield (0, publish_1.createPackageArchive)(zipPath, workDir, (0, publish_1.readCredignore)(workDir));
293
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
294
+ "models/bars.malloy",
295
+ "models/notes/keep.md",
296
+ "publisher.json",
297
+ ]);
298
+ }
299
+ finally {
300
+ fs_1.default.rmSync(zipPath, { force: true });
301
+ }
302
+ }));
303
+ it("is empty without a .credignore", () => {
304
+ (0, chai_1.expect)((0, publish_1.readCredignore)(workDir)).to.eql([]);
305
+ });
306
+ // The fixed list carries the `.credignore` exclusion, so it holds with no
307
+ // root file to read. It was added only when a root file existed.
308
+ it("leaves out a nested .credignore when there is no root one", () => __awaiter(void 0, void 0, void 0, function* () {
309
+ write("publisher.json", '{"name":"bars"}');
310
+ write("bars.malloy");
311
+ write("examples/demo/.credignore", "secret.md\n");
312
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
313
+ try {
314
+ yield (0, publish_1.createPackageArchive)(zipPath, workDir, (0, publish_1.readCredignore)(workDir));
315
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
316
+ "bars.malloy",
317
+ "publisher.json",
318
+ ]);
319
+ }
320
+ finally {
321
+ fs_1.default.rmSync(zipPath, { force: true });
322
+ }
323
+ }));
324
+ // On macOS `secrets/` names the `Secrets/` folder, and `.CredIgnore` is the
325
+ // file readCredignore read. Matched as written, both were uploaded.
326
+ it("matches .credignore lines regardless of case", () => __awaiter(void 0, void 0, void 0, function* () {
327
+ write("publisher.json", '{"name":"bars"}');
328
+ write("bars.malloy");
329
+ write("Secrets/key.txt");
330
+ write("FileB.md");
331
+ write("filed.md");
332
+ write(".CredIgnore");
333
+ write(".credignore", "secrets/\nfile[a-c].md\n");
334
+ const zipPath = path_1.default.join(workDir, "..", `${path_1.default.basename(workDir)}.zip`);
335
+ try {
336
+ yield (0, publish_1.createPackageArchive)(zipPath, workDir, (0, publish_1.readCredignore)(workDir));
337
+ (0, chai_1.expect)(zipEntryNames(fs_1.default.readFileSync(zipPath))).to.eql([
338
+ "bars.malloy",
339
+ "filed.md", // outside `[a-c]` in either case
340
+ "publisher.json",
341
+ ]);
342
+ }
343
+ finally {
344
+ fs_1.default.rmSync(zipPath, { force: true });
345
+ }
346
+ }));
347
+ it("folds case inside a bracket class without closing it", () => {
348
+ (0, chai_1.expect)((0, publish_1.anyCase)("**/.env")).to.equal("**/.[eE][nN][vV]");
349
+ (0, chai_1.expect)((0, publish_1.anyCase)("f[a-c].md")).to.equal("[fF][a-cA-C].[mM][dD]");
350
+ (0, chai_1.expect)((0, publish_1.anyCase)("[!x]")).to.equal("[!xX]");
351
+ (0, chai_1.expect)((0, publish_1.anyCase)("[]a]")).to.equal("[]aA]");
352
+ (0, chai_1.expect)((0, publish_1.anyCase)("[[:digit:]]")).to.equal("[[:digit:]]");
353
+ (0, chai_1.expect)((0, publish_1.anyCase)("\\!d")).to.equal("\\![dD]");
354
+ (0, chai_1.expect)((0, publish_1.anyCase)("[A-z]")).to.equal("[A-z]");
355
+ // An unclosed `[` is a literal, so its letters fold like any other.
356
+ (0, chai_1.expect)((0, publish_1.anyCase)("[ab")).to.equal("[[aA][bB]");
357
+ });
358
+ it("suggests the next version for a version that is already published", () => {
359
+ (0, chai_1.expect)((0, publish_1.nextVersion)("0.0.1")).to.equal("0.0.2");
360
+ (0, chai_1.expect)((0, publish_1.nextVersion)("1.2.9")).to.equal("1.2.10");
361
+ (0, chai_1.expect)((0, publish_1.nextVersion)("beta")).to.equal("beta.1");
362
+ // Zero padding kept, so the suggestion follows the user's own scheme.
363
+ (0, chai_1.expect)((0, publish_1.nextVersion)("1.0.08")).to.equal("1.0.09");
364
+ (0, chai_1.expect)((0, publish_1.nextVersion)("2024-01-01")).to.equal("2024-01-02");
365
+ (0, chai_1.expect)((0, publish_1.nextVersion)("1.0.09")).to.equal("1.0.10");
366
+ (0, chai_1.expect)((0, publish_1.nextVersion)("1.0.99")).to.equal("1.0.100");
367
+ });
368
+ describe("--dry-run", () => {
369
+ let cwd;
370
+ beforeEach(() => {
371
+ cwd = process.cwd();
372
+ process.chdir(workDir);
373
+ });
374
+ afterEach(() => process.chdir(cwd));
375
+ // A preview that needed a login would be no preview for someone not yet
376
+ // signed in, and nothing may leave the machine.
377
+ it("lists the files without logging in or uploading", () => __awaiter(void 0, void 0, void 0, function* () {
378
+ var _a;
379
+ write("publisher.json", '{"name":"bars","version":"0.0.1","description":"d"}');
380
+ write("models/bars.malloy", "source: s is duckdb.sql('select 1')");
381
+ write(".env", "SECRET=1");
382
+ const upload = sandbox.stub(api_1.PackagesApi.prototype, "createOrUpdatePackage");
383
+ const loggedOut = new clientconfiguration_1.ClientConfiguration();
384
+ sandbox.stub(loggedOut, "doesConfigExists").returns(false);
385
+ const stdout = sandbox.stub(console, "log");
386
+ yield (0, publish_1.publish)("http://unused", 1, false, false, false, loggedOut, {}, {
387
+ dryRun: true,
388
+ });
389
+ (0, chai_1.expect)(upload.called).to.equal(false);
390
+ (0, chai_1.expect)(stdout.getCalls().map((call) => call.args[0])).to.eql([
391
+ "models/bars.malloy",
392
+ "publisher.json",
393
+ ]);
394
+ (0, chai_1.expect)((_a = process.exitCode) !== null && _a !== void 0 ? _a : 0).to.equal(0);
395
+ }));
396
+ // Reading on as if there were no file would list, and upload, what the
397
+ // user asked to leave out.
398
+ it("stops, naming the file, when a .credignore exists but cannot be read", () => __awaiter(void 0, void 0, void 0, function* () {
399
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
400
+ fs_1.default.mkdirSync(path_1.default.join(workDir, ".credignore"));
401
+ const stdout = sandbox.stub(console, "log");
402
+ const originalExitCode = process.exitCode;
403
+ try {
404
+ yield (0, publish_1.publish)("http://unused", 1, false, false, false, new clientconfiguration_1.ClientConfiguration(), {}, { dryRun: true });
405
+ (0, chai_1.expect)(stdout.called).to.equal(false);
406
+ (0, chai_1.expect)(process.exitCode).to.equal(1);
407
+ (0, chai_1.expect)(String(logger_1.logger.error.firstCall.args[0])).to.match(/^Could not read \.credignore: .*Fix: make it readable/);
408
+ }
409
+ finally {
410
+ process.exitCode = originalExitCode;
411
+ }
412
+ }));
413
+ });
414
+ // A zip without a manifest was uploaded and failed on the server.
415
+ describe("a .credignore that leaves out publisher.json", () => {
416
+ let cwd;
417
+ let originalExitCode;
418
+ beforeEach(() => {
419
+ cwd = process.cwd();
420
+ originalExitCode = process.exitCode;
421
+ process.chdir(workDir);
422
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
423
+ write("models/bars.malloy", "source: s is duckdb.sql('select 1')");
424
+ write(".credignore", "*.json\n");
425
+ });
426
+ afterEach(() => {
427
+ process.chdir(cwd);
428
+ process.exitCode = originalExitCode;
429
+ });
430
+ const stopMessage = ".credignore leaves out publisher.json, so the package would have no manifest. Fix: remove the line in .credignore that matches publisher.json, and publish again.";
431
+ it("stops before the upload, naming the fix", () => __awaiter(void 0, void 0, void 0, function* () {
432
+ const upload = sandbox.stub(api_1.PackagesApi.prototype, "createOrUpdatePackage");
433
+ const loggedIn = new clientconfiguration_1.ClientConfiguration();
434
+ sandbox.stub(loggedIn, "doesConfigExists").returns(true);
435
+ sandbox.stub(loggedIn, "isTokenValid").returns({ valid: true });
436
+ yield (0, publish_1.publish)("http://unused", 1, false, true, false, loggedIn, {
437
+ organization: "o",
438
+ environment: "e",
439
+ });
440
+ (0, chai_1.expect)(upload.called).to.equal(false);
441
+ (0, chai_1.expect)(process.exitCode).to.equal(1);
442
+ (0, chai_1.expect)(logger_1.logger.error.calledWith(stopMessage)).to.equal(true);
443
+ }));
444
+ it("fails a dry run too, after listing what it would upload", () => __awaiter(void 0, void 0, void 0, function* () {
445
+ const stdout = sandbox.stub(console, "log");
446
+ yield (0, publish_1.publish)("http://unused", 1, false, false, false, new clientconfiguration_1.ClientConfiguration(), {}, { dryRun: true });
447
+ (0, chai_1.expect)(stdout.getCalls().map((call) => call.args[0])).to.eql([
448
+ "models/bars.malloy",
449
+ ]);
450
+ (0, chai_1.expect)(process.exitCode).to.equal(1);
451
+ (0, chai_1.expect)(logger_1.logger.error.calledWith(stopMessage)).to.equal(true);
452
+ }));
453
+ });
454
+ // database-design.md §12.2: a package data file should be at most 1 MiB. In
455
+ // phase 1 a larger one is warned about and published. Checked on what the
456
+ // archive carries, so an ignored file never trips it.
457
+ describe("the 1 MiB data-file cap", () => {
458
+ let cwd;
459
+ let originalExitCode;
460
+ beforeEach(() => {
461
+ cwd = process.cwd();
462
+ originalExitCode = process.exitCode;
463
+ process.chdir(workDir);
464
+ write("publisher.json", '{"name":"bars","version":"0.0.1"}');
465
+ write("models/bars.malloy", "source: s is duckdb.table('data/a.csv')");
466
+ });
467
+ afterEach(() => {
468
+ process.chdir(cwd);
469
+ process.exitCode = originalExitCode;
470
+ });
471
+ const big = "x".repeat(publish_1.MAX_DATA_FILE_BYTES + 1);
472
+ const loggedIn = () => {
473
+ const config = new clientconfiguration_1.ClientConfiguration();
474
+ sandbox.stub(config, "doesConfigExists").returns(true);
475
+ sandbox.stub(config, "isTokenValid").returns({ valid: true });
476
+ return config;
477
+ };
478
+ const warnings = () => logger_1.logger.warn.getCalls().map((c) => c.args[0]);
479
+ it("warns about a data file over 1 MiB, naming the database fix, and still publishes", () => __awaiter(void 0, void 0, void 0, function* () {
480
+ var _a;
481
+ write("data/Orders 2024.parquet", big);
482
+ const upload = sandbox
483
+ .stub(api_1.PackagesApi.prototype, "createOrUpdatePackage")
484
+ .resolves({ data: {} });
485
+ sandbox.stub(console, "log");
486
+ yield (0, publish_1.publish)("http://unused", 1, false, true, false, loggedIn(), {
487
+ organization: "o",
488
+ environment: "e",
489
+ });
490
+ (0, chai_1.expect)(upload.calledOnce).to.equal(true);
491
+ (0, chai_1.expect)((_a = process.exitCode) !== null && _a !== void 0 ? _a : 0).to.equal(0);
492
+ (0, chai_1.expect)(warnings()).to.include("data/Orders 2024.parquet is 1.1 MiB; a package data file should be at most 1 MiB, and a later release will refuse a larger one. Put it in a database: cred add table credible 'data/Orders 2024.parquet', then read it as credible.table('orders_2024') (the credible-publish-local-data skill does this for every file).");
493
+ }));
494
+ it("passes a data file of exactly 1 MiB, and a large file that is not data", () => __awaiter(void 0, void 0, void 0, function* () {
495
+ write("data/a.csv", "x".repeat(publish_1.MAX_DATA_FILE_BYTES));
496
+ write("docs/manual.pdf", big);
497
+ const upload = sandbox
498
+ .stub(api_1.PackagesApi.prototype, "createOrUpdatePackage")
499
+ .resolves({ data: {} });
500
+ sandbox.stub(console, "log");
501
+ yield (0, publish_1.publish)("http://unused", 1, false, true, false, loggedIn(), {
502
+ organization: "o",
503
+ environment: "e",
504
+ });
505
+ (0, chai_1.expect)(upload.calledOnce).to.equal(true);
506
+ (0, chai_1.expect)(warnings().join("\n")).not.to.match(/at most 1 MiB/);
507
+ }));
508
+ it("never trips on a file .credignore leaves out", () => __awaiter(void 0, void 0, void 0, function* () {
509
+ var _a;
510
+ write("data/huge.csv", big);
511
+ write(".credignore", "data/huge.csv\n");
512
+ sandbox.stub(console, "log");
513
+ yield (0, publish_1.publish)("http://unused", 1, false, false, false, new clientconfiguration_1.ClientConfiguration(), {}, { dryRun: true });
514
+ (0, chai_1.expect)((_a = process.exitCode) !== null && _a !== void 0 ? _a : 0).to.equal(0);
515
+ (0, chai_1.expect)(warnings().join("\n")).not.to.match(/at most 1 MiB/);
516
+ }));
517
+ it("warns on a dry run too, which still passes", () => __awaiter(void 0, void 0, void 0, function* () {
518
+ var _a;
519
+ write("data/events.jsonl", big);
520
+ sandbox.stub(console, "log");
521
+ yield (0, publish_1.publish)("http://unused", 1, false, false, false, new clientconfiguration_1.ClientConfiguration(), {}, { dryRun: true });
522
+ (0, chai_1.expect)((_a = process.exitCode) !== null && _a !== void 0 ? _a : 0).to.equal(0);
523
+ (0, chai_1.expect)(warnings().join("\n")).to.match(/^data\/events\.jsonl is 1\.1 MiB; a package data file should be at most 1 MiB/);
524
+ }));
525
+ it("counts the formats a model reads as data, and not a root-level JSON", () => {
526
+ for (const name of [
527
+ "data/a.csv",
528
+ "a.TSV",
529
+ "x/b.csv.gz",
530
+ "d/c.parquet",
531
+ "d/e.json",
532
+ "d/f.jsonl",
533
+ "d/g.ndjson",
534
+ "d/h.xlsx",
535
+ "d/i.xls",
536
+ ]) {
537
+ (0, chai_1.expect)((0, publish_1.isDataFile)(name), name).to.equal(true);
538
+ }
539
+ for (const name of ["publisher.json", "models/a.malloy", "notes.md"]) {
540
+ (0, chai_1.expect)((0, publish_1.isDataFile)(name), name).to.equal(false);
541
+ }
542
+ });
543
+ it("rounds a size away from the cap, so it never reads as the cap itself", () => {
544
+ (0, chai_1.expect)((0, publish_1.dataFileTooLargeMessage)({
545
+ path: "data/orders.parquet",
546
+ bytes: 48.2 * 1024 * 1024,
547
+ })).to.match(/^data\/orders\.parquet is 48\.2 MiB; /);
548
+ (0, chai_1.expect)((0, publish_1.dataFileTooLargeMessage)({
549
+ path: "data/x.csv",
550
+ bytes: publish_1.MAX_DATA_FILE_BYTES + 1,
551
+ })).to.match(/is 1\.1 MiB; /);
552
+ });
553
+ it("asks for an .xls to be saved as .xlsx or .csv first, since a database reads neither .xls", () => {
554
+ const xls = (0, publish_1.dataFileTooLargeMessage)({
555
+ path: "data/budget.xls",
556
+ bytes: 3 * 1024 * 1024,
557
+ });
558
+ (0, chai_1.expect)(xls).to.contain("Save it as .xlsx or .csv");
559
+ (0, chai_1.expect)(xls).to.not.contain("cred add table credible data/budget.xls");
560
+ (0, chai_1.expect)((0, publish_1.dataFileTooLargeMessage)({
561
+ path: "data/events.csv.gz",
562
+ bytes: 3 * 1024 * 1024,
563
+ })).to.contain("cred add table credible data/events.csv.gz");
564
+ });
565
+ });
566
+ it("names the credential file first, so the rule is visible where it matters", () => {
567
+ (0, chai_1.expect)(publish_1.PUBLISH_EXCLUDES[0]).to.equal("**/publisher.config.json");
568
+ });
569
+ });
570
+ //# sourceMappingURL=publish.archive.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.archive.spec.js","sourceRoot":"","sources":["../../../src/commands/package/publish.archive.spec.ts"],"names":[],"mappings":"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"}