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.
- package/CHANGELOG.md +20 -1
- package/README.md +217 -183
- package/lib/auth/auth-page.d.ts +14 -0
- package/lib/auth/auth-page.d.ts.map +1 -0
- package/lib/auth/auth-page.js +110 -0
- package/lib/auth/auth-page.js.map +1 -0
- package/lib/auth/local-auth-service.d.ts.map +1 -1
- package/lib/auth/local-auth-service.js +135 -17
- package/lib/auth/local-auth-service.js.map +1 -1
- package/lib/bkper-factory.d.ts.map +1 -0
- package/lib/{mcp/bkper-factory.js → bkper-factory.js} +5 -2
- package/lib/bkper-factory.js.map +1 -0
- package/lib/cli.d.ts +1 -1
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +839 -67
- package/lib/cli.js.map +1 -1
- package/lib/commands/accounts/create.d.ts +10 -0
- package/lib/commands/accounts/create.d.ts.map +1 -0
- package/lib/commands/accounts/create.js +42 -0
- package/lib/commands/accounts/create.js.map +1 -0
- package/lib/commands/accounts/delete.d.ts +3 -0
- package/lib/commands/accounts/delete.d.ts.map +1 -0
- package/lib/commands/accounts/delete.js +22 -0
- package/lib/commands/accounts/delete.js.map +1 -0
- package/lib/commands/accounts/get.d.ts +3 -0
- package/lib/commands/accounts/get.d.ts.map +1 -0
- package/lib/commands/accounts/get.js +22 -0
- package/lib/commands/accounts/get.js.map +1 -0
- package/lib/commands/accounts/index.d.ts +6 -0
- package/lib/commands/accounts/index.d.ts.map +1 -0
- package/lib/commands/accounts/index.js +6 -0
- package/lib/commands/accounts/index.js.map +1 -0
- package/lib/commands/accounts/list.d.ts +3 -0
- package/lib/commands/accounts/list.d.ts.map +1 -0
- package/lib/commands/accounts/list.js +19 -0
- package/lib/commands/accounts/list.js.map +1 -0
- package/lib/commands/accounts/update.d.ts +9 -0
- package/lib/commands/accounts/update.d.ts.map +1 -0
- package/lib/commands/accounts/update.js +40 -0
- package/lib/commands/accounts/update.js.map +1 -0
- package/lib/commands/apps/build.d.ts +11 -0
- package/lib/commands/apps/build.d.ts.map +1 -0
- package/lib/commands/apps/build.js +144 -0
- package/lib/commands/apps/build.js.map +1 -0
- package/lib/commands/apps/bundler.d.ts +34 -0
- package/lib/commands/apps/bundler.d.ts.map +1 -0
- package/lib/commands/apps/bundler.js +112 -0
- package/lib/commands/apps/bundler.js.map +1 -0
- package/lib/commands/apps/config.d.ts +51 -0
- package/lib/commands/apps/config.d.ts.map +1 -0
- package/lib/commands/apps/config.js +146 -0
- package/lib/commands/apps/config.js.map +1 -0
- package/lib/commands/apps/deploy.d.ts +23 -0
- package/lib/commands/apps/deploy.d.ts.map +1 -0
- package/lib/commands/apps/deploy.js +344 -0
- package/lib/commands/apps/deploy.js.map +1 -0
- package/lib/commands/apps/dev.d.ts +28 -0
- package/lib/commands/apps/dev.d.ts.map +1 -0
- package/lib/commands/apps/dev.js +393 -0
- package/lib/commands/apps/dev.js.map +1 -0
- package/lib/commands/apps/index.d.ts +12 -0
- package/lib/commands/apps/index.d.ts.map +1 -0
- package/lib/commands/apps/index.js +24 -0
- package/lib/commands/apps/index.js.map +1 -0
- package/lib/commands/apps/init.d.ts +7 -0
- package/lib/commands/apps/init.d.ts.map +1 -0
- package/lib/commands/apps/init.js +249 -0
- package/lib/commands/apps/init.js.map +1 -0
- package/lib/commands/apps/install.d.ts +3 -0
- package/lib/commands/apps/install.d.ts.map +1 -0
- package/lib/commands/apps/install.js +18 -0
- package/lib/commands/apps/install.js.map +1 -0
- package/lib/commands/apps/list.d.ts +7 -0
- package/lib/commands/apps/list.d.ts.map +1 -0
- package/lib/commands/apps/list.js +23 -0
- package/lib/commands/apps/list.js.map +1 -0
- package/lib/commands/apps/secrets.d.ts +22 -0
- package/lib/commands/apps/secrets.d.ts.map +1 -0
- package/lib/commands/apps/secrets.js +209 -0
- package/lib/commands/apps/secrets.js.map +1 -0
- package/lib/commands/{apps.d.ts → apps/sync.d.ts} +8 -7
- package/lib/commands/apps/sync.d.ts.map +1 -0
- package/lib/commands/apps/sync.js +76 -0
- package/lib/commands/apps/sync.js.map +1 -0
- package/lib/commands/apps/types.d.ts +54 -0
- package/lib/commands/apps/types.d.ts.map +1 -0
- package/lib/commands/apps/types.js +2 -0
- package/lib/commands/apps/types.js.map +1 -0
- package/lib/commands/apps/uninstall.d.ts +3 -0
- package/lib/commands/apps/uninstall.d.ts.map +1 -0
- package/lib/commands/apps/uninstall.js +23 -0
- package/lib/commands/apps/uninstall.js.map +1 -0
- package/lib/commands/balances/get.d.ts +12 -0
- package/lib/commands/balances/get.d.ts.map +1 -0
- package/lib/commands/balances/get.js +32 -0
- package/lib/commands/balances/get.js.map +1 -0
- package/lib/commands/balances/index.d.ts +2 -0
- package/lib/commands/balances/index.d.ts.map +1 -0
- package/lib/commands/balances/index.js +2 -0
- package/lib/commands/balances/index.js.map +1 -0
- package/lib/commands/books/create.d.ts +12 -0
- package/lib/commands/books/create.d.ts.map +1 -0
- package/lib/commands/books/create.js +37 -0
- package/lib/commands/books/create.js.map +1 -0
- package/lib/commands/books/get.d.ts +3 -0
- package/lib/commands/books/get.d.ts.map +1 -0
- package/lib/commands/books/get.js +17 -0
- package/lib/commands/books/get.js.map +1 -0
- package/lib/commands/books/index.d.ts +5 -0
- package/lib/commands/books/index.d.ts.map +1 -0
- package/lib/commands/books/index.js +5 -0
- package/lib/commands/books/index.js.map +1 -0
- package/lib/commands/books/list.d.ts +3 -0
- package/lib/commands/books/list.d.ts.map +1 -0
- package/lib/commands/books/list.js +17 -0
- package/lib/commands/books/list.js.map +1 -0
- package/lib/commands/books/update.d.ts +14 -0
- package/lib/commands/books/update.d.ts.map +1 -0
- package/lib/commands/books/update.js +46 -0
- package/lib/commands/books/update.js.map +1 -0
- package/lib/commands/collections/add-book.d.ts +3 -0
- package/lib/commands/collections/add-book.d.ts.map +1 -0
- package/lib/commands/collections/add-book.js +27 -0
- package/lib/commands/collections/add-book.js.map +1 -0
- package/lib/commands/collections/create.d.ts +6 -0
- package/lib/commands/collections/create.d.ts.map +1 -0
- package/lib/commands/collections/create.js +19 -0
- package/lib/commands/collections/create.js.map +1 -0
- package/lib/commands/collections/delete.d.ts +3 -0
- package/lib/commands/collections/delete.d.ts.map +1 -0
- package/lib/commands/collections/delete.js +22 -0
- package/lib/commands/collections/delete.js.map +1 -0
- package/lib/commands/collections/get.d.ts +3 -0
- package/lib/commands/collections/get.d.ts.map +1 -0
- package/lib/commands/collections/get.js +22 -0
- package/lib/commands/collections/get.js.map +1 -0
- package/lib/commands/collections/index.d.ts +8 -0
- package/lib/commands/collections/index.d.ts.map +1 -0
- package/lib/commands/collections/index.js +8 -0
- package/lib/commands/collections/index.js.map +1 -0
- package/lib/commands/collections/list.d.ts +3 -0
- package/lib/commands/collections/list.d.ts.map +1 -0
- package/lib/commands/collections/list.js +18 -0
- package/lib/commands/collections/list.js.map +1 -0
- package/lib/commands/collections/remove-book.d.ts +3 -0
- package/lib/commands/collections/remove-book.d.ts.map +1 -0
- package/lib/commands/collections/remove-book.js +27 -0
- package/lib/commands/collections/remove-book.js.map +1 -0
- package/lib/commands/collections/update.d.ts +6 -0
- package/lib/commands/collections/update.d.ts.map +1 -0
- package/lib/commands/collections/update.js +24 -0
- package/lib/commands/collections/update.js.map +1 -0
- package/lib/commands/groups/create.d.ts +9 -0
- package/lib/commands/groups/create.d.ts.map +1 -0
- package/lib/commands/groups/create.js +40 -0
- package/lib/commands/groups/create.js.map +1 -0
- package/lib/commands/groups/delete.d.ts +3 -0
- package/lib/commands/groups/delete.d.ts.map +1 -0
- package/lib/commands/groups/delete.js +22 -0
- package/lib/commands/groups/delete.js.map +1 -0
- package/lib/commands/groups/get.d.ts +3 -0
- package/lib/commands/groups/get.d.ts.map +1 -0
- package/lib/commands/groups/get.js +22 -0
- package/lib/commands/groups/get.js.map +1 -0
- package/lib/commands/groups/index.d.ts +6 -0
- package/lib/commands/groups/index.d.ts.map +1 -0
- package/lib/commands/groups/index.js +6 -0
- package/lib/commands/groups/index.js.map +1 -0
- package/lib/commands/groups/list.d.ts +3 -0
- package/lib/commands/groups/list.d.ts.map +1 -0
- package/lib/commands/groups/list.js +19 -0
- package/lib/commands/groups/list.js.map +1 -0
- package/lib/commands/groups/update.d.ts +8 -0
- package/lib/commands/groups/update.d.ts.map +1 -0
- package/lib/commands/groups/update.js +38 -0
- package/lib/commands/groups/update.js.map +1 -0
- package/lib/commands/skills.d.ts +17 -0
- package/lib/commands/skills.d.ts.map +1 -0
- package/lib/commands/skills.js +248 -0
- package/lib/commands/skills.js.map +1 -0
- package/lib/commands/transactions/check.d.ts +3 -0
- package/lib/commands/transactions/check.d.ts.map +1 -0
- package/lib/commands/transactions/check.js +22 -0
- package/lib/commands/transactions/check.js.map +1 -0
- package/lib/commands/transactions/create.d.ts +13 -0
- package/lib/commands/transactions/create.d.ts.map +1 -0
- package/lib/commands/transactions/create.js +55 -0
- package/lib/commands/transactions/create.js.map +1 -0
- package/lib/commands/transactions/index.d.ts +8 -0
- package/lib/commands/transactions/index.d.ts.map +1 -0
- package/lib/commands/transactions/index.js +8 -0
- package/lib/commands/transactions/index.js.map +1 -0
- package/lib/commands/transactions/list.d.ts +14 -0
- package/lib/commands/transactions/list.d.ts.map +1 -0
- package/lib/commands/transactions/list.js +26 -0
- package/lib/commands/transactions/list.js.map +1 -0
- package/lib/commands/transactions/merge.d.ts +8 -0
- package/lib/commands/transactions/merge.d.ts.map +1 -0
- package/lib/commands/transactions/merge.js +44 -0
- package/lib/commands/transactions/merge.js.map +1 -0
- package/lib/commands/transactions/post.d.ts +3 -0
- package/lib/commands/transactions/post.d.ts.map +1 -0
- package/lib/commands/transactions/post.js +22 -0
- package/lib/commands/transactions/post.js.map +1 -0
- package/lib/commands/transactions/trash.d.ts +3 -0
- package/lib/commands/transactions/trash.d.ts.map +1 -0
- package/lib/commands/transactions/trash.js +22 -0
- package/lib/commands/transactions/trash.js.map +1 -0
- package/lib/commands/transactions/update.d.ts +12 -0
- package/lib/commands/transactions/update.d.ts.map +1 -0
- package/lib/commands/transactions/update.js +53 -0
- package/lib/commands/transactions/update.js.map +1 -0
- package/lib/dev/auth-middleware.d.ts +18 -0
- package/lib/dev/auth-middleware.d.ts.map +1 -0
- package/lib/dev/auth-middleware.js +113 -0
- package/lib/dev/auth-middleware.js.map +1 -0
- package/lib/dev/cleanup.d.ts +10 -0
- package/lib/dev/cleanup.d.ts.map +1 -0
- package/lib/dev/cleanup.js +36 -0
- package/lib/dev/cleanup.js.map +1 -0
- package/lib/dev/cloudflared/constants.d.ts +35 -0
- package/lib/dev/cloudflared/constants.d.ts.map +1 -0
- package/lib/dev/cloudflared/constants.js +48 -0
- package/lib/dev/cloudflared/constants.js.map +1 -0
- package/lib/dev/cloudflared/index.d.ts +11 -0
- package/lib/dev/cloudflared/index.d.ts.map +1 -0
- package/lib/dev/cloudflared/index.js +10 -0
- package/lib/dev/cloudflared/index.js.map +1 -0
- package/lib/dev/cloudflared/install.d.ts +15 -0
- package/lib/dev/cloudflared/install.d.ts.map +1 -0
- package/lib/dev/cloudflared/install.js +140 -0
- package/lib/dev/cloudflared/install.js.map +1 -0
- package/lib/dev/cloudflared/tunnel.d.ts +64 -0
- package/lib/dev/cloudflared/tunnel.d.ts.map +1 -0
- package/lib/dev/cloudflared/tunnel.js +109 -0
- package/lib/dev/cloudflared/tunnel.js.map +1 -0
- package/lib/dev/esbuild.d.ts +28 -0
- package/lib/dev/esbuild.d.ts.map +1 -0
- package/lib/dev/esbuild.js +83 -0
- package/lib/dev/esbuild.js.map +1 -0
- package/lib/dev/logger.d.ts +51 -0
- package/lib/dev/logger.d.ts.map +1 -0
- package/lib/dev/logger.js +102 -0
- package/lib/dev/logger.js.map +1 -0
- package/lib/dev/miniflare.d.ts +32 -0
- package/lib/dev/miniflare.d.ts.map +1 -0
- package/lib/dev/miniflare.js +111 -0
- package/lib/dev/miniflare.js.map +1 -0
- package/lib/dev/preflight.d.ts +7 -0
- package/lib/dev/preflight.d.ts.map +1 -0
- package/lib/dev/preflight.js +61 -0
- package/lib/dev/preflight.js.map +1 -0
- package/lib/dev/shared.d.ts +7 -0
- package/lib/dev/shared.d.ts.map +1 -0
- package/lib/dev/shared.js +99 -0
- package/lib/dev/shared.js.map +1 -0
- package/lib/dev/tunnel.d.ts +31 -0
- package/lib/dev/tunnel.d.ts.map +1 -0
- package/lib/dev/tunnel.js +110 -0
- package/lib/dev/tunnel.js.map +1 -0
- package/lib/dev/types.d.ts +53 -0
- package/lib/dev/types.d.ts.map +1 -0
- package/lib/dev/types.js +223 -0
- package/lib/dev/types.js.map +1 -0
- package/lib/dev/vite.d.ts +50 -0
- package/lib/dev/vite.d.ts.map +1 -0
- package/lib/dev/vite.js +114 -0
- package/lib/dev/vite.js.map +1 -0
- package/lib/dev/webhook-dev.d.ts +9 -0
- package/lib/dev/webhook-dev.d.ts.map +1 -0
- package/lib/dev/webhook-dev.js +28 -0
- package/lib/dev/webhook-dev.js.map +1 -0
- package/lib/domain/transaction/merge-operation.d.ts.map +1 -0
- package/lib/{mcp/domain → domain}/transaction/merge-operation.js +10 -11
- package/lib/domain/transaction/merge-operation.js.map +1 -0
- package/lib/domain/transaction/merge-types.d.ts.map +1 -0
- package/lib/domain/transaction/merge-types.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/platform/client.d.ts +37 -0
- package/lib/platform/client.d.ts.map +1 -0
- package/lib/platform/client.js +37 -0
- package/lib/platform/client.js.map +1 -0
- package/lib/render/index.d.ts +3 -0
- package/lib/render/index.d.ts.map +1 -0
- package/lib/render/index.js +3 -0
- package/lib/render/index.js.map +1 -0
- package/lib/render/output.d.ts +15 -0
- package/lib/render/output.d.ts.map +1 -0
- package/lib/render/output.js +30 -0
- package/lib/render/output.js.map +1 -0
- package/lib/render/table-formatter.d.ts +34 -0
- package/lib/render/table-formatter.d.ts.map +1 -0
- package/lib/render/table-formatter.js +221 -0
- package/lib/render/table-formatter.js.map +1 -0
- package/lib/utils/properties.d.ts +12 -0
- package/lib/utils/properties.d.ts.map +1 -0
- package/lib/utils/properties.js +23 -0
- package/lib/utils/properties.js.map +1 -0
- package/package.json +23 -22
- package/lib/auth/keys.json +0 -12
- package/lib/commands/apps.d.ts.map +0 -1
- package/lib/commands/apps.js +0 -93
- package/lib/commands/apps.js.map +0 -1
- package/lib/mcp/bkper-factory.d.ts.map +0 -1
- package/lib/mcp/bkper-factory.js.map +0 -1
- package/lib/mcp/domain/transaction/merge-operation.d.ts.map +0 -1
- package/lib/mcp/domain/transaction/merge-operation.js.map +0 -1
- package/lib/mcp/domain/transaction/merge-types.d.ts.map +0 -1
- package/lib/mcp/domain/transaction/merge-types.js.map +0 -1
- package/lib/mcp/server.d.ts +0 -13
- package/lib/mcp/server.d.ts.map +0 -1
- package/lib/mcp/server.js +0 -161
- package/lib/mcp/server.js.map +0 -1
- package/lib/mcp/system-prompt.md +0 -192
- package/lib/mcp/tools/create_transactions.d.ts +0 -59
- package/lib/mcp/tools/create_transactions.d.ts.map +0 -1
- package/lib/mcp/tools/create_transactions.js +0 -163
- package/lib/mcp/tools/create_transactions.js.map +0 -1
- package/lib/mcp/tools/get_balances.d.ts +0 -26
- package/lib/mcp/tools/get_balances.d.ts.map +0 -1
- package/lib/mcp/tools/get_balances.js +0 -106
- package/lib/mcp/tools/get_balances.js.map +0 -1
- package/lib/mcp/tools/get_book.d.ts +0 -21
- package/lib/mcp/tools/get_book.d.ts.map +0 -1
- package/lib/mcp/tools/get_book.js +0 -126
- package/lib/mcp/tools/get_book.js.map +0 -1
- package/lib/mcp/tools/list_books.d.ts +0 -21
- package/lib/mcp/tools/list_books.d.ts.map +0 -1
- package/lib/mcp/tools/list_books.js +0 -67
- package/lib/mcp/tools/list_books.js.map +0 -1
- package/lib/mcp/tools/list_transactions.d.ts +0 -38
- package/lib/mcp/tools/list_transactions.d.ts.map +0 -1
- package/lib/mcp/tools/list_transactions.js +0 -109
- package/lib/mcp/tools/list_transactions.js.map +0 -1
- package/lib/mcp/tools/merge_transactions.d.ts +0 -40
- package/lib/mcp/tools/merge_transactions.d.ts.map +0 -1
- package/lib/mcp/tools/merge_transactions.js +0 -120
- package/lib/mcp/tools/merge_transactions.js.map +0 -1
- /package/lib/{mcp/bkper-factory.d.ts → bkper-factory.d.ts} +0 -0
- /package/lib/{mcp/domain → domain}/transaction/merge-operation.d.ts +0 -0
- /package/lib/{mcp/domain → domain}/transaction/merge-types.d.ts +0 -0
- /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
|
|
11
|
+
import http from 'http';
|
|
12
|
+
import { OAuth2Client, CodeChallengeMethod } from 'google-auth-library';
|
|
13
13
|
import os from 'os';
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
|
201
|
+
// store the refresh_token
|
|
84
202
|
storeCredentials(tokens);
|
|
85
203
|
}
|
|
86
204
|
});
|
|
87
|
-
|
|
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":";;;;;;;;;AAAA,
|
|
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 '
|
|
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
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"}
|