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
@@ -7,17 +7,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { authenticate } from '@google-cloud/local-auth';
11
10
  import fs from 'fs';
12
- import { OAuth2Client } from "google-auth-library";
11
+ import http from 'http';
12
+ import { OAuth2Client, CodeChallengeMethod } from 'google-auth-library';
13
13
  import os from 'os';
14
- import { createRequire } from "module";
15
- import { fileURLToPath } from 'url';
16
- import path from 'path';
17
- const require = createRequire(import.meta.url);
18
- const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
19
- const __dirname = path.dirname(__filename); // get the name of the directory
20
- const keys = require(`${__dirname}/keys.json`);
14
+ import crypto from 'crypto';
15
+ import { generateAuthPage } from './auth-page.js';
16
+ /**
17
+ * OAuth configuration for Bkper CLI.
18
+ * Uses PKCE (Proof Key for Code Exchange) for enhanced security.
19
+ *
20
+ * Note: Google requires client_secret even for desktop apps with PKCE.
21
+ * For desktop/CLI apps, Google considers the client_secret "not confidential"
22
+ * as it can be extracted from distributed applications. The real security
23
+ * comes from PKCE, user consent, and secure token storage.
24
+ *
25
+ * See: https://developers.google.com/identity/protocols/oauth2/native-app
26
+ */
27
+ const OAUTH_CONFIG = {
28
+ clientId: '927657669669-ig60i5ic9i9esdc8q59plardm11fuubc.apps.googleusercontent.com',
29
+ clientSecret: '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',
30
+ redirectUri: 'http://localhost:3000/oauth2callback',
31
+ };
21
32
  let storedCredentials;
22
33
  const oldCredentialsPath = `${os.homedir()}/.bkper-credentials.json`;
23
34
  const configDir = `${os.homedir()}/.config/bkper`;
@@ -38,7 +49,7 @@ if (!fs.existsSync(storedCredentialsPath) && fs.existsSync(oldCredentialsPath))
38
49
  }
39
50
  }
40
51
  try {
41
- let credentialsJson = fs.readFileSync(storedCredentialsPath, 'utf8');
52
+ const credentialsJson = fs.readFileSync(storedCredentialsPath, 'utf8');
42
53
  storedCredentials = JSON.parse(credentialsJson);
43
54
  }
44
55
  catch (err) {
@@ -61,6 +72,112 @@ export function logout() {
61
72
  export function isLoggedIn() {
62
73
  return storedCredentials != null;
63
74
  }
75
+ /**
76
+ * Generates PKCE code verifier and code challenge
77
+ * PKCE (Proof Key for Code Exchange) eliminates the need for client_secret
78
+ * in public clients like CLI applications.
79
+ * @returns Object containing codeVerifier and codeChallenge
80
+ */
81
+ function generatePKCECodes() {
82
+ // Generate code_verifier: 128 bytes of random data, base64url encoded
83
+ const codeVerifier = crypto.randomBytes(96).toString('base64url').slice(0, 128);
84
+ // Generate code_challenge: SHA256 hash of verifier, base64url encoded
85
+ const codeChallenge = crypto.createHash('sha256').update(codeVerifier).digest('base64url');
86
+ return { codeVerifier, codeChallenge };
87
+ }
88
+ /**
89
+ * Performs local OAuth2 authentication by starting a local server,
90
+ * opening the user's browser, and waiting for the authorization code.
91
+ * Uses PKCE (Proof Key for Code Exchange) for enhanced security without client_secret.
92
+ */
93
+ function authenticateLocal() {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ // PKCE: Generate code verifier and challenge for secure authentication
96
+ // This eliminates the need for client_secret in public clients (CLI apps)
97
+ const pkceCodes = generatePKCECodes();
98
+ const oAuth2Client = new OAuth2Client({
99
+ clientId: OAUTH_CONFIG.clientId,
100
+ clientSecret: OAUTH_CONFIG.clientSecret,
101
+ redirectUri: OAUTH_CONFIG.redirectUri,
102
+ });
103
+ // Generate the authorization URL with PKCE code challenge
104
+ const authorizeUrl = oAuth2Client.generateAuthUrl({
105
+ access_type: 'offline',
106
+ scope: ['https://www.googleapis.com/auth/userinfo.email'],
107
+ prompt: 'consent',
108
+ code_challenge: pkceCodes.codeChallenge,
109
+ code_challenge_method: CodeChallengeMethod.S256,
110
+ });
111
+ // Dynamically import 'open' to open the browser
112
+ const open = (yield import('open')).default;
113
+ return new Promise((resolve, reject) => {
114
+ // Extract port from redirect URI
115
+ const redirectUrl = new URL(OAUTH_CONFIG.redirectUri);
116
+ const port = parseInt(redirectUrl.port) || 3000;
117
+ const server = http.createServer((req, res) => __awaiter(this, void 0, void 0, function* () {
118
+ try {
119
+ if (req.url && req.url.startsWith('/oauth2callback')) {
120
+ const searchParams = new URL(req.url, `http://localhost:${port}`).searchParams;
121
+ const code = searchParams.get('code');
122
+ if (code) {
123
+ // Exchange the authorization code for tokens using PKCE
124
+ // Do this BEFORE sending response so we can show error if it fails
125
+ const { tokens } = yield oAuth2Client.getToken({
126
+ code: code,
127
+ codeVerifier: pkceCodes.codeVerifier,
128
+ });
129
+ oAuth2Client.setCredentials(tokens);
130
+ // Only send success response after token exchange succeeds
131
+ res.writeHead(200, { 'Content-Type': 'text/html' });
132
+ res.end(generateAuthPage({
133
+ type: 'success',
134
+ title: 'Authentication Successful',
135
+ message: 'You have been successfully authenticated with Bkper CLI.',
136
+ }));
137
+ // Close the server and all connections
138
+ server.closeAllConnections();
139
+ server.close();
140
+ resolve(oAuth2Client);
141
+ }
142
+ else {
143
+ const error = searchParams.get('error');
144
+ res.writeHead(400, { 'Content-Type': 'text/html' });
145
+ res.end(generateAuthPage({
146
+ type: 'error',
147
+ title: 'Authentication Failed',
148
+ message: error || 'No authorization code received.',
149
+ }));
150
+ server.closeAllConnections();
151
+ server.close();
152
+ reject(new Error(error || 'No authorization code received'));
153
+ }
154
+ }
155
+ }
156
+ catch (err) {
157
+ const errorMessage = err instanceof Error ? err.message : String(err);
158
+ res.writeHead(500, { 'Content-Type': 'text/html' });
159
+ res.end(generateAuthPage({
160
+ type: 'error',
161
+ title: 'Authentication Error',
162
+ message: errorMessage,
163
+ }));
164
+ server.closeAllConnections();
165
+ server.close();
166
+ reject(err);
167
+ }
168
+ }));
169
+ server.listen(port, () => {
170
+ console.log(`\nOpen this URL to authenticate:\n${authorizeUrl}\n`);
171
+ open(authorizeUrl, { wait: false }).catch(() => {
172
+ // Browser couldn't open - URL already displayed above
173
+ });
174
+ });
175
+ server.on('error', err => {
176
+ reject(new Error(`Failed to start local server: ${err.message}`));
177
+ });
178
+ });
179
+ });
180
+ }
64
181
  /**
65
182
  * @returns A promise that resolves to a valid OAuth token.
66
183
  */
@@ -68,23 +185,24 @@ export function getOAuthToken() {
68
185
  return __awaiter(this, void 0, void 0, function* () {
69
186
  let localAuth;
70
187
  if (storedCredentials) {
71
- localAuth = new OAuth2Client(keys.installed.client_id, keys.installed.client_secret, keys.installed.redirect_uris[0]);
188
+ localAuth = new OAuth2Client({
189
+ clientId: OAUTH_CONFIG.clientId,
190
+ clientSecret: OAUTH_CONFIG.clientSecret,
191
+ redirectUri: OAUTH_CONFIG.redirectUri,
192
+ });
72
193
  localAuth.setCredentials(storedCredentials);
73
194
  }
74
195
  else {
75
- localAuth = yield authenticate({
76
- scopes: ['https://www.googleapis.com/auth/userinfo.email'],
77
- keyfilePath: `${__dirname}/keys.json`,
78
- });
196
+ localAuth = yield authenticateLocal();
79
197
  storeCredentials(localAuth.credentials);
80
198
  }
81
199
  localAuth.on('tokens', (tokens) => {
82
200
  if (tokens.refresh_token) {
83
- // store the refresh_token in my database!
201
+ // store the refresh_token
84
202
  storeCredentials(tokens);
85
203
  }
86
204
  });
87
- let token = yield localAuth.getAccessToken();
205
+ const token = yield localAuth.getAccessToken();
88
206
  return token.token || '';
89
207
  });
90
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-auth-service.js","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-auth-service.js","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bkper-factory.d.ts","sourceRoot":"","sources":["../src/bkper-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAKjC;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,KAAK,CAiBxC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,SAUzB"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Bkper } from 'bkper-js';
11
- import { getOAuthToken } from '../auth/local-auth-service.js';
11
+ import { getOAuthToken } from './auth/local-auth-service.js';
12
12
  let configuredBkperInstance = undefined;
13
13
  /**
14
14
  * Get a configured Bkper instance with authentication setup.
@@ -39,9 +39,12 @@ export function getBkperInstance() {
39
39
  */
40
40
  export function setupBkper() {
41
41
  const apiKey = process.env.BKPER_API_KEY;
42
+ const apiBaseUrl = process.env.BKPER_API_URL;
42
43
  Bkper.setConfig({
43
44
  apiKeyProvider: apiKey ? () => __awaiter(this, void 0, void 0, function* () { return apiKey; }) : undefined,
44
- oauthTokenProvider: () => getOAuthToken()
45
+ oauthTokenProvider: () => getOAuthToken(),
46
+ //@ts-ignore
47
+ apiBaseUrl,
45
48
  });
46
49
  }
47
50
  //# sourceMappingURL=bkper-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bkper-factory.js","sourceRoot":"","sources":["../src/bkper-factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,IAAI,uBAAuB,GAAsB,SAAS,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC5B,8CAA8C;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAK,UAAkB,CAAC,WAAW,EAAE,CAAC;QACrE,OAAQ,UAAkB,CAAC,WAAW,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,+CAA+C;IAC/C,IAAI,uBAAuB,EAAE,CAAC;QAC1B,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,sCAAsC;IACtC,UAAU,EAAE,CAAC;IACb,gCAAgC;IAChC,uBAAuB,GAAG,IAAI,KAAK,EAAE,CAAC;IAEtC,OAAO,uBAAuB,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC;QACZ,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,GAAS,EAAE,gDAAC,OAAA,MAAM,CAAA,GAAA,CAAC,CAAC,CAAC,SAAS;QACvD,kBAAkB,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;QACzC,YAAY;QACZ,UAAU;KACb,CAAC,CAAC;AACP,CAAC"}
package/lib/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import 'dotenv/config';
3
3
  //# sourceMappingURL=cli.d.ts.map
package/lib/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC"}