bkper 3.8.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +217 -183
  3. package/lib/auth/auth-page.d.ts +14 -0
  4. package/lib/auth/auth-page.d.ts.map +1 -0
  5. package/lib/auth/auth-page.js +110 -0
  6. package/lib/auth/auth-page.js.map +1 -0
  7. package/lib/auth/local-auth-service.d.ts.map +1 -1
  8. package/lib/auth/local-auth-service.js +135 -17
  9. package/lib/auth/local-auth-service.js.map +1 -1
  10. package/lib/bkper-factory.d.ts.map +1 -0
  11. package/lib/{mcp/bkper-factory.js → bkper-factory.js} +5 -2
  12. package/lib/bkper-factory.js.map +1 -0
  13. package/lib/cli.d.ts +1 -1
  14. package/lib/cli.d.ts.map +1 -1
  15. package/lib/cli.js +839 -67
  16. package/lib/cli.js.map +1 -1
  17. package/lib/commands/accounts/create.d.ts +10 -0
  18. package/lib/commands/accounts/create.d.ts.map +1 -0
  19. package/lib/commands/accounts/create.js +42 -0
  20. package/lib/commands/accounts/create.js.map +1 -0
  21. package/lib/commands/accounts/delete.d.ts +3 -0
  22. package/lib/commands/accounts/delete.d.ts.map +1 -0
  23. package/lib/commands/accounts/delete.js +22 -0
  24. package/lib/commands/accounts/delete.js.map +1 -0
  25. package/lib/commands/accounts/get.d.ts +3 -0
  26. package/lib/commands/accounts/get.d.ts.map +1 -0
  27. package/lib/commands/accounts/get.js +22 -0
  28. package/lib/commands/accounts/get.js.map +1 -0
  29. package/lib/commands/accounts/index.d.ts +6 -0
  30. package/lib/commands/accounts/index.d.ts.map +1 -0
  31. package/lib/commands/accounts/index.js +6 -0
  32. package/lib/commands/accounts/index.js.map +1 -0
  33. package/lib/commands/accounts/list.d.ts +3 -0
  34. package/lib/commands/accounts/list.d.ts.map +1 -0
  35. package/lib/commands/accounts/list.js +19 -0
  36. package/lib/commands/accounts/list.js.map +1 -0
  37. package/lib/commands/accounts/update.d.ts +9 -0
  38. package/lib/commands/accounts/update.d.ts.map +1 -0
  39. package/lib/commands/accounts/update.js +40 -0
  40. package/lib/commands/accounts/update.js.map +1 -0
  41. package/lib/commands/apps/build.d.ts +11 -0
  42. package/lib/commands/apps/build.d.ts.map +1 -0
  43. package/lib/commands/apps/build.js +144 -0
  44. package/lib/commands/apps/build.js.map +1 -0
  45. package/lib/commands/apps/bundler.d.ts +34 -0
  46. package/lib/commands/apps/bundler.d.ts.map +1 -0
  47. package/lib/commands/apps/bundler.js +112 -0
  48. package/lib/commands/apps/bundler.js.map +1 -0
  49. package/lib/commands/apps/config.d.ts +51 -0
  50. package/lib/commands/apps/config.d.ts.map +1 -0
  51. package/lib/commands/apps/config.js +146 -0
  52. package/lib/commands/apps/config.js.map +1 -0
  53. package/lib/commands/apps/deploy.d.ts +23 -0
  54. package/lib/commands/apps/deploy.d.ts.map +1 -0
  55. package/lib/commands/apps/deploy.js +344 -0
  56. package/lib/commands/apps/deploy.js.map +1 -0
  57. package/lib/commands/apps/dev.d.ts +28 -0
  58. package/lib/commands/apps/dev.d.ts.map +1 -0
  59. package/lib/commands/apps/dev.js +393 -0
  60. package/lib/commands/apps/dev.js.map +1 -0
  61. package/lib/commands/apps/index.d.ts +12 -0
  62. package/lib/commands/apps/index.d.ts.map +1 -0
  63. package/lib/commands/apps/index.js +24 -0
  64. package/lib/commands/apps/index.js.map +1 -0
  65. package/lib/commands/apps/init.d.ts +7 -0
  66. package/lib/commands/apps/init.d.ts.map +1 -0
  67. package/lib/commands/apps/init.js +249 -0
  68. package/lib/commands/apps/init.js.map +1 -0
  69. package/lib/commands/apps/install.d.ts +3 -0
  70. package/lib/commands/apps/install.d.ts.map +1 -0
  71. package/lib/commands/apps/install.js +18 -0
  72. package/lib/commands/apps/install.js.map +1 -0
  73. package/lib/commands/apps/list.d.ts +7 -0
  74. package/lib/commands/apps/list.d.ts.map +1 -0
  75. package/lib/commands/apps/list.js +23 -0
  76. package/lib/commands/apps/list.js.map +1 -0
  77. package/lib/commands/apps/secrets.d.ts +22 -0
  78. package/lib/commands/apps/secrets.d.ts.map +1 -0
  79. package/lib/commands/apps/secrets.js +209 -0
  80. package/lib/commands/apps/secrets.js.map +1 -0
  81. package/lib/commands/{apps.d.ts → apps/sync.d.ts} +8 -7
  82. package/lib/commands/apps/sync.d.ts.map +1 -0
  83. package/lib/commands/apps/sync.js +76 -0
  84. package/lib/commands/apps/sync.js.map +1 -0
  85. package/lib/commands/apps/types.d.ts +54 -0
  86. package/lib/commands/apps/types.d.ts.map +1 -0
  87. package/lib/commands/apps/types.js +2 -0
  88. package/lib/commands/apps/types.js.map +1 -0
  89. package/lib/commands/apps/uninstall.d.ts +3 -0
  90. package/lib/commands/apps/uninstall.d.ts.map +1 -0
  91. package/lib/commands/apps/uninstall.js +23 -0
  92. package/lib/commands/apps/uninstall.js.map +1 -0
  93. package/lib/commands/balances/get.d.ts +12 -0
  94. package/lib/commands/balances/get.d.ts.map +1 -0
  95. package/lib/commands/balances/get.js +32 -0
  96. package/lib/commands/balances/get.js.map +1 -0
  97. package/lib/commands/balances/index.d.ts +2 -0
  98. package/lib/commands/balances/index.d.ts.map +1 -0
  99. package/lib/commands/balances/index.js +2 -0
  100. package/lib/commands/balances/index.js.map +1 -0
  101. package/lib/commands/books/create.d.ts +12 -0
  102. package/lib/commands/books/create.d.ts.map +1 -0
  103. package/lib/commands/books/create.js +37 -0
  104. package/lib/commands/books/create.js.map +1 -0
  105. package/lib/commands/books/get.d.ts +3 -0
  106. package/lib/commands/books/get.d.ts.map +1 -0
  107. package/lib/commands/books/get.js +17 -0
  108. package/lib/commands/books/get.js.map +1 -0
  109. package/lib/commands/books/index.d.ts +5 -0
  110. package/lib/commands/books/index.d.ts.map +1 -0
  111. package/lib/commands/books/index.js +5 -0
  112. package/lib/commands/books/index.js.map +1 -0
  113. package/lib/commands/books/list.d.ts +3 -0
  114. package/lib/commands/books/list.d.ts.map +1 -0
  115. package/lib/commands/books/list.js +17 -0
  116. package/lib/commands/books/list.js.map +1 -0
  117. package/lib/commands/books/update.d.ts +14 -0
  118. package/lib/commands/books/update.d.ts.map +1 -0
  119. package/lib/commands/books/update.js +46 -0
  120. package/lib/commands/books/update.js.map +1 -0
  121. package/lib/commands/collections/add-book.d.ts +3 -0
  122. package/lib/commands/collections/add-book.d.ts.map +1 -0
  123. package/lib/commands/collections/add-book.js +27 -0
  124. package/lib/commands/collections/add-book.js.map +1 -0
  125. package/lib/commands/collections/create.d.ts +6 -0
  126. package/lib/commands/collections/create.d.ts.map +1 -0
  127. package/lib/commands/collections/create.js +19 -0
  128. package/lib/commands/collections/create.js.map +1 -0
  129. package/lib/commands/collections/delete.d.ts +3 -0
  130. package/lib/commands/collections/delete.d.ts.map +1 -0
  131. package/lib/commands/collections/delete.js +22 -0
  132. package/lib/commands/collections/delete.js.map +1 -0
  133. package/lib/commands/collections/get.d.ts +3 -0
  134. package/lib/commands/collections/get.d.ts.map +1 -0
  135. package/lib/commands/collections/get.js +22 -0
  136. package/lib/commands/collections/get.js.map +1 -0
  137. package/lib/commands/collections/index.d.ts +8 -0
  138. package/lib/commands/collections/index.d.ts.map +1 -0
  139. package/lib/commands/collections/index.js +8 -0
  140. package/lib/commands/collections/index.js.map +1 -0
  141. package/lib/commands/collections/list.d.ts +3 -0
  142. package/lib/commands/collections/list.d.ts.map +1 -0
  143. package/lib/commands/collections/list.js +18 -0
  144. package/lib/commands/collections/list.js.map +1 -0
  145. package/lib/commands/collections/remove-book.d.ts +3 -0
  146. package/lib/commands/collections/remove-book.d.ts.map +1 -0
  147. package/lib/commands/collections/remove-book.js +27 -0
  148. package/lib/commands/collections/remove-book.js.map +1 -0
  149. package/lib/commands/collections/update.d.ts +6 -0
  150. package/lib/commands/collections/update.d.ts.map +1 -0
  151. package/lib/commands/collections/update.js +24 -0
  152. package/lib/commands/collections/update.js.map +1 -0
  153. package/lib/commands/groups/create.d.ts +9 -0
  154. package/lib/commands/groups/create.d.ts.map +1 -0
  155. package/lib/commands/groups/create.js +40 -0
  156. package/lib/commands/groups/create.js.map +1 -0
  157. package/lib/commands/groups/delete.d.ts +3 -0
  158. package/lib/commands/groups/delete.d.ts.map +1 -0
  159. package/lib/commands/groups/delete.js +22 -0
  160. package/lib/commands/groups/delete.js.map +1 -0
  161. package/lib/commands/groups/get.d.ts +3 -0
  162. package/lib/commands/groups/get.d.ts.map +1 -0
  163. package/lib/commands/groups/get.js +22 -0
  164. package/lib/commands/groups/get.js.map +1 -0
  165. package/lib/commands/groups/index.d.ts +6 -0
  166. package/lib/commands/groups/index.d.ts.map +1 -0
  167. package/lib/commands/groups/index.js +6 -0
  168. package/lib/commands/groups/index.js.map +1 -0
  169. package/lib/commands/groups/list.d.ts +3 -0
  170. package/lib/commands/groups/list.d.ts.map +1 -0
  171. package/lib/commands/groups/list.js +19 -0
  172. package/lib/commands/groups/list.js.map +1 -0
  173. package/lib/commands/groups/update.d.ts +8 -0
  174. package/lib/commands/groups/update.d.ts.map +1 -0
  175. package/lib/commands/groups/update.js +38 -0
  176. package/lib/commands/groups/update.js.map +1 -0
  177. package/lib/commands/skills.d.ts +17 -0
  178. package/lib/commands/skills.d.ts.map +1 -0
  179. package/lib/commands/skills.js +248 -0
  180. package/lib/commands/skills.js.map +1 -0
  181. package/lib/commands/transactions/check.d.ts +3 -0
  182. package/lib/commands/transactions/check.d.ts.map +1 -0
  183. package/lib/commands/transactions/check.js +22 -0
  184. package/lib/commands/transactions/check.js.map +1 -0
  185. package/lib/commands/transactions/create.d.ts +13 -0
  186. package/lib/commands/transactions/create.d.ts.map +1 -0
  187. package/lib/commands/transactions/create.js +55 -0
  188. package/lib/commands/transactions/create.js.map +1 -0
  189. package/lib/commands/transactions/index.d.ts +8 -0
  190. package/lib/commands/transactions/index.d.ts.map +1 -0
  191. package/lib/commands/transactions/index.js +8 -0
  192. package/lib/commands/transactions/index.js.map +1 -0
  193. package/lib/commands/transactions/list.d.ts +14 -0
  194. package/lib/commands/transactions/list.d.ts.map +1 -0
  195. package/lib/commands/transactions/list.js +26 -0
  196. package/lib/commands/transactions/list.js.map +1 -0
  197. package/lib/commands/transactions/merge.d.ts +8 -0
  198. package/lib/commands/transactions/merge.d.ts.map +1 -0
  199. package/lib/commands/transactions/merge.js +44 -0
  200. package/lib/commands/transactions/merge.js.map +1 -0
  201. package/lib/commands/transactions/post.d.ts +3 -0
  202. package/lib/commands/transactions/post.d.ts.map +1 -0
  203. package/lib/commands/transactions/post.js +22 -0
  204. package/lib/commands/transactions/post.js.map +1 -0
  205. package/lib/commands/transactions/trash.d.ts +3 -0
  206. package/lib/commands/transactions/trash.d.ts.map +1 -0
  207. package/lib/commands/transactions/trash.js +22 -0
  208. package/lib/commands/transactions/trash.js.map +1 -0
  209. package/lib/commands/transactions/update.d.ts +12 -0
  210. package/lib/commands/transactions/update.d.ts.map +1 -0
  211. package/lib/commands/transactions/update.js +53 -0
  212. package/lib/commands/transactions/update.js.map +1 -0
  213. package/lib/dev/auth-middleware.d.ts +18 -0
  214. package/lib/dev/auth-middleware.d.ts.map +1 -0
  215. package/lib/dev/auth-middleware.js +113 -0
  216. package/lib/dev/auth-middleware.js.map +1 -0
  217. package/lib/dev/cleanup.d.ts +10 -0
  218. package/lib/dev/cleanup.d.ts.map +1 -0
  219. package/lib/dev/cleanup.js +36 -0
  220. package/lib/dev/cleanup.js.map +1 -0
  221. package/lib/dev/cloudflared/constants.d.ts +35 -0
  222. package/lib/dev/cloudflared/constants.d.ts.map +1 -0
  223. package/lib/dev/cloudflared/constants.js +48 -0
  224. package/lib/dev/cloudflared/constants.js.map +1 -0
  225. package/lib/dev/cloudflared/index.d.ts +11 -0
  226. package/lib/dev/cloudflared/index.d.ts.map +1 -0
  227. package/lib/dev/cloudflared/index.js +10 -0
  228. package/lib/dev/cloudflared/index.js.map +1 -0
  229. package/lib/dev/cloudflared/install.d.ts +15 -0
  230. package/lib/dev/cloudflared/install.d.ts.map +1 -0
  231. package/lib/dev/cloudflared/install.js +140 -0
  232. package/lib/dev/cloudflared/install.js.map +1 -0
  233. package/lib/dev/cloudflared/tunnel.d.ts +64 -0
  234. package/lib/dev/cloudflared/tunnel.d.ts.map +1 -0
  235. package/lib/dev/cloudflared/tunnel.js +109 -0
  236. package/lib/dev/cloudflared/tunnel.js.map +1 -0
  237. package/lib/dev/esbuild.d.ts +28 -0
  238. package/lib/dev/esbuild.d.ts.map +1 -0
  239. package/lib/dev/esbuild.js +83 -0
  240. package/lib/dev/esbuild.js.map +1 -0
  241. package/lib/dev/logger.d.ts +51 -0
  242. package/lib/dev/logger.d.ts.map +1 -0
  243. package/lib/dev/logger.js +102 -0
  244. package/lib/dev/logger.js.map +1 -0
  245. package/lib/dev/miniflare.d.ts +32 -0
  246. package/lib/dev/miniflare.d.ts.map +1 -0
  247. package/lib/dev/miniflare.js +111 -0
  248. package/lib/dev/miniflare.js.map +1 -0
  249. package/lib/dev/preflight.d.ts +7 -0
  250. package/lib/dev/preflight.d.ts.map +1 -0
  251. package/lib/dev/preflight.js +61 -0
  252. package/lib/dev/preflight.js.map +1 -0
  253. package/lib/dev/shared.d.ts +7 -0
  254. package/lib/dev/shared.d.ts.map +1 -0
  255. package/lib/dev/shared.js +99 -0
  256. package/lib/dev/shared.js.map +1 -0
  257. package/lib/dev/tunnel.d.ts +31 -0
  258. package/lib/dev/tunnel.d.ts.map +1 -0
  259. package/lib/dev/tunnel.js +110 -0
  260. package/lib/dev/tunnel.js.map +1 -0
  261. package/lib/dev/types.d.ts +53 -0
  262. package/lib/dev/types.d.ts.map +1 -0
  263. package/lib/dev/types.js +223 -0
  264. package/lib/dev/types.js.map +1 -0
  265. package/lib/dev/vite.d.ts +50 -0
  266. package/lib/dev/vite.d.ts.map +1 -0
  267. package/lib/dev/vite.js +114 -0
  268. package/lib/dev/vite.js.map +1 -0
  269. package/lib/dev/webhook-dev.d.ts +9 -0
  270. package/lib/dev/webhook-dev.d.ts.map +1 -0
  271. package/lib/dev/webhook-dev.js +28 -0
  272. package/lib/dev/webhook-dev.js.map +1 -0
  273. package/lib/domain/transaction/merge-operation.d.ts.map +1 -0
  274. package/lib/{mcp/domain → domain}/transaction/merge-operation.js +10 -11
  275. package/lib/domain/transaction/merge-operation.js.map +1 -0
  276. package/lib/domain/transaction/merge-types.d.ts.map +1 -0
  277. package/lib/domain/transaction/merge-types.js.map +1 -0
  278. package/lib/index.d.ts.map +1 -1
  279. package/lib/index.js.map +1 -1
  280. package/lib/platform/client.d.ts +37 -0
  281. package/lib/platform/client.d.ts.map +1 -0
  282. package/lib/platform/client.js +37 -0
  283. package/lib/platform/client.js.map +1 -0
  284. package/lib/render/index.d.ts +3 -0
  285. package/lib/render/index.d.ts.map +1 -0
  286. package/lib/render/index.js +3 -0
  287. package/lib/render/index.js.map +1 -0
  288. package/lib/render/output.d.ts +15 -0
  289. package/lib/render/output.d.ts.map +1 -0
  290. package/lib/render/output.js +30 -0
  291. package/lib/render/output.js.map +1 -0
  292. package/lib/render/table-formatter.d.ts +34 -0
  293. package/lib/render/table-formatter.d.ts.map +1 -0
  294. package/lib/render/table-formatter.js +221 -0
  295. package/lib/render/table-formatter.js.map +1 -0
  296. package/lib/utils/properties.d.ts +12 -0
  297. package/lib/utils/properties.d.ts.map +1 -0
  298. package/lib/utils/properties.js +23 -0
  299. package/lib/utils/properties.js.map +1 -0
  300. package/package.json +23 -22
  301. package/lib/auth/keys.json +0 -12
  302. package/lib/commands/apps.d.ts.map +0 -1
  303. package/lib/commands/apps.js +0 -93
  304. package/lib/commands/apps.js.map +0 -1
  305. package/lib/mcp/bkper-factory.d.ts.map +0 -1
  306. package/lib/mcp/bkper-factory.js.map +0 -1
  307. package/lib/mcp/domain/transaction/merge-operation.d.ts.map +0 -1
  308. package/lib/mcp/domain/transaction/merge-operation.js.map +0 -1
  309. package/lib/mcp/domain/transaction/merge-types.d.ts.map +0 -1
  310. package/lib/mcp/domain/transaction/merge-types.js.map +0 -1
  311. package/lib/mcp/server.d.ts +0 -13
  312. package/lib/mcp/server.d.ts.map +0 -1
  313. package/lib/mcp/server.js +0 -161
  314. package/lib/mcp/server.js.map +0 -1
  315. package/lib/mcp/system-prompt.md +0 -192
  316. package/lib/mcp/tools/create_transactions.d.ts +0 -59
  317. package/lib/mcp/tools/create_transactions.d.ts.map +0 -1
  318. package/lib/mcp/tools/create_transactions.js +0 -163
  319. package/lib/mcp/tools/create_transactions.js.map +0 -1
  320. package/lib/mcp/tools/get_balances.d.ts +0 -26
  321. package/lib/mcp/tools/get_balances.d.ts.map +0 -1
  322. package/lib/mcp/tools/get_balances.js +0 -106
  323. package/lib/mcp/tools/get_balances.js.map +0 -1
  324. package/lib/mcp/tools/get_book.d.ts +0 -21
  325. package/lib/mcp/tools/get_book.d.ts.map +0 -1
  326. package/lib/mcp/tools/get_book.js +0 -126
  327. package/lib/mcp/tools/get_book.js.map +0 -1
  328. package/lib/mcp/tools/list_books.d.ts +0 -21
  329. package/lib/mcp/tools/list_books.d.ts.map +0 -1
  330. package/lib/mcp/tools/list_books.js +0 -67
  331. package/lib/mcp/tools/list_books.js.map +0 -1
  332. package/lib/mcp/tools/list_transactions.d.ts +0 -38
  333. package/lib/mcp/tools/list_transactions.d.ts.map +0 -1
  334. package/lib/mcp/tools/list_transactions.js +0 -109
  335. package/lib/mcp/tools/list_transactions.js.map +0 -1
  336. package/lib/mcp/tools/merge_transactions.d.ts +0 -40
  337. package/lib/mcp/tools/merge_transactions.d.ts.map +0 -1
  338. package/lib/mcp/tools/merge_transactions.js +0 -120
  339. package/lib/mcp/tools/merge_transactions.js.map +0 -1
  340. /package/lib/{mcp/bkper-factory.d.ts → bkper-factory.d.ts} +0 -0
  341. /package/lib/{mcp/domain → domain}/transaction/merge-operation.d.ts +0 -0
  342. /package/lib/{mcp/domain → domain}/transaction/merge-types.d.ts +0 -0
  343. /package/lib/{mcp/domain → domain}/transaction/merge-types.js +0 -0
@@ -0,0 +1,344 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as readline from 'readline';
11
+ import fs from 'fs';
12
+ import path from 'path';
13
+ import { getOAuthToken, isLoggedIn } from '../../auth/local-auth-service.js';
14
+ import { createPlatformClient } from '../../platform/client.js';
15
+ import { createAssetManifest, readAssetFiles } from './bundler.js';
16
+ import { handleError, loadAppConfig, loadSourceDeploymentConfig } from './config.js';
17
+ import { build } from './build.js';
18
+ // =============================================================================
19
+ // Deploy
20
+ // =============================================================================
21
+ /**
22
+ * Deploys the app to the Bkper Platform.
23
+ *
24
+ * @param options Deploy options (dev, events)
25
+ */
26
+ export function deployApp() {
27
+ return __awaiter(this, arguments, void 0, function* (options = {}) {
28
+ // 1. Check if logged in
29
+ if (!isLoggedIn()) {
30
+ console.error('Error: You must be logged in. Run: bkper login');
31
+ process.exit(1);
32
+ }
33
+ // 2. Load bkper.yaml/json to get app ID
34
+ let config;
35
+ try {
36
+ config = loadAppConfig();
37
+ }
38
+ catch (_a) {
39
+ console.error('Error: bkper.yaml or bkper.json not found');
40
+ process.exit(1);
41
+ }
42
+ if (!(config === null || config === void 0 ? void 0 : config.id)) {
43
+ console.error('Error: App config is missing "id" field');
44
+ process.exit(1);
45
+ }
46
+ // Determine deploy type early
47
+ const type = options.events ? 'events' : 'web';
48
+ // 4. Load deployment configuration from bkper.yaml
49
+ const deploymentConfig = loadSourceDeploymentConfig();
50
+ if (!deploymentConfig) {
51
+ console.error('Error: No deployment configuration found in bkper.yaml');
52
+ console.error('Expected deployment section with web.main/events.main entry points');
53
+ process.exit(1);
54
+ }
55
+ // 5. Build app before deploy
56
+ try {
57
+ yield build();
58
+ }
59
+ catch (error) {
60
+ console.error(`Build failed: ${error instanceof Error ? error.message : String(error)}`);
61
+ process.exit(1);
62
+ }
63
+ // 6. Resolve build outputs
64
+ let resolvedPaths;
65
+ try {
66
+ resolvedPaths = resolveSourceDeployPaths(type, deploymentConfig);
67
+ }
68
+ catch (error) {
69
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
70
+ process.exit(1);
71
+ }
72
+ const { bundleDir, bundlePath, assetsDir } = resolvedPaths;
73
+ // 7. Validate bundle outputs exist
74
+ if (!fs.existsSync(bundleDir)) {
75
+ console.error(`Error: Bundle directory not found: ${bundleDir}`);
76
+ console.error('Please ensure the build completed successfully');
77
+ process.exit(1);
78
+ }
79
+ if (!fs.existsSync(bundlePath)) {
80
+ console.error(`Error: Bundle file not found: ${bundlePath}`);
81
+ console.error('Expected index.js in the bundle directory');
82
+ process.exit(1);
83
+ }
84
+ console.log(`Reading bundle from ${bundlePath}...`);
85
+ const bundle = fs.readFileSync(bundlePath);
86
+ const bundleSizeKB = (bundle.length / 1024).toFixed(2);
87
+ console.log(`Bundle size: ${bundleSizeKB} KB`);
88
+ // 8. Validate and create asset manifest if configured (only for web handler)
89
+ let assetManifest;
90
+ let assetFiles;
91
+ if (type === 'web' && assetsDir) {
92
+ if (!fs.existsSync(assetsDir)) {
93
+ console.error(`Error: Assets directory not found: ${assetsDir}`);
94
+ console.error('Please ensure assets are built or update bkper.yaml');
95
+ process.exit(1);
96
+ }
97
+ console.log(`Creating asset manifest from ${assetsDir}...`);
98
+ try {
99
+ assetManifest = yield createAssetManifest(assetsDir);
100
+ const assetCount = Object.keys(assetManifest).length;
101
+ console.log(` ${assetCount} assets found`);
102
+ // Read asset file contents for upload
103
+ console.log(`Reading asset file contents...`);
104
+ assetFiles = yield readAssetFiles(assetsDir);
105
+ const totalSizeMB = Object.values(assetFiles).reduce((sum, base64) => {
106
+ return sum + base64.length * 0.75; // base64 is ~1.33x original size
107
+ }, 0) /
108
+ 1024 /
109
+ 1024;
110
+ console.log(` Total size: ${totalSizeMB.toFixed(2)} MB`);
111
+ }
112
+ catch (err) {
113
+ console.error('Error processing assets:', err instanceof Error ? err.message : err);
114
+ process.exit(1);
115
+ }
116
+ }
117
+ // 9. Get OAuth token and create client
118
+ const token = yield getOAuthToken();
119
+ const client = createPlatformClient(token);
120
+ // 10. Call Platform API
121
+ const env = options.preview ? 'preview' : 'production';
122
+ console.log(`Deploying ${type} handler to ${env}...`);
123
+ // Build query params, mapping services to bindings for the API
124
+ const bindings = (deploymentConfig === null || deploymentConfig === void 0 ? void 0 : deploymentConfig.services)
125
+ ? { kv: deploymentConfig.services.filter(s => s === 'KV') }
126
+ : undefined;
127
+ const queryParams = { env, type };
128
+ if ((bindings === null || bindings === void 0 ? void 0 : bindings.kv) && bindings.kv.length > 0) {
129
+ queryParams.bindings = JSON.stringify(bindings);
130
+ }
131
+ // Create multipart form data
132
+ const formData = new FormData();
133
+ formData.append('bundle', new Blob([bundle], { type: 'application/javascript+module' }));
134
+ if (assetManifest) {
135
+ formData.append('assetManifest', JSON.stringify(assetManifest));
136
+ }
137
+ if (assetFiles) {
138
+ formData.append('assetFiles', JSON.stringify(assetFiles));
139
+ }
140
+ // Note: Do NOT set Content-Type header manually - fetch will set it automatically
141
+ // with the proper boundary when using FormData
142
+ const { data, error } = yield client.POST('/api/apps/{appId}/deploy', {
143
+ params: {
144
+ path: { appId: config.id },
145
+ query: queryParams,
146
+ },
147
+ body: formData,
148
+ bodySerializer: body => body,
149
+ });
150
+ if (error) {
151
+ handleError(error);
152
+ }
153
+ if (!data) {
154
+ console.error('Error: Unexpected empty response');
155
+ process.exit(1);
156
+ }
157
+ console.log(`\nDeployed ${type} handler to ${env}`);
158
+ console.log(` URL: ${data.url}${type === 'events' ? '/events' : ''}`);
159
+ console.log(` Script: ${data.scriptName}`);
160
+ });
161
+ }
162
+ export function resolveSourceDeployPaths(type, deploymentConfig) {
163
+ var _a, _b;
164
+ if (type === 'web') {
165
+ if (!((_a = deploymentConfig.web) === null || _a === void 0 ? void 0 : _a.main)) {
166
+ throw new Error('No web handler configured');
167
+ }
168
+ const bundleDir = path.resolve('dist/web/server');
169
+ const bundlePath = path.join(bundleDir, 'index.js');
170
+ const assetsDir = deploymentConfig.web.client ? path.resolve('dist/web/client') : undefined;
171
+ return { bundleDir, bundlePath, assetsDir };
172
+ }
173
+ if (!((_b = deploymentConfig.events) === null || _b === void 0 ? void 0 : _b.main)) {
174
+ throw new Error('No events handler configured');
175
+ }
176
+ const bundleDir = path.resolve('dist/events');
177
+ const bundlePath = path.join(bundleDir, 'index.js');
178
+ return { bundleDir, bundlePath };
179
+ }
180
+ // =============================================================================
181
+ // Undeploy
182
+ // =============================================================================
183
+ /**
184
+ * Prompts user to confirm data deletion by typing the app ID.
185
+ *
186
+ * @param appId - The app ID that must be typed to confirm
187
+ * @returns true if confirmed, false otherwise
188
+ */
189
+ function confirmDeletion(appId) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const rl = readline.createInterface({
192
+ input: process.stdin,
193
+ output: process.stdout,
194
+ });
195
+ return new Promise(resolve => {
196
+ rl.question(`\nWARNING: This will permanently delete all data for '${appId}'.\nType the app name to confirm: `, answer => {
197
+ rl.close();
198
+ resolve(answer === appId);
199
+ });
200
+ });
201
+ });
202
+ }
203
+ /**
204
+ * Removes the app from the Bkper Platform.
205
+ *
206
+ * @param options Undeploy options (dev, events, deleteData)
207
+ */
208
+ export function undeployApp() {
209
+ return __awaiter(this, arguments, void 0, function* (options = {}) {
210
+ // 1. Check if logged in
211
+ if (!isLoggedIn()) {
212
+ console.error('Error: You must be logged in. Run: bkper login');
213
+ process.exit(1);
214
+ }
215
+ // 2. Load bkper.yaml/json to get app ID
216
+ let config;
217
+ try {
218
+ config = loadAppConfig();
219
+ }
220
+ catch (_a) {
221
+ console.error('Error: bkper.yaml or bkper.json not found');
222
+ process.exit(1);
223
+ }
224
+ if (!(config === null || config === void 0 ? void 0 : config.id)) {
225
+ console.error('Error: App config is missing "id" field');
226
+ process.exit(1);
227
+ }
228
+ // 3. Handle --delete-data confirmation
229
+ if (options.deleteData && !options.force) {
230
+ const confirmed = yield confirmDeletion(config.id);
231
+ if (!confirmed) {
232
+ console.log('Data deletion cancelled.');
233
+ return;
234
+ }
235
+ }
236
+ // 4. Get OAuth token and create client
237
+ const token = yield getOAuthToken();
238
+ const client = createPlatformClient(token);
239
+ // 5. Call Platform API
240
+ const env = options.preview ? 'preview' : 'production';
241
+ const type = options.events ? 'events' : 'web';
242
+ console.log(`Removing ${type} handler from ${env}...`);
243
+ // Build query params
244
+ const queryParams = {
245
+ env,
246
+ type,
247
+ };
248
+ if (options.deleteData) {
249
+ queryParams.deleteData = true;
250
+ }
251
+ const { data, error } = yield client.DELETE('/api/apps/{appId}', {
252
+ params: {
253
+ path: { appId: config.id },
254
+ query: queryParams,
255
+ },
256
+ });
257
+ if (error) {
258
+ handleError(error);
259
+ }
260
+ if (!data) {
261
+ console.error('Error: Unexpected empty response');
262
+ process.exit(1);
263
+ }
264
+ console.log(`\nRemoved ${type} handler from ${env}`);
265
+ if (options.deleteData) {
266
+ console.log('All associated data has been permanently deleted.');
267
+ }
268
+ });
269
+ }
270
+ // =============================================================================
271
+ // Status
272
+ // =============================================================================
273
+ /**
274
+ * Shows the deployment status for the app.
275
+ */
276
+ export function statusApp() {
277
+ return __awaiter(this, void 0, void 0, function* () {
278
+ var _a, _b, _c, _d;
279
+ // 1. Check if logged in
280
+ if (!isLoggedIn()) {
281
+ console.error('Error: You must be logged in. Run: bkper login');
282
+ process.exit(1);
283
+ }
284
+ // 2. Load bkper.yaml/json to get app ID
285
+ let config;
286
+ try {
287
+ config = loadAppConfig();
288
+ }
289
+ catch (_e) {
290
+ console.error('Error: bkper.yaml or bkper.json not found');
291
+ process.exit(1);
292
+ }
293
+ if (!(config === null || config === void 0 ? void 0 : config.id)) {
294
+ console.error('Error: App config is missing "id" field');
295
+ process.exit(1);
296
+ }
297
+ // 3. Get OAuth token and create client
298
+ const token = yield getOAuthToken();
299
+ const client = createPlatformClient(token);
300
+ // 4. Call Platform API
301
+ console.log(`Fetching status for ${config.id}...`);
302
+ const { data, error } = yield client.GET('/api/apps/{appId}', {
303
+ params: {
304
+ path: { appId: config.id },
305
+ },
306
+ });
307
+ if (error) {
308
+ handleError(error);
309
+ }
310
+ if (!data) {
311
+ console.error('Error: Unexpected empty response');
312
+ process.exit(1);
313
+ }
314
+ // 5. Display status
315
+ console.log(`\nApp: ${data.appId}\n`);
316
+ console.log('Production:');
317
+ if ((_a = data.prod.web) === null || _a === void 0 ? void 0 : _a.deployed) {
318
+ console.log(` Web: ${data.prod.web.url} (deployed ${data.prod.web.updatedAt})`);
319
+ }
320
+ else {
321
+ console.log(' Web: (not deployed)');
322
+ }
323
+ if ((_b = data.prod.events) === null || _b === void 0 ? void 0 : _b.deployed) {
324
+ console.log(` Events: ${data.prod.events.url} (deployed ${data.prod.events.updatedAt})`);
325
+ }
326
+ else {
327
+ console.log(' Events: (not deployed)');
328
+ }
329
+ console.log('\nPreview:');
330
+ if ((_c = data.preview.web) === null || _c === void 0 ? void 0 : _c.deployed) {
331
+ console.log(` Web: ${data.preview.web.url} (deployed ${data.preview.web.updatedAt})`);
332
+ }
333
+ else {
334
+ console.log(' Web: (not deployed)');
335
+ }
336
+ if ((_d = data.preview.events) === null || _d === void 0 ? void 0 : _d.deployed) {
337
+ console.log(` Events: ${data.preview.events.url} (deployed ${data.preview.events.updatedAt})`);
338
+ }
339
+ else {
340
+ console.log(' Events: (not deployed)');
341
+ }
342
+ });
343
+ }
344
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/apps/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Options for the dev command
3
+ */
4
+ export interface DevOptions {
5
+ /** Client dev server port (default: 5173) */
6
+ clientPort?: number;
7
+ /** Server simulation port (default: 8787) */
8
+ serverPort?: number;
9
+ /** Events handler port (default: 8791) */
10
+ eventsPort?: number;
11
+ /** Run only the web handler */
12
+ web?: boolean;
13
+ /** Run only the events handler */
14
+ events?: boolean;
15
+ /** Open browser on startup (default: true) */
16
+ open?: boolean;
17
+ }
18
+ /**
19
+ * Starts the full development environment.
20
+ * Auto-detects what's configured and runs it:
21
+ *
22
+ * - If web is configured: starts Vite + Miniflare
23
+ * - If events is configured: runs locally with tunnel
24
+ *
25
+ * @param options - Dev command options
26
+ */
27
+ export declare function dev(options?: DevOptions): Promise<void>;
28
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/dev.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8XjE"}