@appsemble/cli 0.20.8 → 0.20.11

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 (295) hide show
  1. package/__fixtures__/getBlockConfigFromTypeScript/comments/index.ts +40 -0
  2. package/__fixtures__/getBlockConfigFromTypeScript/comments/tsconfig.json +7 -0
  3. package/__fixtures__/getBlockConfigFromTypeScript/duplicateActions/index.ts +34 -0
  4. package/__fixtures__/getBlockConfigFromTypeScript/duplicateActions/tsconfig.json +7 -0
  5. package/__fixtures__/getBlockConfigFromTypeScript/duplicateEventEmitters/index.ts +34 -0
  6. package/__fixtures__/getBlockConfigFromTypeScript/duplicateEventEmitters/tsconfig.json +7 -0
  7. package/__fixtures__/getBlockConfigFromTypeScript/duplicateEventListeners/index.ts +34 -0
  8. package/__fixtures__/getBlockConfigFromTypeScript/duplicateEventListeners/tsconfig.json +7 -0
  9. package/__fixtures__/getBlockConfigFromTypeScript/duplicateParameters/index.ts +34 -0
  10. package/__fixtures__/getBlockConfigFromTypeScript/duplicateParameters/tsconfig.json +7 -0
  11. package/__fixtures__/getBlockConfigFromTypeScript/fontawesomeParameters/index.ts +11 -0
  12. package/__fixtures__/getBlockConfigFromTypeScript/fontawesomeParameters/tsconfig.json +7 -0
  13. package/__fixtures__/getBlockConfigFromTypeScript/tsError/index.ts +4 -0
  14. package/__fixtures__/getBlockConfigFromTypeScript/tsError/tsconfig.json +8 -0
  15. package/__fixtures__/getBlockConfigFromTypeScript/valid/index.ts +28 -0
  16. package/__fixtures__/getBlockConfigFromTypeScript/valid/tsconfig.json +7 -0
  17. package/__fixtures__/makePayload/no-icon/output/block.js +1 -0
  18. package/__fixtures__/makePayload/with-icon/icon.svg +2 -0
  19. package/__fixtures__/makePayload/with-icon/output/block.js +1 -0
  20. package/assets/appsemblerc.schema.json +150 -0
  21. package/changed/added/.gitkeep +0 -0
  22. package/changed/changed/.gitkeep +0 -0
  23. package/changed/deprecated/.gitkeep +0 -0
  24. package/changed/fixed/.gitkeep +0 -0
  25. package/changed/removed/.gitkeep +0 -0
  26. package/changed/security/.gitkeep +0 -0
  27. package/{dist/commands → commands}/app/create.d.ts +0 -0
  28. package/{dist/commands → commands}/app/create.js +0 -0
  29. package/commands/app/create.js.map +1 -0
  30. package/commands/app/create.ts +104 -0
  31. package/{dist/commands → commands}/app/extract-messages.d.ts +0 -0
  32. package/{dist/commands → commands}/app/extract-messages.js +0 -0
  33. package/commands/app/extract-messages.js.map +1 -0
  34. package/commands/app/extract-messages.ts +56 -0
  35. package/{dist/commands → commands}/app/index.d.ts +0 -0
  36. package/{dist/commands → commands}/app/index.js +0 -0
  37. package/commands/app/index.js.map +1 -0
  38. package/commands/app/index.ts +14 -0
  39. package/{dist/commands → commands}/app/update.d.ts +0 -0
  40. package/{dist/commands → commands}/app/update.js +0 -0
  41. package/commands/app/update.js.map +1 -0
  42. package/commands/app/update.ts +111 -0
  43. package/{dist/commands → commands}/asset/create.d.ts +0 -0
  44. package/{dist/commands → commands}/asset/create.js +0 -0
  45. package/commands/asset/create.js.map +1 -0
  46. package/commands/asset/create.ts +84 -0
  47. package/{dist/commands → commands}/asset/index.d.ts +0 -0
  48. package/{dist/commands → commands}/asset/index.js +0 -0
  49. package/commands/asset/index.js.map +1 -0
  50. package/commands/asset/index.ts +12 -0
  51. package/{dist/commands → commands}/block/build.d.ts +0 -0
  52. package/{dist/commands → commands}/block/build.js +0 -0
  53. package/commands/block/build.js.map +1 -0
  54. package/commands/block/build.ts +32 -0
  55. package/{dist/commands → commands}/block/extract-messages.d.ts +0 -0
  56. package/{dist/commands → commands}/block/extract-messages.js +0 -0
  57. package/commands/block/extract-messages.js.map +1 -0
  58. package/commands/block/extract-messages.ts +41 -0
  59. package/{dist/commands → commands}/block/index.d.ts +0 -0
  60. package/{dist/commands → commands}/block/index.js +0 -0
  61. package/commands/block/index.js.map +1 -0
  62. package/commands/block/index.ts +14 -0
  63. package/{dist/commands → commands}/block/publish.d.ts +0 -0
  64. package/{dist/commands → commands}/block/publish.js +0 -0
  65. package/commands/block/publish.js.map +1 -0
  66. package/commands/block/publish.ts +58 -0
  67. package/{dist/commands → commands}/cleanupResources.d.ts +0 -0
  68. package/{dist/commands → commands}/cleanupResources.js +0 -0
  69. package/commands/cleanupResources.js.map +1 -0
  70. package/commands/cleanupResources.ts +45 -0
  71. package/{dist/commands → commands}/config/get.d.ts +0 -0
  72. package/{dist/commands → commands}/config/get.js +0 -0
  73. package/commands/config/get.js.map +1 -0
  74. package/commands/config/get.ts +26 -0
  75. package/{dist/commands → commands}/config/index.d.ts +0 -0
  76. package/{dist/commands → commands}/config/index.js +0 -0
  77. package/commands/config/index.js.map +1 -0
  78. package/commands/config/index.ts +13 -0
  79. package/{dist/commands → commands}/config/set.d.ts +0 -0
  80. package/{dist/commands → commands}/config/set.js +0 -0
  81. package/commands/config/set.js.map +1 -0
  82. package/commands/config/set.ts +44 -0
  83. package/{dist/commands → commands}/login.d.ts +0 -0
  84. package/{dist/commands → commands}/login.js +0 -0
  85. package/commands/login.js.map +1 -0
  86. package/commands/login.ts +5 -0
  87. package/{dist/commands → commands}/logout.d.ts +0 -0
  88. package/{dist/commands → commands}/logout.js +0 -0
  89. package/commands/logout.js.map +1 -0
  90. package/commands/logout.ts +5 -0
  91. package/{dist/commands → commands}/migrate.d.ts +0 -0
  92. package/{dist/commands → commands}/migrate.js +5 -2
  93. package/commands/migrate.js.map +1 -0
  94. package/commands/migrate.ts +50 -0
  95. package/{dist/commands → commands}/organization/create.d.ts +0 -0
  96. package/{dist/commands → commands}/organization/create.js +0 -0
  97. package/commands/organization/create.js.map +1 -0
  98. package/commands/organization/create.ts +65 -0
  99. package/{dist/commands → commands}/organization/index.d.ts +0 -0
  100. package/{dist/commands → commands}/organization/index.js +0 -0
  101. package/commands/organization/index.js.map +1 -0
  102. package/commands/organization/index.ts +13 -0
  103. package/{dist/commands → commands}/organization/update.d.ts +0 -0
  104. package/{dist/commands → commands}/organization/update.js +0 -0
  105. package/commands/organization/update.js.map +1 -0
  106. package/commands/organization/update.ts +65 -0
  107. package/{dist/commands → commands}/resource/create.d.ts +0 -0
  108. package/{dist/commands → commands}/resource/create.js +0 -0
  109. package/commands/resource/create.js.map +1 -0
  110. package/commands/resource/create.ts +78 -0
  111. package/{dist/commands → commands}/resource/index.d.ts +0 -0
  112. package/{dist/commands → commands}/resource/index.js +0 -0
  113. package/commands/resource/index.js.map +1 -0
  114. package/commands/resource/index.ts +13 -0
  115. package/{dist/commands → commands}/resource/update.d.ts +0 -0
  116. package/{dist/commands → commands}/resource/update.js +0 -0
  117. package/commands/resource/update.js.map +1 -0
  118. package/commands/resource/update.ts +77 -0
  119. package/{dist/commands → commands}/runCronJobs.d.ts +0 -0
  120. package/{dist/commands → commands}/runCronJobs.js +0 -0
  121. package/commands/runCronJobs.js.map +1 -0
  122. package/commands/runCronJobs.ts +45 -0
  123. package/{dist/commands → commands}/start.d.ts +0 -0
  124. package/{dist/commands → commands}/start.js +4 -0
  125. package/commands/start.js.map +1 -0
  126. package/commands/start.ts +140 -0
  127. package/{dist/commands → commands}/team/create.d.ts +0 -0
  128. package/{dist/commands → commands}/team/create.js +0 -0
  129. package/commands/team/create.js.map +1 -0
  130. package/commands/team/create.ts +60 -0
  131. package/{dist/commands → commands}/team/delete.d.ts +0 -0
  132. package/{dist/commands → commands}/team/delete.js +0 -0
  133. package/commands/team/delete.js.map +1 -0
  134. package/commands/team/delete.ts +54 -0
  135. package/{dist/commands → commands}/team/index.d.ts +0 -0
  136. package/{dist/commands → commands}/team/index.js +0 -0
  137. package/commands/team/index.js.map +1 -0
  138. package/commands/team/index.ts +15 -0
  139. package/{dist/commands → commands}/team/member/delete.d.ts +0 -0
  140. package/{dist/commands → commands}/team/member/delete.js +0 -0
  141. package/commands/team/member/delete.js.map +1 -0
  142. package/commands/team/member/delete.ts +61 -0
  143. package/{dist/commands → commands}/team/member/index.d.ts +0 -0
  144. package/{dist/commands → commands}/team/member/index.js +0 -0
  145. package/commands/team/member/index.js.map +1 -0
  146. package/commands/team/member/index.ts +14 -0
  147. package/{dist/commands → commands}/team/member/invite.d.ts +0 -0
  148. package/{dist/commands → commands}/team/member/invite.js +0 -0
  149. package/commands/team/member/invite.js.map +1 -0
  150. package/commands/team/member/invite.ts +61 -0
  151. package/{dist/commands → commands}/team/member/update.d.ts +0 -0
  152. package/{dist/commands → commands}/team/member/update.js +0 -0
  153. package/commands/team/member/update.js.map +1 -0
  154. package/commands/team/member/update.ts +70 -0
  155. package/{dist/commands → commands}/team/update.d.ts +0 -0
  156. package/{dist/commands → commands}/team/update.js +0 -0
  157. package/commands/team/update.js.map +1 -0
  158. package/commands/team/update.ts +60 -0
  159. package/index.d.ts +2 -0
  160. package/{dist/index.js → index.js} +2 -6
  161. package/index.js.map +1 -0
  162. package/index.ts +74 -0
  163. package/jest.config.js +1 -0
  164. package/jest.setup.d.ts +1 -0
  165. package/jest.setup.js +6 -0
  166. package/jest.setup.js.map +1 -0
  167. package/jest.setup.ts +4 -0
  168. package/lib/__snapshots__/getBlockConfigFromTypeScript.test.ts.snap +3872 -0
  169. package/{dist/lib → lib}/app.d.ts +17 -17
  170. package/{dist/lib → lib}/app.js +29 -29
  171. package/lib/app.js.map +1 -0
  172. package/lib/app.ts +797 -0
  173. package/{dist/lib → lib}/asset.d.ts +0 -0
  174. package/{dist/lib → lib}/asset.js +0 -0
  175. package/lib/asset.js.map +1 -0
  176. package/lib/asset.ts +43 -0
  177. package/{dist/lib → lib}/authentication.d.ts +3 -3
  178. package/{dist/lib → lib}/authentication.js +47 -15
  179. package/lib/authentication.js.map +1 -0
  180. package/lib/authentication.ts +193 -0
  181. package/{dist/lib → lib}/block.d.ts +16 -16
  182. package/{dist/lib → lib}/block.js +35 -26
  183. package/lib/block.js.map +1 -0
  184. package/lib/block.test.d.ts +1 -0
  185. package/lib/block.test.js +106 -0
  186. package/lib/block.test.js.map +1 -0
  187. package/lib/block.test.ts +103 -0
  188. package/lib/block.ts +384 -0
  189. package/{dist/lib → lib}/coercers.d.ts +2 -2
  190. package/{dist/lib → lib}/coercers.js +2 -2
  191. package/lib/coercers.js.map +1 -0
  192. package/lib/coercers.test.d.ts +1 -0
  193. package/lib/coercers.test.js +28 -0
  194. package/lib/coercers.test.js.map +1 -0
  195. package/lib/coercers.test.ts +27 -0
  196. package/lib/coercers.ts +57 -0
  197. package/{dist/lib → lib}/getBlockConfigFromTypeScript.d.ts +1 -1
  198. package/{dist/lib → lib}/getBlockConfigFromTypeScript.js +38 -36
  199. package/lib/getBlockConfigFromTypeScript.js.map +1 -0
  200. package/lib/getBlockConfigFromTypeScript.test.d.ts +1 -0
  201. package/lib/getBlockConfigFromTypeScript.test.js +238 -0
  202. package/lib/getBlockConfigFromTypeScript.test.js.map +1 -0
  203. package/lib/getBlockConfigFromTypeScript.test.ts +281 -0
  204. package/lib/getBlockConfigFromTypeScript.ts +354 -0
  205. package/{dist/lib → lib}/initAxios.d.ts +1 -1
  206. package/{dist/lib → lib}/initAxios.js +3 -4
  207. package/lib/initAxios.js.map +1 -0
  208. package/lib/initAxios.ts +16 -0
  209. package/{dist/lib → lib}/loadWebpackConfig.d.ts +3 -3
  210. package/{dist/lib → lib}/loadWebpackConfig.js +3 -3
  211. package/lib/loadWebpackConfig.js.map +1 -0
  212. package/lib/loadWebpackConfig.ts +59 -0
  213. package/{dist/lib → lib}/organization.d.ts +1 -1
  214. package/{dist/lib → lib}/organization.js +0 -0
  215. package/lib/organization.js.map +1 -0
  216. package/lib/organization.ts +105 -0
  217. package/{dist/lib → lib}/output.d.ts +0 -0
  218. package/{dist/lib → lib}/output.js +0 -0
  219. package/lib/output.js.map +1 -0
  220. package/lib/output.ts +19 -0
  221. package/{dist/lib → lib}/processCss.d.ts +1 -1
  222. package/{dist/lib → lib}/processCss.js +3 -3
  223. package/lib/processCss.js.map +1 -0
  224. package/lib/processCss.ts +24 -0
  225. package/{dist/lib → lib}/resource.d.ts +0 -0
  226. package/{dist/lib → lib}/resource.js +1 -1
  227. package/lib/resource.js.map +1 -0
  228. package/lib/resource.ts +128 -0
  229. package/{dist/lib → lib}/serverImport.d.ts +1 -1
  230. package/{dist/lib → lib}/serverImport.js +2 -2
  231. package/lib/serverImport.js.map +1 -0
  232. package/lib/serverImport.ts +43 -0
  233. package/{dist/lib → lib}/team.d.ts +0 -0
  234. package/{dist/lib → lib}/team.js +0 -0
  235. package/lib/team.js.map +1 -0
  236. package/lib/team.ts +152 -0
  237. package/package.json +14 -12
  238. package/tsconfig.json +10 -0
  239. package/{dist/types.d.ts → types.d.ts} +0 -0
  240. package/{dist/types.js → types.js} +0 -0
  241. package/types.js.map +1 -0
  242. package/types.ts +110 -0
  243. package/dist/commands/app/create.js.map +0 -1
  244. package/dist/commands/app/extract-messages.js.map +0 -1
  245. package/dist/commands/app/index.js.map +0 -1
  246. package/dist/commands/app/update.js.map +0 -1
  247. package/dist/commands/asset/create.js.map +0 -1
  248. package/dist/commands/asset/index.js.map +0 -1
  249. package/dist/commands/block/build.js.map +0 -1
  250. package/dist/commands/block/extract-messages.js.map +0 -1
  251. package/dist/commands/block/index.js.map +0 -1
  252. package/dist/commands/block/publish.js.map +0 -1
  253. package/dist/commands/cleanupResources.js.map +0 -1
  254. package/dist/commands/config/get.js.map +0 -1
  255. package/dist/commands/config/index.js.map +0 -1
  256. package/dist/commands/config/set.js.map +0 -1
  257. package/dist/commands/login.js.map +0 -1
  258. package/dist/commands/logout.js.map +0 -1
  259. package/dist/commands/migrate.js.map +0 -1
  260. package/dist/commands/organization/create.js.map +0 -1
  261. package/dist/commands/organization/index.js.map +0 -1
  262. package/dist/commands/organization/update.js.map +0 -1
  263. package/dist/commands/resource/create.js.map +0 -1
  264. package/dist/commands/resource/index.js.map +0 -1
  265. package/dist/commands/resource/update.js.map +0 -1
  266. package/dist/commands/runCronJobs.js.map +0 -1
  267. package/dist/commands/start.js.map +0 -1
  268. package/dist/commands/team/create.js.map +0 -1
  269. package/dist/commands/team/delete.js.map +0 -1
  270. package/dist/commands/team/index.js.map +0 -1
  271. package/dist/commands/team/member/delete.js.map +0 -1
  272. package/dist/commands/team/member/index.js.map +0 -1
  273. package/dist/commands/team/member/invite.js.map +0 -1
  274. package/dist/commands/team/member/update.js.map +0 -1
  275. package/dist/commands/team/update.js.map +0 -1
  276. package/dist/index.d.ts +0 -2
  277. package/dist/index.js.map +0 -1
  278. package/dist/lib/app.js.map +0 -1
  279. package/dist/lib/asset.js.map +0 -1
  280. package/dist/lib/authentication.js.map +0 -1
  281. package/dist/lib/block.js.map +0 -1
  282. package/dist/lib/coercers.js.map +0 -1
  283. package/dist/lib/getBlockConfigFromTypeScript.js.map +0 -1
  284. package/dist/lib/initAxios.js.map +0 -1
  285. package/dist/lib/loadWebpackConfig.js.map +0 -1
  286. package/dist/lib/organization.js.map +0 -1
  287. package/dist/lib/output.js.map +0 -1
  288. package/dist/lib/processCss.js.map +0 -1
  289. package/dist/lib/readPackageJson.d.ts +0 -9
  290. package/dist/lib/readPackageJson.js +0 -16
  291. package/dist/lib/readPackageJson.js.map +0 -1
  292. package/dist/lib/resource.js.map +0 -1
  293. package/dist/lib/serverImport.js.map +0 -1
  294. package/dist/lib/team.js.map +0 -1
  295. package/dist/types.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { Argv } from 'yargs';
2
+
3
+ import * as create from './create';
4
+ import * as extractMessages from './extract-messages';
5
+ import * as update from './update';
6
+
7
+ export { noop as handler } from '@appsemble/utils';
8
+
9
+ export const command = 'app';
10
+ export const description = 'Commands related to apps.';
11
+
12
+ export function builder(yargs: Argv): Argv {
13
+ return yargs.command(create).command(extractMessages).command(update).demandCommand(1);
14
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["update.ts"],"names":[],"mappings":";;;;;;AAEA,sDAA+D;AAE/D,0DAA2B;AAC3B,oEAA2C;AAG3C,uCAA0C;AAC1C,6DAAwD;AACxD,iDAAgD;AAkBnC,QAAA,OAAO,GAAG,mBAAmB,CAAC;AAC9B,QAAA,WAAW,GAAG,4DAA4D,CAAC;AAExF,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,iCAAiC;QAC3C,SAAS,EAAE,IAAI;KAChB,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,QAAQ,EAAE,gEAAgE;KAC3E,CAAC;SACD,MAAM,CAAC,IAAI,EAAE;QACZ,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,yEAAyE;QACnF,MAAM,EAAE,qBAAU;KACnB,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,QAAQ,EAAE,8DAA8D;QACxE,OAAO,EAAE,SAAS;KACnB,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,QAAQ,EACN,2FAA2F;QAC7F,MAAM,EAAE,qBAAU;KACnB,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,QAAQ,EAAE,gDAAgD;QAC1D,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;KAC3C,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,8CAA8C;QACxD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,qBAAqB,EAAE;QAC7B,QAAQ,EAAE,0CAA0C;KACrD,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,QAAQ,EAAE,oCAAoC;KAC/C,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE;QAC5B,QAAQ,EAAE,wDAAwD;QAClE,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB,CAAC,CAAC;AACP,CAAC;AAnDD,0BAmDC;AAEM,KAAK,UAAU,OAAO,CAAC,EAC5B,iBAAiB,EACjB,EAAE,EACF,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACY;IACnB,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAClC,MAAM,IAAI,2BAAc,CAAC,0DAA0D,CAAC,CAAC;KACtF;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAE,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzF,MAAM,IAAA,6BAAY,EAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAE5D,mBAAM,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,MAAM,OAAO,CAAC,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,MAAM,IAAA,eAAS,EAAC;YACd,GAAG,IAAI;YACP,iBAAiB;YACjB,EAAE;YACF,IAAI,EAAE,GAAG;YACT,MAAM;SACP,CAAC,CAAC;KACJ;AACH,CAAC;AA1BD,0BA0BC"}
@@ -0,0 +1,111 @@
1
+ import { ReadStream } from 'fs';
2
+
3
+ import { AppsembleError, logger } from '@appsemble/node-utils';
4
+ import { AppVisibility } from '@appsemble/types';
5
+ import fg from 'fast-glob';
6
+ import normalizePath from 'normalize-path';
7
+ import { Argv } from 'yargs';
8
+
9
+ import { updateApp } from '../../lib/app';
10
+ import { authenticate } from '../../lib/authentication';
11
+ import { coerceFile } from '../../lib/coercers';
12
+ import { BaseArguments } from '../../types';
13
+
14
+ interface UpdateAppArguments extends BaseArguments {
15
+ context: string;
16
+ paths: string[];
17
+ icon: NodeJS.ReadStream | ReadStream;
18
+ iconBackground: string;
19
+ maskableIcon: NodeJS.ReadStream | ReadStream;
20
+ id: number;
21
+ template: boolean;
22
+ force: boolean;
23
+ visibility: AppVisibility;
24
+ sentryDsn: string;
25
+ sentryEnvironment: string;
26
+ googleAnalyticsId: string;
27
+ }
28
+
29
+ export const command = 'update <paths...>';
30
+ export const description = 'Update an app based on a specified YAML file or directory.';
31
+
32
+ export function builder(yargs: Argv): Argv<any> {
33
+ return yargs
34
+ .positional('paths', {
35
+ describe: 'The path to the app to register',
36
+ normalize: true,
37
+ })
38
+ .option('context', {
39
+ describe: 'If specified, use the specified context from .appsemblerc.yaml',
40
+ })
41
+ .option('id', {
42
+ describe: 'The ID of the app to update.',
43
+ type: 'number',
44
+ })
45
+ .option('icon', {
46
+ describe: 'The icon to upload. By default "icon.png" in the app directory is used.',
47
+ coerce: coerceFile,
48
+ })
49
+ .option('icon-background', {
50
+ describe: 'The background color to use for the icon in opaque contexts.',
51
+ default: '#ffffff',
52
+ })
53
+ .option('maskable-icon', {
54
+ describe:
55
+ 'The maskable icon to upload. By default "maskable-icon.png" in the app directory is used.',
56
+ coerce: coerceFile,
57
+ })
58
+ .option('visibility', {
59
+ describe: 'Visibility of the app in the public app store.',
60
+ default: 'unlisted',
61
+ choices: ['public', 'unlisted', 'private'],
62
+ })
63
+ .option('template', {
64
+ describe: 'Whether the app should be marked as a template.',
65
+ type: 'boolean',
66
+ default: false,
67
+ })
68
+ .option('force', {
69
+ describe: 'Whether the lock property should be ignored.',
70
+ type: 'boolean',
71
+ default: false,
72
+ })
73
+ .option('google-analytics-id', {
74
+ describe: 'The ID for Google Analytics for the app.',
75
+ })
76
+ .option('sentry-dsn', {
77
+ describe: 'The custom Sentry DSN for the app.',
78
+ })
79
+ .option('sentry-environment', {
80
+ describe: 'The environment for the custom Sentry DSN for the app.',
81
+ implies: ['sentry-dsn'],
82
+ });
83
+ }
84
+
85
+ export async function handler({
86
+ clientCredentials,
87
+ id,
88
+ paths,
89
+ remote,
90
+ ...args
91
+ }: UpdateAppArguments): Promise<void> {
92
+ if (id != null && paths.length > 1) {
93
+ throw new AppsembleError('Only one path may be specified when specifying an app id');
94
+ }
95
+
96
+ const normalizedPaths = paths.map((path) => normalizePath(path));
97
+ const directories = await fg(normalizedPaths, { absolute: true, onlyDirectories: true });
98
+
99
+ await authenticate(remote, 'apps:write', clientCredentials);
100
+
101
+ logger.info(`Updating ${directories.length} apps`);
102
+ for (const dir of directories) {
103
+ await updateApp({
104
+ ...args,
105
+ clientCredentials,
106
+ id,
107
+ path: dir,
108
+ remote,
109
+ });
110
+ }
111
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA6B;AAE7B,sDAA+D;AAC/D,0DAA2B;AAC3B,oEAA2C;AAG3C,uCAAsD;AACtD,2CAA8C;AAC9C,6DAAwD;AAY3C,QAAA,OAAO,GAAG,mBAAmB,CAAC;AAC9B,QAAA,WAAW,GAAG,oCAAoC,CAAC;AAEhE,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,qCAAqC;QAC/C,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,QAAQ,EACN,uGAAuG;KAC1G,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,QAAQ,EACN,oJAAoJ;QACtJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,QAAQ,EAAE,gDAAgD;QAC1D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,sBAAsB;KACjC,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,QAAQ,EAAE,gEAAgE;KAC3E,CAAC,CAAC;AACP,CAAC;AA3BD,0BA2BC;AAEM,KAAK,UAAU,OAAO,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,WAAW,GACU;IACrB,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,IAAA,2BAAqB,EAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjG,MAAM,IAAA,6BAAY,EAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAE,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAM,IAAI,2BAAc,CAAC,qDAAqD,CAAC,CAAC;KACjF;IAED,mBAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,mBAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,IAAA,mBAAW,EAAC;YAChB,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,aAAa;YACpB,IAAI;YACJ,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;KACJ;AACH,CAAC;AA9BD,0BA8BC"}
@@ -0,0 +1,84 @@
1
+ import { parse } from 'path';
2
+
3
+ import { AppsembleError, logger } from '@appsemble/node-utils';
4
+ import fg from 'fast-glob';
5
+ import normalizePath from 'normalize-path';
6
+ import { Argv } from 'yargs';
7
+
8
+ import { resolveAppIdAndRemote } from '../../lib/app';
9
+ import { createAsset } from '../../lib/asset';
10
+ import { authenticate } from '../../lib/authentication';
11
+ import { BaseArguments } from '../../types';
12
+
13
+ interface CreateAssetArguments extends BaseArguments {
14
+ name: string;
15
+ useFileName: boolean;
16
+ paths: string[];
17
+ appId: number;
18
+ context: string;
19
+ app: string;
20
+ }
21
+
22
+ export const command = 'create <paths...>';
23
+ export const description = 'Create assets for an existing app.';
24
+
25
+ export function builder(yargs: Argv): Argv<any> {
26
+ return yargs
27
+ .positional('paths', {
28
+ describe: 'The path to the resources to create',
29
+ normalize: true,
30
+ demandOption: true,
31
+ })
32
+ .option('name', {
33
+ describe:
34
+ 'The name that should be assigned to the asset. These must be unique. Will override `--use-file-name`.',
35
+ })
36
+ .option('use-file-name', {
37
+ describe:
38
+ 'Whether the filename should be used as the name to refer the asset to. If this is set to false and `--name` is not specified, no name will be set.',
39
+ type: 'boolean',
40
+ default: true,
41
+ })
42
+ .option('app-id', {
43
+ describe: 'The ID of the app to create the resources for.',
44
+ type: 'number',
45
+ })
46
+ .option('app', {
47
+ describe: 'The path to the app.',
48
+ })
49
+ .option('context', {
50
+ describe: 'If specified, use the specified context from .appsemblerc.yaml',
51
+ });
52
+ }
53
+
54
+ export async function handler({
55
+ app,
56
+ appId,
57
+ clientCredentials,
58
+ context,
59
+ name,
60
+ paths,
61
+ remote,
62
+ useFileName,
63
+ }: CreateAssetArguments): Promise<void> {
64
+ const [resolvedAppId, resolvedRemote] = await resolveAppIdAndRemote(app, context, remote, appId);
65
+ await authenticate(resolvedRemote, 'assets:write', clientCredentials);
66
+
67
+ const normalizedPaths = paths.map((path) => normalizePath(path));
68
+ const files = await fg(normalizedPaths, { absolute: true, onlyFiles: true });
69
+
70
+ if (name && files.length > 1) {
71
+ throw new AppsembleError('--name was specified but multiple files were found.');
72
+ }
73
+
74
+ logger.info(`Creating ${files.length} asset(s)`);
75
+ for (const path of files) {
76
+ logger.info('');
77
+ await createAsset({
78
+ name: name || (useFileName ? parse(path).name : null),
79
+ appId: resolvedAppId,
80
+ path,
81
+ remote: resolvedRemote,
82
+ });
83
+ }
84
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,iDAAmC;AAEnC,0CAAmD;AAA1C,gGAAA,IAAI,OAAW;AAEX,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,WAAW,GAAG,iCAAiC,CAAC;AAE7D,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,0BAEC"}
@@ -0,0 +1,12 @@
1
+ import { Argv } from 'yargs';
2
+
3
+ import * as create from './create';
4
+
5
+ export { noop as handler } from '@appsemble/utils';
6
+
7
+ export const command = 'asset';
8
+ export const description = 'Commands related to app assets.';
9
+
10
+ export function builder(yargs: Argv): Argv {
11
+ return yargs.command(create).demandCommand(1);
12
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA+C;AAC/C,0DAA2B;AAC3B,oEAA2C;AAG3C,2CAA6D;AAOhD,QAAA,OAAO,GAAG,kBAAkB,CAAC;AAC7B,QAAA,WAAW,GAAG,mCAAmC,CAAC;AAE/D,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE;QAC/B,QAAQ,EAAE,mCAAmC;KAC9C,CAAC,CAAC;AACL,CAAC;AAJD,0BAIC;AAEM,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,EAAuB;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAE,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,mBAAM,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,mBAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;QAEzC,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;KAC1B;AACH,CAAC;AAVD,0BAUC"}
@@ -0,0 +1,32 @@
1
+ import { logger } from '@appsemble/node-utils';
2
+ import fg from 'fast-glob';
3
+ import normalizePath from 'normalize-path';
4
+ import { Argv } from 'yargs';
5
+
6
+ import { buildBlock, getBlockConfig } from '../../lib/block';
7
+ import { BaseArguments } from '../../types';
8
+
9
+ interface BuildBlockArguments extends BaseArguments {
10
+ paths: string[];
11
+ }
12
+
13
+ export const command = 'build <paths...>';
14
+ export const description = 'Build a block without publishing.';
15
+
16
+ export function builder(yargs: Argv): Argv<any> {
17
+ return yargs.positional('paths', {
18
+ describe: 'The paths to the blocks to build.',
19
+ });
20
+ }
21
+
22
+ export async function handler({ paths }: BuildBlockArguments): Promise<void> {
23
+ const normalizedPaths = paths.map((path) => normalizePath(path));
24
+ const directories = await fg(normalizedPaths, { absolute: true, onlyDirectories: true });
25
+ logger.info(`Building ${directories.length} Blocks`);
26
+ for (const dir of directories) {
27
+ logger.info('');
28
+ const config = await getBlockConfig(dir);
29
+
30
+ await buildBlock(config);
31
+ }
32
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-messages.js","sourceRoot":"","sources":["extract-messages.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA+C;AAC/C,0DAA2B;AAC3B,oEAA2C;AAG3C,2CAAuE;AAQ1D,QAAA,OAAO,GAAG,6BAA6B,CAAC;AACxC,QAAA,WAAW,GAAG,gCAAgC,CAAC;AAE5D,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,mDAAmD;KAC9D,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,2BAA2B;QACrC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACP,CAAC;AAVD,0BAUC;AAEM,KAAK,UAAU,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAuB;IACrE,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAE,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,mBAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC;IACrE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,mBAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;QACzC,mBAAM,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzC,MAAM,IAAA,4BAAoB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC3C;AACH,CAAC;AAZD,0BAYC"}
@@ -0,0 +1,41 @@
1
+ import { logger } from '@appsemble/node-utils';
2
+ import fg from 'fast-glob';
3
+ import normalizePath from 'normalize-path';
4
+ import { Argv } from 'yargs';
5
+
6
+ import { getBlockConfig, processBlockMessages } from '../../lib/block';
7
+ import { BaseArguments } from '../../types';
8
+
9
+ interface BuildBlockArguments extends BaseArguments {
10
+ paths: string[];
11
+ languages: string[];
12
+ }
13
+
14
+ export const command = 'extract-messages <paths...>';
15
+ export const description = 'Extract messages from a block.';
16
+
17
+ export function builder(yargs: Argv): Argv<any> {
18
+ return yargs
19
+ .positional('paths', {
20
+ describe: 'The paths to the blocks to extract messages from.',
21
+ })
22
+ .option('languages', {
23
+ type: 'array',
24
+ describe: 'The languages to extract.',
25
+ default: [],
26
+ });
27
+ }
28
+
29
+ export async function handler({ languages, paths }: BuildBlockArguments): Promise<void> {
30
+ const normalizedPaths = paths.map((path) => normalizePath(path));
31
+ const directories = await fg(normalizedPaths, { absolute: true, onlyDirectories: true });
32
+ const langs = [...new Set(['en', ...languages.map((language) => language.toLowerCase())])];
33
+ logger.info(`Extracting messages from ${directories.length} Blocks`);
34
+ for (const dir of directories) {
35
+ logger.info('');
36
+ const config = await getBlockConfig(dir);
37
+ logger.info(`Processing ${config.name}`);
38
+
39
+ await processBlockMessages(config, langs);
40
+ }
41
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+CAAiC;AACjC,oEAAsD;AACtD,mDAAqC;AAErC,0CAAmD;AAA1C,gGAAA,IAAI,OAAW;AAEX,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,WAAW,GAAG,6BAA6B,CAAC;AAEzD,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAFD,0BAEC"}
@@ -0,0 +1,14 @@
1
+ import { Argv } from 'yargs';
2
+
3
+ import * as build from './build';
4
+ import * as extractMessages from './extract-messages';
5
+ import * as publish from './publish';
6
+
7
+ export { noop as handler } from '@appsemble/utils';
8
+
9
+ export const command = 'block';
10
+ export const description = 'Commands related to blocks.';
11
+
12
+ export function builder(yargs: Argv): Argv {
13
+ return yargs.command(build).command(extractMessages).command(publish).demandCommand(1);
14
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["publish.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA+C;AAC/C,0DAA2B;AAC3B,oEAA2C;AAG3C,6DAAwD;AACxD,2CAA2E;AAS9D,QAAA,OAAO,GAAG,oBAAoB,CAAC;AAC/B,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAE9C,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,qCAAqC;KAChD,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,mEAAmE;QAC7E,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,QAAQ,EAAE,qEAAqE;QAC/E,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACP,CAAC;AAfD,0BAeC;AAEM,KAAK,UAAU,OAAO,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,MAAM,GACgB;IACtB,MAAM,IAAA,6BAAY,EAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAE9D,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAE,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,mBAAM,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,mBAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,KAAK,EAAE;YACT,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;SAC1B;QAED,MAAM,IAAA,oBAAY,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KAC5C;AACH,CAAC;AAtBD,0BAsBC"}
@@ -0,0 +1,58 @@
1
+ import { logger } from '@appsemble/node-utils';
2
+ import fg from 'fast-glob';
3
+ import normalizePath from 'normalize-path';
4
+ import { Argv } from 'yargs';
5
+
6
+ import { authenticate } from '../../lib/authentication';
7
+ import { buildBlock, getBlockConfig, publishBlock } from '../../lib/block';
8
+ import { BaseArguments } from '../../types';
9
+
10
+ interface PublishBlockArguments extends BaseArguments {
11
+ paths: string[];
12
+ build: boolean;
13
+ ignoreConflict: boolean;
14
+ }
15
+
16
+ export const command = 'publish <paths...>';
17
+ export const description = 'Publish a block.';
18
+
19
+ export function builder(yargs: Argv): Argv<any> {
20
+ return yargs
21
+ .positional('paths', {
22
+ describe: 'The paths to the blocks to publish.',
23
+ })
24
+ .option('build', {
25
+ alias: 'b',
26
+ describe: 'If specified, builds the block with webpack before publishing it.',
27
+ type: 'boolean',
28
+ default: true,
29
+ })
30
+ .option('ignore-conflict', {
31
+ describe: 'If specified, conflicts with an existing block version are ignored.',
32
+ type: 'boolean',
33
+ });
34
+ }
35
+
36
+ export async function handler({
37
+ build,
38
+ clientCredentials,
39
+ ignoreConflict,
40
+ paths,
41
+ remote,
42
+ }: PublishBlockArguments): Promise<void> {
43
+ await authenticate(remote, 'blocks:write', clientCredentials);
44
+
45
+ const normalizedPaths = paths.map((path) => normalizePath(path));
46
+ const directories = await fg(normalizedPaths, { absolute: true, onlyDirectories: true });
47
+ logger.info(`Publishing ${directories.length} Blocks`);
48
+ for (const dir of directories) {
49
+ logger.info('');
50
+ const config = await getBlockConfig(dir);
51
+
52
+ if (build) {
53
+ await buildBlock(config);
54
+ }
55
+
56
+ await publishBlock(config, ignoreConflict);
57
+ }
58
+ }
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanupResources.js","sourceRoot":"","sources":["cleanupResources.ts"],"names":[],"mappings":";;;AAEA,sDAAmD;AAGtC,QAAA,OAAO,GAAG,mBAAmB,CAAC;AAC9B,QAAA,WAAW,GAAG,kDAAkD,CAAC;AAE9E,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,4FAA4F;KACnG,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,yCAAyC;QAC/C,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;KAChD,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;KAChD,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,+CAA+C;QACrD,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;KAC5C,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,IAAI,EAAE,wHAAwH;QAC9H,SAAS,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,CAAC;KACpF,CAAC,CAAC;AACP,CAAC;AA9BD,0BA8BC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAmB;IAC/C,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,2BAAY,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACxF,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAJD,0BAIC"}
@@ -0,0 +1,45 @@
1
+ import { Argv } from 'yargs';
2
+
3
+ import { serverImport } from '../lib/serverImport';
4
+ import { BaseArguments } from '../types';
5
+
6
+ export const command = 'cleanup-resources';
7
+ export const description = 'Deletes all expired resources from the database.';
8
+
9
+ export function builder(yargs: Argv): Argv<any> {
10
+ return yargs
11
+ .option('database-host', {
12
+ desc: 'The host of the database to connect to. This defaults to the connected database container.',
13
+ })
14
+ .option('database-port', {
15
+ desc: 'The port of the database to connect to.',
16
+ type: 'number',
17
+ default: 5432,
18
+ })
19
+ .option('database-ssl', {
20
+ desc: 'Use SSL to connect to the database.',
21
+ type: 'boolean',
22
+ })
23
+ .option('database-name', {
24
+ desc: 'The name of the database to connect to.',
25
+ implies: ['database-user', 'database-password'],
26
+ })
27
+ .option('database-user', {
28
+ desc: 'The user to use to login to the database.',
29
+ implies: ['database-name', 'database-password'],
30
+ })
31
+ .option('database-password', {
32
+ desc: 'The password to use to login to the database.',
33
+ implies: ['database-name', 'database-user'],
34
+ })
35
+ .option('database-url', {
36
+ desc: 'A connection string for the database to connect to. This is an alternative to the separate database related variables.',
37
+ conflicts: ['database-host', 'database-name', 'database-user', 'database-password'],
38
+ });
39
+ }
40
+
41
+ export async function handler(argv: BaseArguments): Promise<void> {
42
+ const { cleanupResources, setArgv } = await serverImport('setArgv', 'cleanupResources');
43
+ setArgv(argv);
44
+ return cleanupResources();
45
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["get.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAuC;AACvC,8DAAoC;AASvB,QAAA,OAAO,GAAG,WAAW,CAAC;AACtB,QAAA,WAAW,GAAG,0DAA0D,CAAC;AAEtF,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;QAC7B,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;AACL,CAAC;AAJD,0BAIC;AAEM,KAAK,UAAU,OAAO,CAAC,EAAE,GAAG,EAAsB;IACvD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAA,WAAG,EAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACvC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAE,WAAmC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;KACxE;AACH,CAAC;AAND,0BAMC"}
@@ -0,0 +1,26 @@
1
+ import { has } from '@appsemble/utils';
2
+ import readPkgUp from 'read-pkg-up';
3
+ import { Argv } from 'yargs';
4
+
5
+ import { BaseArguments, MonoRepoPackageJson } from '../../types';
6
+
7
+ interface ConfigGetArguments extends BaseArguments {
8
+ key: string;
9
+ }
10
+
11
+ export const command = 'get <key>';
12
+ export const description = 'Get an Appsemble configuration option from package.json.';
13
+
14
+ export function builder(yargs: Argv): Argv<any> {
15
+ return yargs.positional('key', {
16
+ describe: 'The key whose value to get',
17
+ });
18
+ }
19
+
20
+ export async function handler({ key }: ConfigGetArguments): Promise<void> {
21
+ const { packageJson } = await readPkgUp({ normalize: false });
22
+ if (has(packageJson, 'appsembleServer')) {
23
+ // eslint-disable-next-line no-console
24
+ console.log((packageJson as MonoRepoPackageJson).appsembleServer[key]);
25
+ }
26
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAA6B;AAC7B,2CAA6B;AAE7B,0CAAmD;AAA1C,gGAAA,IAAI,OAAW;AAEX,QAAA,OAAO,GAAG,QAAQ,CAAC;AACnB,QAAA,WAAW,GAAG,2CAA2C,CAAC;AAEvE,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAFD,0BAEC"}
@@ -0,0 +1,13 @@
1
+ import { Argv } from 'yargs';
2
+
3
+ import * as get from './get';
4
+ import * as set from './set';
5
+
6
+ export { noop as handler } from '@appsemble/utils';
7
+
8
+ export const command = 'config';
9
+ export const description = 'Commands related to local configurations.';
10
+
11
+ export function builder(yargs: Argv): Argv {
12
+ return yargs.command(get).command(set).demandCommand(1);
13
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["set.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAE/B,sDAA0D;AAC1D,4CAAuC;AACvC,8DAAoC;AAUvB,QAAA,OAAO,GAAG,mBAAmB,CAAC;AAC9B,QAAA,WAAW,GAAG,wDAAwD,CAAC;AAEpF,SAAgB,OAAO,CAAC,KAAW;IACjC,OAAO,KAAK;SACT,UAAU,CAAC,KAAK,EAAE;QACjB,QAAQ,EAAE,4BAA4B;KACvC,CAAC;SACD,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,CAAC;AACP,CAAC;AARD,0BAQC;AAEM,KAAK,UAAU,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAsB;IAC9D,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAA,WAAG,EAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACxC,WAAW,CAAC,eAAe,GAAG,EAAE,CAAC;KAClC;IACD,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5B;IAAC,MAAM;QACN,MAAM,GAAG,KAAK,CAAC;KAChB;IACA,WAAmC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACnE,MAAM,IAAA,sBAAS,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,mBAAM,CAAC,IAAI,CACT,8BAA8B,GAAG,OAAO,IAAA,cAAO,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CACvF,CAAC;AACJ,CAAC;AAhBD,0BAgBC"}
@@ -0,0 +1,44 @@
1
+ import { inspect } from 'util';
2
+
3
+ import { logger, writeData } from '@appsemble/node-utils';
4
+ import { has } from '@appsemble/utils';
5
+ import readPkgUp from 'read-pkg-up';
6
+ import { Argv } from 'yargs';
7
+
8
+ import { BaseArguments, MonoRepoPackageJson } from '../../types';
9
+
10
+ interface ConfigSetArguments extends BaseArguments {
11
+ key: string;
12
+ value: string;
13
+ }
14
+
15
+ export const command = 'set <key> <value>';
16
+ export const description = 'Set an Appsemble configuration option in package.json.';
17
+
18
+ export function builder(yargs: Argv): Argv<any> {
19
+ return yargs
20
+ .positional('key', {
21
+ describe: 'The key whose value to set',
22
+ })
23
+ .positional('value', {
24
+ describe: 'The value to set',
25
+ });
26
+ }
27
+
28
+ export async function handler({ key, value }: ConfigSetArguments): Promise<void> {
29
+ const { packageJson, path } = await readPkgUp({ normalize: false });
30
+ if (!has(packageJson, 'appsembleServer')) {
31
+ packageJson.appsembleServer = {};
32
+ }
33
+ let parsed;
34
+ try {
35
+ parsed = JSON.parse(value);
36
+ } catch {
37
+ parsed = value;
38
+ }
39
+ (packageJson as MonoRepoPackageJson).appsembleServer[key] = parsed;
40
+ await writeData(path, packageJson);
41
+ logger.info(
42
+ `Set option appsembleServer.${key} to ${inspect(parsed, { colors: true })} in ${path}`,
43
+ );
44
+ }
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["login.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AAAhD,yGAAA,KAAK,OAAW;AAEZ,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,WAAW,GACtB,sFAAsF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { login as handler } from '../lib/authentication';
2
+
3
+ export const command = 'login';
4
+ export const description =
5
+ 'Save OAuth2 client credentials in the key chain for future sessions on this machine.';
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["logout.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAAjD,yGAAA,MAAM,OAAW;AAEb,QAAA,OAAO,GAAG,QAAQ,CAAC;AACnB,QAAA,WAAW,GACtB,oHAAoH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { remove as handler } from '../lib/authentication';
2
+
3
+ export const command = 'logout';
4
+ export const description =
5
+ 'Remove OAuth2 client credentials from the key chain using an interactive prompt. Beware this will not revoke them.';
File without changes