@memberjunction/actions 2.60.0 → 2.61.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/dist/generic/BaseOAuthAction.d.ts +65 -0
- package/dist/generic/BaseOAuthAction.d.ts.map +1 -0
- package/dist/generic/BaseOAuthAction.js +192 -0
- package/dist/generic/BaseOAuthAction.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BaseAction } from './BaseAction';
|
|
2
|
+
import { ActionParam } from '@memberjunction/actions-base';
|
|
3
|
+
import { CompanyIntegrationEntity, IntegrationEntity } from '@memberjunction/core-entities';
|
|
4
|
+
import { ActionResultSimple } from '@memberjunction/actions-base';
|
|
5
|
+
/**
|
|
6
|
+
* Base class for actions that require OAuth authentication.
|
|
7
|
+
* Provides common OAuth token management functionality including retrieval,
|
|
8
|
+
* refresh, and error handling.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class BaseOAuthAction extends BaseAction {
|
|
11
|
+
private _metadata;
|
|
12
|
+
protected _companyIntegration: CompanyIntegrationEntity | null;
|
|
13
|
+
protected _integration: IntegrationEntity | null;
|
|
14
|
+
/**
|
|
15
|
+
* OAuth-specific parameters that all OAuth actions should include
|
|
16
|
+
*/
|
|
17
|
+
protected get oauthParams(): ActionParam[];
|
|
18
|
+
/**
|
|
19
|
+
* Initialize OAuth connection by loading integration details
|
|
20
|
+
*/
|
|
21
|
+
protected initializeOAuth(companyIntegrationId: string): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the current access token
|
|
24
|
+
*/
|
|
25
|
+
protected getAccessToken(): string | null;
|
|
26
|
+
/**
|
|
27
|
+
* Get the refresh token
|
|
28
|
+
*/
|
|
29
|
+
protected getRefreshToken(): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Check if the current token is expired
|
|
32
|
+
*/
|
|
33
|
+
protected isTokenExpired(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Refresh the access token using the refresh token.
|
|
36
|
+
* Must be implemented by platform-specific subclasses.
|
|
37
|
+
*/
|
|
38
|
+
protected abstract refreshAccessToken(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Make an authenticated API request with automatic retry on auth failure
|
|
41
|
+
*/
|
|
42
|
+
protected makeAuthenticatedRequest<T>(requestFn: (token: string) => Promise<T>, retryOnAuthFailure?: boolean): Promise<T>;
|
|
43
|
+
/**
|
|
44
|
+
* Determine if an error is an authentication error.
|
|
45
|
+
* Can be overridden by subclasses for platform-specific error detection.
|
|
46
|
+
*/
|
|
47
|
+
protected isAuthError(error: any): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Update stored tokens after refresh
|
|
50
|
+
*/
|
|
51
|
+
protected updateStoredTokens(accessToken: string, refreshToken?: string, expiresIn?: number): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Get custom attributes from company integration
|
|
54
|
+
*/
|
|
55
|
+
protected getCustomAttribute(attributeNumber: 1 | 2 | 3 | 4 | 5): string | null;
|
|
56
|
+
/**
|
|
57
|
+
* Set custom attributes in company integration
|
|
58
|
+
*/
|
|
59
|
+
protected setCustomAttribute(attributeNumber: 1 | 2 | 3 | 4 | 5, value: string): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Handle OAuth-specific errors
|
|
62
|
+
*/
|
|
63
|
+
protected handleOAuthError(error: any): ActionResultSimple;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=BaseOAuthAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseOAuthAction.d.ts","sourceRoot":"","sources":["../../src/generic/BaseOAuthAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAgC,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAE1H,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AACH,8BAAsB,eAAgB,SAAQ,UAAU;IACpD,OAAO,CAAC,SAAS,CAA4B;IAC7C,SAAS,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IACtE,SAAS,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAExD;;OAEG;IACH,SAAS,KAAK,WAAW,IAAI,WAAW,EAAE,CAQzC;IAED;;OAEG;cACa,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkC/E;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1C;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,OAAO;IAanC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtD;;OAEG;cACa,wBAAwB,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACxC,kBAAkB,GAAE,OAAc,GACnC,OAAO,CAAC,CAAC,CAAC;IA0Bb;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAuB1C;;OAEG;cACa,kBAAkB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;IAO/E;;OAEG;cACa,kBAAkB,CAC9B,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAClC,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,kBAAkB;CAgB7D"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseOAuthAction = void 0;
|
|
4
|
+
const BaseAction_1 = require("./BaseAction");
|
|
5
|
+
const core_1 = require("@memberjunction/core");
|
|
6
|
+
/**
|
|
7
|
+
* Base class for actions that require OAuth authentication.
|
|
8
|
+
* Provides common OAuth token management functionality including retrieval,
|
|
9
|
+
* refresh, and error handling.
|
|
10
|
+
*/
|
|
11
|
+
class BaseOAuthAction extends BaseAction_1.BaseAction {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this._metadata = new core_1.Metadata();
|
|
15
|
+
this._companyIntegration = null;
|
|
16
|
+
this._integration = null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* OAuth-specific parameters that all OAuth actions should include
|
|
20
|
+
*/
|
|
21
|
+
get oauthParams() {
|
|
22
|
+
return [
|
|
23
|
+
{
|
|
24
|
+
Name: 'CompanyIntegrationID',
|
|
25
|
+
Type: 'Input',
|
|
26
|
+
Value: null
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Initialize OAuth connection by loading integration details
|
|
32
|
+
*/
|
|
33
|
+
async initializeOAuth(companyIntegrationId) {
|
|
34
|
+
try {
|
|
35
|
+
// Load company integration
|
|
36
|
+
const ci = await this._metadata.GetEntityObject('Company Integrations');
|
|
37
|
+
if (!ci) {
|
|
38
|
+
throw new Error('Failed to create CompanyIntegration entity object');
|
|
39
|
+
}
|
|
40
|
+
if (!await ci.Load(companyIntegrationId)) {
|
|
41
|
+
throw new Error(`Company integration not found: ${companyIntegrationId}`);
|
|
42
|
+
}
|
|
43
|
+
this._companyIntegration = ci;
|
|
44
|
+
// Load integration details
|
|
45
|
+
const integration = await this._metadata.GetEntityObject('Integrations');
|
|
46
|
+
if (!integration || !await integration.Load(ci.IntegrationID)) {
|
|
47
|
+
throw new Error(`Integration not found: ${ci.IntegrationID}`);
|
|
48
|
+
}
|
|
49
|
+
this._integration = integration;
|
|
50
|
+
// Check if token is expired
|
|
51
|
+
if (this.isTokenExpired()) {
|
|
52
|
+
await this.refreshAccessToken();
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
(0, core_1.LogError)(`Failed to initialize OAuth: ${error.message}`);
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the current access token
|
|
63
|
+
*/
|
|
64
|
+
getAccessToken() {
|
|
65
|
+
return this._companyIntegration?.AccessToken || null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get the refresh token
|
|
69
|
+
*/
|
|
70
|
+
getRefreshToken() {
|
|
71
|
+
return this._companyIntegration?.RefreshToken || null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if the current token is expired
|
|
75
|
+
*/
|
|
76
|
+
isTokenExpired() {
|
|
77
|
+
if (!this._companyIntegration?.TokenExpirationDate) {
|
|
78
|
+
return false; // No expiration date means token doesn't expire
|
|
79
|
+
}
|
|
80
|
+
const now = new Date();
|
|
81
|
+
const expiration = new Date(this._companyIntegration.TokenExpirationDate);
|
|
82
|
+
// Consider token expired if it expires in the next 5 minutes
|
|
83
|
+
const bufferTime = 5 * 60 * 1000; // 5 minutes in milliseconds
|
|
84
|
+
return (expiration.getTime() - bufferTime) <= now.getTime();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Make an authenticated API request with automatic retry on auth failure
|
|
88
|
+
*/
|
|
89
|
+
async makeAuthenticatedRequest(requestFn, retryOnAuthFailure = true) {
|
|
90
|
+
const token = this.getAccessToken();
|
|
91
|
+
if (!token) {
|
|
92
|
+
throw new Error('No access token available');
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
return await requestFn(token);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Check if error is due to invalid/expired token
|
|
99
|
+
if (retryOnAuthFailure && this.isAuthError(error)) {
|
|
100
|
+
(0, core_1.LogStatus)('Token appears invalid, attempting refresh...');
|
|
101
|
+
await this.refreshAccessToken();
|
|
102
|
+
const newToken = this.getAccessToken();
|
|
103
|
+
if (!newToken) {
|
|
104
|
+
throw new Error('Failed to refresh access token');
|
|
105
|
+
}
|
|
106
|
+
// Retry with new token
|
|
107
|
+
return await requestFn(newToken);
|
|
108
|
+
}
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Determine if an error is an authentication error.
|
|
114
|
+
* Can be overridden by subclasses for platform-specific error detection.
|
|
115
|
+
*/
|
|
116
|
+
isAuthError(error) {
|
|
117
|
+
// Common OAuth error indicators
|
|
118
|
+
const authErrorPatterns = [
|
|
119
|
+
'unauthorized',
|
|
120
|
+
'invalid_token',
|
|
121
|
+
'expired_token',
|
|
122
|
+
'invalid_grant',
|
|
123
|
+
'401',
|
|
124
|
+
'forbidden',
|
|
125
|
+
'authentication'
|
|
126
|
+
];
|
|
127
|
+
const errorMessage = error?.message?.toLowerCase() || '';
|
|
128
|
+
const errorCode = error?.code?.toLowerCase() || '';
|
|
129
|
+
const statusCode = error?.response?.status || error?.statusCode;
|
|
130
|
+
return statusCode === 401 ||
|
|
131
|
+
statusCode === 403 ||
|
|
132
|
+
authErrorPatterns.some(pattern => errorMessage.includes(pattern) || errorCode.includes(pattern));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Update stored tokens after refresh
|
|
136
|
+
*/
|
|
137
|
+
async updateStoredTokens(accessToken, refreshToken, expiresIn) {
|
|
138
|
+
if (!this._companyIntegration) {
|
|
139
|
+
throw new Error('Company integration not initialized');
|
|
140
|
+
}
|
|
141
|
+
this._companyIntegration.AccessToken = accessToken;
|
|
142
|
+
if (refreshToken) {
|
|
143
|
+
this._companyIntegration.RefreshToken = refreshToken;
|
|
144
|
+
}
|
|
145
|
+
if (expiresIn) {
|
|
146
|
+
const expirationDate = new Date();
|
|
147
|
+
expirationDate.setSeconds(expirationDate.getSeconds() + expiresIn);
|
|
148
|
+
this._companyIntegration.TokenExpirationDate = expirationDate;
|
|
149
|
+
}
|
|
150
|
+
await this._companyIntegration.Save();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get custom attributes from company integration
|
|
154
|
+
*/
|
|
155
|
+
getCustomAttribute(attributeNumber) {
|
|
156
|
+
if (!this._companyIntegration)
|
|
157
|
+
return null;
|
|
158
|
+
const attributeKey = `CustomAttribute${attributeNumber}`;
|
|
159
|
+
return this._companyIntegration[attributeKey] || null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Set custom attributes in company integration
|
|
163
|
+
*/
|
|
164
|
+
async setCustomAttribute(attributeNumber, value) {
|
|
165
|
+
if (!this._companyIntegration) {
|
|
166
|
+
throw new Error('Company integration not initialized');
|
|
167
|
+
}
|
|
168
|
+
const attributeKey = `CustomAttribute${attributeNumber}`;
|
|
169
|
+
this._companyIntegration[attributeKey] = value;
|
|
170
|
+
await this._companyIntegration.Save();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Handle OAuth-specific errors
|
|
174
|
+
*/
|
|
175
|
+
handleOAuthError(error) {
|
|
176
|
+
if (this.isAuthError(error)) {
|
|
177
|
+
return {
|
|
178
|
+
Success: false,
|
|
179
|
+
Message: 'Authentication failed. Token may be expired or revoked.',
|
|
180
|
+
ResultCode: 'INVALID_TOKEN'
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
// Let base class handle other errors
|
|
184
|
+
return {
|
|
185
|
+
Success: false,
|
|
186
|
+
Message: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
187
|
+
ResultCode: 'ERROR'
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.BaseOAuthAction = BaseOAuthAction;
|
|
192
|
+
//# sourceMappingURL=BaseOAuthAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseOAuthAction.js","sourceRoot":"","sources":["../../src/generic/BaseOAuthAction.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './generic/BaseAction';
|
|
2
2
|
export * from './generic/BaseActionFilter';
|
|
3
|
+
export * from './generic/BaseOAuthAction';
|
|
3
4
|
export * from './generic/ActionEngine';
|
|
4
5
|
export * from './generic/ActionEntity.server';
|
|
5
6
|
export * from './entity-actions/EntityActionEngine';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./generic/BaseAction"), exports);
|
|
18
18
|
__exportStar(require("./generic/BaseActionFilter"), exports);
|
|
19
|
+
__exportStar(require("./generic/BaseOAuthAction"), exports);
|
|
19
20
|
__exportStar(require("./generic/ActionEngine"), exports);
|
|
20
21
|
__exportStar(require("./generic/ActionEntity.server"), exports);
|
|
21
22
|
__exportStar(require("./entity-actions/EntityActionEngine"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,yDAAuC;AACvC,gEAA8C;AAE9C,sEAAoD;AACpD,+EAA6D"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,4DAA0C;AAC1C,yDAAuC;AACvC,gEAA8C;AAE9C,sEAAoD;AACpD,+EAA6D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/actions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.61.0",
|
|
4
4
|
"description": "Main library for MemberJunction Actions. This library is only intended to be imported on the server side.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"typescript": "^5.4.5"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@memberjunction/global": "2.
|
|
23
|
-
"@memberjunction/core": "2.
|
|
24
|
-
"@memberjunction/actions-base": "2.
|
|
25
|
-
"@memberjunction/core-entities": "2.
|
|
26
|
-
"@memberjunction/ai": "2.
|
|
27
|
-
"@memberjunction/ai-core-plus": "2.
|
|
28
|
-
"@memberjunction/aiengine": "2.
|
|
29
|
-
"@memberjunction/ai-prompts": "2.
|
|
30
|
-
"@memberjunction/doc-utils": "2.
|
|
22
|
+
"@memberjunction/global": "2.61.0",
|
|
23
|
+
"@memberjunction/core": "2.61.0",
|
|
24
|
+
"@memberjunction/actions-base": "2.61.0",
|
|
25
|
+
"@memberjunction/core-entities": "2.61.0",
|
|
26
|
+
"@memberjunction/ai": "2.61.0",
|
|
27
|
+
"@memberjunction/ai-core-plus": "2.61.0",
|
|
28
|
+
"@memberjunction/aiengine": "2.61.0",
|
|
29
|
+
"@memberjunction/ai-prompts": "2.61.0",
|
|
30
|
+
"@memberjunction/doc-utils": "2.61.0"
|
|
31
31
|
}
|
|
32
32
|
}
|