@efficy/tribecrm-mcp-server 0.4.3 → 0.5.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.
@@ -19,7 +19,7 @@ export class UserAuth {
19
19
  clientId: config.clientId,
20
20
  clientSecret: config.clientSecret,
21
21
  redirectUri: config.redirectUri,
22
- organizationId: config.organizationId,
22
+ usePKCE: config.usePKCE ?? false, // Default to false for TribeCRM compatibility
23
23
  });
24
24
  }
25
25
  /**
@@ -58,9 +58,22 @@ export class UserAuth {
58
58
  }
59
59
  }
60
60
  // No valid tokens - user needs to authenticate
61
- throw new Error('No valid authentication tokens found. Please run the authentication process:\n' +
62
- ' npx @efficy/tribecrm-mcp-server authenticate\n' +
63
- 'Or set TRIBECRM_AUTH=app to use application authentication instead.');
61
+ const tokenPath = this.tokenManager.getTokenPath();
62
+ throw new Error('šŸ” User Authentication Required\n\n' +
63
+ 'No valid authentication tokens found. You need to authenticate first.\n\n' +
64
+ '✨ EASY WAY - Authenticate directly from Claude:\n\n' +
65
+ ' Ask me: "Can you authenticate with TribeCRM?"\n' +
66
+ ' I\'ll use the tribecrm_authenticate tool to generate a login link for you!\n\n' +
67
+ 'šŸ“‹ Alternative - Manual authentication:\n\n' +
68
+ '1. Open your terminal/command prompt\n' +
69
+ '2. Navigate to your TribeCRM MCP server directory\n' +
70
+ '3. Run: npm run authenticate\n' +
71
+ '4. Your browser will open for TribeCRM login\n' +
72
+ '5. After successful login, tokens will be saved to:\n' +
73
+ ` ${tokenPath}\n\n` +
74
+ 'šŸ’” Or switch to app authentication by setting:\n' +
75
+ ' TRIBECRM_AUTH=app (in your Claude Desktop config)\n\n' +
76
+ 'For more help, see: https://github.com/efficy-sa/tribecrm-mcp-server#user-authentication');
64
77
  }
65
78
  /**
66
79
  * Perform interactive OAuth authentication flow
@@ -69,11 +82,11 @@ export class UserAuth {
69
82
  async authenticate() {
70
83
  const callbackPort = this.config.callbackPort || 3000;
71
84
  console.error('\nšŸ” Starting TribeCRM User Authentication...\n');
72
- // Generate PKCE pair
73
- const pkce = this.oauthFlow.generatePKCE();
85
+ // Generate PKCE pair (only if usePKCE is enabled)
86
+ const pkce = this.config.usePKCE ? this.oauthFlow.generatePKCE() : null;
74
87
  const state = OAuthFlow.generateState();
75
88
  // Generate consent URL
76
- const consentUrl = this.oauthFlow.generateConsentUrl(state, pkce.challenge);
89
+ const consentUrl = this.oauthFlow.generateConsentUrl(state, pkce?.challenge);
77
90
  // Start callback server
78
91
  const callbackServer = new CallbackServer(callbackPort);
79
92
  console.error('šŸ“‹ Step 1: Opening your browser for authentication...');
@@ -93,7 +106,7 @@ export class UserAuth {
93
106
  console.error('');
94
107
  console.error('šŸ”„ Step 4: Exchanging code for access token...');
95
108
  // Exchange code for tokens
96
- const tokens = await this.oauthFlow.exchangeCodeForTokens(result.code, pkce.verifier);
109
+ const tokens = await this.oauthFlow.exchangeCodeForTokens(result.code, pkce?.verifier);
97
110
  // Save tokens
98
111
  this.tokenManager.saveTokens(tokens);
99
112
  // Update in-memory tokens
@@ -1 +1 @@
1
- {"version":3,"file":"user-auth.js","sourceRoot":"","sources":["../../src/auth/user-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-auth.js","sourceRoot":"","sources":["../../src/auth/user-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-auth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-auth.test.d.ts","sourceRoot":"","sources":["../../src/auth/user-auth.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,366 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { UserAuth } from './user-auth.js';
3
+ import { TokenManager } from './token-manager.js';
4
+ import { OAuthFlow } from './oauth-flow.js';
5
+ import { CallbackServer } from './callback-server.js';
6
+ // Mock modules
7
+ vi.mock('./token-manager.js');
8
+ vi.mock('./oauth-flow.js');
9
+ vi.mock('./callback-server.js');
10
+ describe('UserAuth', () => {
11
+ let userAuth;
12
+ let mockTokenManager;
13
+ let mockOAuthFlow;
14
+ let mockCallbackServer;
15
+ const testConfig = {
16
+ authUrl: 'https://auth.test.com',
17
+ clientId: 'test-client-id',
18
+ clientSecret: 'test-client-secret',
19
+ redirectUri: 'http://localhost:3000/callback',
20
+ organizationId: 'test-org-id',
21
+ callbackPort: 3000,
22
+ tokenFilePath: '/test/tokens.json'
23
+ };
24
+ const mockTokens = {
25
+ access_token: 'test-access-token',
26
+ token_type: 'Bearer',
27
+ expires_in: 86400,
28
+ scope: 'read write offline',
29
+ refresh_token: 'test-refresh-token'
30
+ };
31
+ const mockStoredTokens = {
32
+ ...mockTokens,
33
+ expires_at: Date.now() + 3600000 // 1 hour from now
34
+ };
35
+ beforeEach(() => {
36
+ vi.clearAllMocks();
37
+ // Setup TokenManager mock
38
+ mockTokenManager = {
39
+ loadTokens: vi.fn(),
40
+ saveTokens: vi.fn(),
41
+ deleteTokens: vi.fn(),
42
+ areTokensValid: vi.fn(),
43
+ getTokenPath: vi.fn().mockReturnValue('/test/tokens.json')
44
+ };
45
+ vi.mocked(TokenManager).mockImplementation(() => mockTokenManager);
46
+ // Setup OAuthFlow mock
47
+ mockOAuthFlow = {
48
+ generatePKCE: vi.fn().mockReturnValue({
49
+ verifier: 'test-verifier',
50
+ challenge: 'test-challenge'
51
+ }),
52
+ generateConsentUrl: vi.fn().mockReturnValue('https://auth.test.com/consent'),
53
+ exchangeCodeForTokens: vi.fn().mockResolvedValue(mockTokens),
54
+ refreshAccessToken: vi.fn().mockResolvedValue(mockTokens)
55
+ };
56
+ vi.mocked(OAuthFlow).mockImplementation(() => mockOAuthFlow);
57
+ vi.mocked(OAuthFlow.generateState).mockReturnValue('test-state');
58
+ // Setup CallbackServer mock
59
+ mockCallbackServer = {
60
+ waitForCallback: vi.fn().mockResolvedValue({
61
+ code: 'test-auth-code',
62
+ state: 'test-state'
63
+ }),
64
+ stop: vi.fn(),
65
+ getPort: vi.fn().mockReturnValue(3000)
66
+ };
67
+ vi.mocked(CallbackServer).mockImplementation(() => mockCallbackServer);
68
+ userAuth = new UserAuth(testConfig);
69
+ });
70
+ afterEach(() => {
71
+ vi.restoreAllMocks();
72
+ });
73
+ describe('constructor', () => {
74
+ it('should initialize with provided config', () => {
75
+ expect(TokenManager).toHaveBeenCalledWith('/test/tokens.json');
76
+ expect(OAuthFlow).toHaveBeenCalledWith({
77
+ authUrl: testConfig.authUrl,
78
+ clientId: testConfig.clientId,
79
+ clientSecret: testConfig.clientSecret,
80
+ redirectUri: testConfig.redirectUri,
81
+ organizationId: testConfig.organizationId
82
+ });
83
+ });
84
+ it('should work without optional config parameters', () => {
85
+ const minimalConfig = {
86
+ authUrl: 'https://auth.test.com',
87
+ clientId: 'test-client-id',
88
+ clientSecret: 'test-client-secret',
89
+ redirectUri: 'http://localhost:3000/callback'
90
+ };
91
+ const minimalUserAuth = new UserAuth(minimalConfig);
92
+ expect(minimalUserAuth).toBeDefined();
93
+ });
94
+ });
95
+ describe('getAccessToken', () => {
96
+ it('should return current token if still valid', async () => {
97
+ // Simulate having a valid token in memory
98
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
99
+ mockTokenManager.areTokensValid.mockReturnValue(true);
100
+ const token1 = await userAuth.getAccessToken();
101
+ const token2 = await userAuth.getAccessToken(); // Should use cached token
102
+ expect(token1).toBe(mockTokens.access_token);
103
+ expect(token2).toBe(mockTokens.access_token);
104
+ expect(mockTokenManager.loadTokens).toHaveBeenCalledTimes(1); // Only loaded once
105
+ });
106
+ it('should load tokens from disk if not in memory', async () => {
107
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
108
+ mockTokenManager.areTokensValid.mockReturnValue(true);
109
+ const token = await userAuth.getAccessToken();
110
+ expect(token).toBe(mockTokens.access_token);
111
+ expect(mockTokenManager.loadTokens).toHaveBeenCalled();
112
+ expect(mockTokenManager.areTokensValid).toHaveBeenCalled();
113
+ });
114
+ it('should refresh expired tokens using refresh_token', async () => {
115
+ const expiredTokens = {
116
+ ...mockStoredTokens,
117
+ expires_at: Date.now() - 1000 // Expired 1 second ago
118
+ };
119
+ const newTokens = {
120
+ ...mockTokens,
121
+ access_token: 'new-access-token',
122
+ expires_at: Date.now() + 3600000
123
+ };
124
+ mockTokenManager.loadTokens.mockReturnValue(expiredTokens);
125
+ mockTokenManager.areTokensValid.mockReturnValue(false);
126
+ mockOAuthFlow.refreshAccessToken.mockResolvedValue(newTokens);
127
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
128
+ const token = await userAuth.getAccessToken();
129
+ expect(token).toBe('new-access-token');
130
+ expect(mockOAuthFlow.refreshAccessToken).toHaveBeenCalledWith('test-refresh-token');
131
+ expect(mockTokenManager.saveTokens).toHaveBeenCalledWith(newTokens);
132
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Access token expired, refreshing...');
133
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Access token refreshed successfully');
134
+ consoleErrorSpy.mockRestore();
135
+ });
136
+ it('should throw error if no valid tokens and refresh fails', async () => {
137
+ const expiredTokens = {
138
+ ...mockStoredTokens,
139
+ expires_at: Date.now() - 1000
140
+ };
141
+ mockTokenManager.loadTokens.mockReturnValue(expiredTokens);
142
+ mockTokenManager.areTokensValid.mockReturnValue(false);
143
+ mockOAuthFlow.refreshAccessToken.mockRejectedValue(new Error('Refresh failed'));
144
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
145
+ await expect(userAuth.getAccessToken()).rejects.toThrow('No valid authentication tokens found');
146
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Token refresh failed:', 'Refresh failed');
147
+ consoleErrorSpy.mockRestore();
148
+ });
149
+ it('should throw error if no tokens exist on disk', async () => {
150
+ mockTokenManager.loadTokens.mockReturnValue(null);
151
+ await expect(userAuth.getAccessToken()).rejects.toThrow('No valid authentication tokens found. Please run the authentication process');
152
+ });
153
+ it('should throw error with helpful message about authentication', async () => {
154
+ mockTokenManager.loadTokens.mockReturnValue(null);
155
+ try {
156
+ await userAuth.getAccessToken();
157
+ expect.fail('Should have thrown error');
158
+ }
159
+ catch (error) {
160
+ expect(error.message).toContain('npx @efficy/tribecrm-mcp-server authenticate');
161
+ expect(error.message).toContain('TRIBECRM_AUTH=app');
162
+ }
163
+ });
164
+ it('should use in-memory token if expiry is more than 60 seconds away', async () => {
165
+ // First call loads from disk
166
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
167
+ mockTokenManager.areTokensValid.mockReturnValue(true);
168
+ await userAuth.getAccessToken();
169
+ // Second call should use in-memory token (not load from disk again)
170
+ mockTokenManager.loadTokens.mockClear();
171
+ const token = await userAuth.getAccessToken();
172
+ expect(token).toBe(mockTokens.access_token);
173
+ expect(mockTokenManager.loadTokens).not.toHaveBeenCalled();
174
+ });
175
+ it('should reload token if expiry is less than 60 seconds away', async () => {
176
+ const soonToExpireTokens = {
177
+ ...mockStoredTokens,
178
+ expires_at: Date.now() + 30000 // 30 seconds from now
179
+ };
180
+ // First call
181
+ mockTokenManager.loadTokens.mockReturnValueOnce(soonToExpireTokens);
182
+ mockTokenManager.areTokensValid.mockReturnValue(true);
183
+ await userAuth.getAccessToken();
184
+ // Second call should reload because expiry is soon
185
+ const freshTokens = {
186
+ ...mockStoredTokens,
187
+ expires_at: Date.now() + 3600000
188
+ };
189
+ mockTokenManager.loadTokens.mockReturnValue(freshTokens);
190
+ mockTokenManager.areTokensValid.mockReturnValue(true);
191
+ const token = await userAuth.getAccessToken();
192
+ expect(token).toBe(mockTokens.access_token);
193
+ expect(mockTokenManager.loadTokens).toHaveBeenCalledTimes(2);
194
+ });
195
+ });
196
+ describe('authenticate', () => {
197
+ it('should complete full OAuth flow successfully', async () => {
198
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
199
+ // Mock browser opening
200
+ const mockExec = vi.fn().mockResolvedValue({ stdout: '', stderr: '' });
201
+ vi.doMock('child_process', () => ({
202
+ exec: mockExec
203
+ }));
204
+ vi.doMock('util', () => ({
205
+ promisify: (fn) => mockExec
206
+ }));
207
+ await userAuth.authenticate();
208
+ // Verify PKCE generation
209
+ expect(mockOAuthFlow.generatePKCE).toHaveBeenCalled();
210
+ expect(OAuthFlow.generateState).toHaveBeenCalled();
211
+ // Verify consent URL generation
212
+ expect(mockOAuthFlow.generateConsentUrl).toHaveBeenCalledWith('test-state', 'test-challenge');
213
+ // Verify callback server was started
214
+ expect(CallbackServer).toHaveBeenCalledWith(3000);
215
+ expect(mockCallbackServer.waitForCallback).toHaveBeenCalledWith('test-state');
216
+ // Verify code exchange
217
+ expect(mockOAuthFlow.exchangeCodeForTokens).toHaveBeenCalledWith('test-auth-code', 'test-verifier');
218
+ // Verify tokens were saved
219
+ expect(mockTokenManager.saveTokens).toHaveBeenCalledWith(mockTokens);
220
+ // Verify success messages
221
+ expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('Starting TribeCRM User Authentication'));
222
+ expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('Authentication successful'));
223
+ consoleErrorSpy.mockRestore();
224
+ });
225
+ it('should use custom callback port if configured', async () => {
226
+ const customConfig = {
227
+ ...testConfig,
228
+ callbackPort: 4567
229
+ };
230
+ const customUserAuth = new UserAuth(customConfig);
231
+ vi.spyOn(console, 'error').mockImplementation(() => { });
232
+ await customUserAuth.authenticate();
233
+ expect(CallbackServer).toHaveBeenCalledWith(4567);
234
+ });
235
+ it('should throw error if callback fails', async () => {
236
+ mockCallbackServer.waitForCallback.mockRejectedValue(new Error('Callback timeout'));
237
+ vi.spyOn(console, 'error').mockImplementation(() => { });
238
+ await expect(userAuth.authenticate()).rejects.toThrow('Authentication failed: Callback timeout');
239
+ expect(mockCallbackServer.stop).toHaveBeenCalled();
240
+ });
241
+ it('should throw error if token exchange fails', async () => {
242
+ mockOAuthFlow.exchangeCodeForTokens.mockRejectedValue(new Error('Invalid authorization code'));
243
+ vi.spyOn(console, 'error').mockImplementation(() => { });
244
+ await expect(userAuth.authenticate()).rejects.toThrow('Authentication failed: Invalid authorization code');
245
+ });
246
+ it('should display consent URL in console', async () => {
247
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
248
+ await userAuth.authenticate();
249
+ expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('https://auth.test.com/consent'));
250
+ consoleErrorSpy.mockRestore();
251
+ });
252
+ });
253
+ describe('isAuthenticated', () => {
254
+ it('should return true if valid token in memory', () => {
255
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
256
+ mockTokenManager.areTokensValid.mockReturnValue(true);
257
+ // Load token into memory
258
+ userAuth.getAccessToken();
259
+ expect(userAuth.isAuthenticated()).toBe(true);
260
+ });
261
+ it('should return true if stored tokens are valid', () => {
262
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
263
+ mockTokenManager.areTokensValid.mockReturnValue(true);
264
+ expect(userAuth.isAuthenticated()).toBe(true);
265
+ });
266
+ it('should return true if tokens expired but refresh_token exists', () => {
267
+ const expiredTokens = {
268
+ ...mockStoredTokens,
269
+ expires_at: Date.now() - 1000
270
+ };
271
+ mockTokenManager.loadTokens.mockReturnValue(expiredTokens);
272
+ mockTokenManager.areTokensValid.mockReturnValue(false);
273
+ expect(userAuth.isAuthenticated()).toBe(true); // Can refresh
274
+ });
275
+ it('should return false if no tokens exist', () => {
276
+ mockTokenManager.loadTokens.mockReturnValue(null);
277
+ expect(userAuth.isAuthenticated()).toBe(false);
278
+ });
279
+ it('should return false if tokens expired and no refresh_token', () => {
280
+ const expiredTokensNoRefresh = {
281
+ access_token: 'old-token',
282
+ token_type: 'Bearer',
283
+ expires_in: 3600,
284
+ expires_at: Date.now() - 1000
285
+ // No refresh_token
286
+ };
287
+ mockTokenManager.loadTokens.mockReturnValue(expiredTokensNoRefresh);
288
+ mockTokenManager.areTokensValid.mockReturnValue(false);
289
+ expect(userAuth.isAuthenticated()).toBe(false);
290
+ });
291
+ it('should check in-memory token before disk', () => {
292
+ // Set up valid in-memory token
293
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
294
+ mockTokenManager.areTokensValid.mockReturnValue(true);
295
+ userAuth.getAccessToken();
296
+ // Clear mock to verify it's not called again
297
+ mockTokenManager.loadTokens.mockClear();
298
+ expect(userAuth.isAuthenticated()).toBe(true);
299
+ expect(mockTokenManager.loadTokens).not.toHaveBeenCalled();
300
+ });
301
+ });
302
+ describe('logout', () => {
303
+ it('should delete tokens and clear memory', async () => {
304
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
305
+ // First authenticate
306
+ mockTokenManager.loadTokens.mockReturnValue(mockStoredTokens);
307
+ mockTokenManager.areTokensValid.mockReturnValue(true);
308
+ await userAuth.getAccessToken();
309
+ expect(userAuth.isAuthenticated()).toBe(true);
310
+ // Logout
311
+ userAuth.logout();
312
+ expect(mockTokenManager.deleteTokens).toHaveBeenCalled();
313
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Logged out successfully');
314
+ // After logout, should need to load from disk again
315
+ mockTokenManager.loadTokens.mockReturnValue(null);
316
+ expect(userAuth.isAuthenticated()).toBe(false);
317
+ consoleErrorSpy.mockRestore();
318
+ });
319
+ it('should handle logout when not authenticated', () => {
320
+ const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
321
+ userAuth.logout();
322
+ expect(mockTokenManager.deleteTokens).toHaveBeenCalled();
323
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Logged out successfully');
324
+ consoleErrorSpy.mockRestore();
325
+ });
326
+ });
327
+ describe('getTokenPath', () => {
328
+ it('should return token file path from token manager', () => {
329
+ const path = userAuth.getTokenPath();
330
+ expect(path).toBe('/test/tokens.json');
331
+ expect(mockTokenManager.getTokenPath).toHaveBeenCalled();
332
+ });
333
+ });
334
+ describe('edge cases and error handling', () => {
335
+ it('should handle token manager errors gracefully', async () => {
336
+ mockTokenManager.loadTokens.mockImplementation(() => {
337
+ throw new Error('Disk read error');
338
+ });
339
+ await expect(userAuth.getAccessToken()).rejects.toThrow();
340
+ });
341
+ it('should handle OAuth flow errors gracefully', async () => {
342
+ mockOAuthFlow.exchangeCodeForTokens.mockRejectedValue(new Error('Network error'));
343
+ vi.spyOn(console, 'error').mockImplementation(() => { });
344
+ await expect(userAuth.authenticate()).rejects.toThrow('Authentication failed: Network error');
345
+ });
346
+ it('should handle callback server errors gracefully', async () => {
347
+ mockCallbackServer.waitForCallback.mockRejectedValue(new Error('Port in use'));
348
+ vi.spyOn(console, 'error').mockImplementation(() => { });
349
+ await expect(userAuth.authenticate()).rejects.toThrow('Authentication failed: Port in use');
350
+ expect(mockCallbackServer.stop).toHaveBeenCalled();
351
+ });
352
+ it('should handle missing refresh_token during refresh', async () => {
353
+ const tokensWithoutRefresh = {
354
+ access_token: 'old-token',
355
+ token_type: 'Bearer',
356
+ expires_in: 3600,
357
+ expires_at: Date.now() - 1000
358
+ // No refresh_token
359
+ };
360
+ mockTokenManager.loadTokens.mockReturnValue(tokensWithoutRefresh);
361
+ mockTokenManager.areTokensValid.mockReturnValue(false);
362
+ await expect(userAuth.getAccessToken()).rejects.toThrow('No valid authentication tokens found');
363
+ });
364
+ });
365
+ });
366
+ //# sourceMappingURL=user-auth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-auth.test.js","sourceRoot":"","sources":["../../src/auth/user-auth.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAa,MAAM,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGpG,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,MAAM,EAAE,cAAc;IAyBlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;IAqDjC;;;;;;OAMG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAUlB;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlF;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOpG;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE;;;;OAIG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,GAAG,CAAC;IAgBf;;OAEG;IACG,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IASvD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAoB/C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAa,MAAM,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGpG,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,MAAM,EAAE,cAAc;IAyBlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;IAoDjC;;;;;;OAMG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAUlB;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlF;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOpG;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE;;;;OAIG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,GAAG,CAAC;IAgBf;;OAEG;IACG,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IASvD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAoB/C"}
package/dist/client.js CHANGED
@@ -23,8 +23,8 @@ export class TribeCRMClient {
23
23
  clientId: config.clientId,
24
24
  clientSecret: config.clientSecret,
25
25
  redirectUri: redirectUri,
26
- organizationId: config.organizationId,
27
26
  callbackPort: callbackPort,
27
+ usePKCE: false, // TribeCRM doesn't use PKCE for user auth
28
28
  });
29
29
  }
30
30
  }
@@ -71,7 +71,6 @@ export class TribeCRMClient {
71
71
  client_id: this.config.clientId,
72
72
  client_secret: this.config.clientSecret,
73
73
  scope: 'read write offline',
74
- ...(this.config.organizationId && { organization_id: this.config.organizationId }),
75
74
  }), {
76
75
  headers: {
77
76
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,OAAO,cAAc;IACjB,aAAa,CAAgB;IAC7B,MAAM,CAAiB;IACvB,KAAK,GAAqB,IAAI,CAAC;IAC/B,WAAW,GAAW,CAAC,CAAC;IACxB,QAAQ,GAAoB,IAAI,CAAC;IAEzC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,gCAAgC,CAAC;YAC1F,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAE1D,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW,EAAE,WAAW;gBACxB,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,KAAK,EAAE,0CAA0C;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,GAAW;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,4CAA4C;QACtD,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACtC,uDAAuD;YACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;gBACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;gBACtF,uDAAuD;gBACvD,IAAI,CAAC,KAAK,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;gBACjH,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,WAAW;YAChD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,eAAe,EACrC,IAAI,eAAe,CAAC;gBAClB,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC/B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvC,KAAK,EAAE,oBAAoB;aAC5B,CAAC,EACF;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CACF,CAAC;YAEF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAM,CAAC,YAAY,EAAE,CAAC;QACrG,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,UAAkB,EAClB,QAAgB,EAChB,MAAe,EACf,MAAe;QAEf,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACpC,IAAI,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,UAAU,IAAI,QAAQ,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAClG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,IAAyB;QAC9D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB,EAAE,IAAyB;QAChF,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,UAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,OAQC;QAED,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QACrD,IAAI,OAAO,EAAE,OAAO;YAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QACxD,IAAI,OAAO,EAAE,GAAG;YAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5C,IAAI,OAAO,EAAE,IAAI;YAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/C,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAe;QACtC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACrE,gDAAgD;YAChD,8CAA8C;YAC9C,OAAO;gBACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE;gBACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;gBACxD,EAAE,IAAI,EAAE,2DAA2D,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;gBACpG,EAAE,IAAI,EAAE,uDAAuD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC5F,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1D,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;gBAClE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;aAClD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -16,7 +16,6 @@ describe('TribeCRMClient', () => {
16
16
  authUrl: 'https://auth-test.tribecrm.nl',
17
17
  clientId: 'test-client-id',
18
18
  clientSecret: 'test-client-secret',
19
- organizationId: 'test-org-id',
20
19
  mode: 'read-write',
21
20
  };
22
21
  // Mock axios.create to return a mocked instance