@agility/management-sdk 0.1.3 → 0.1.4-beta.1
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/.cursor/api-documentation-manifest.md +275 -0
- package/.cursor/api-functions-analysis.md +111 -0
- package/.cursor/docs-final-check.md +269 -0
- package/.cursor/manifest.md +153 -0
- package/.env +92 -0
- package/README.md +219 -352
- package/dist/apiClient.d.ts +86 -0
- package/dist/apiClient.js +229 -0
- package/dist/apiClient.js.map +1 -0
- package/dist/apiMethods/assetMethods.d.ts +28 -6
- package/dist/apiMethods/assetMethods.js +224 -29
- package/dist/apiMethods/assetMethods.js.map +1 -0
- package/dist/apiMethods/authMethods.d.ts +239 -0
- package/dist/apiMethods/authMethods.js +604 -0
- package/dist/apiMethods/batchMethods.d.ts +32 -1
- package/dist/apiMethods/batchMethods.js +241 -11
- package/dist/apiMethods/batchMethods.js.map +1 -0
- package/dist/apiMethods/clientInstance.d.ts +58 -4
- package/dist/apiMethods/clientInstance.js +311 -44
- package/dist/apiMethods/clientInstance.js.map +1 -0
- package/dist/apiMethods/containerMethods.d.ts +15 -7
- package/dist/apiMethods/containerMethods.js +70 -38
- package/dist/apiMethods/containerMethods.js.map +1 -0
- package/dist/apiMethods/contentMethods.d.ts +17 -10
- package/dist/apiMethods/contentMethods.js +169 -70
- package/dist/apiMethods/contentMethods.js.map +1 -0
- package/dist/apiMethods/instanceMethods.d.ts +9 -0
- package/dist/apiMethods/instanceMethods.js +69 -0
- package/dist/apiMethods/instanceMethods.js.map +1 -0
- package/dist/apiMethods/instanceUserMethods.d.ts +3 -3
- package/dist/apiMethods/instanceUserMethods.js +18 -18
- package/dist/apiMethods/instanceUserMethods.js.map +1 -0
- package/dist/apiMethods/modelMethods.d.ts +6 -5
- package/dist/apiMethods/modelMethods.js +46 -26
- package/dist/apiMethods/modelMethods.js.map +1 -0
- package/dist/apiMethods/pageMethods.d.ts +21 -9
- package/dist/apiMethods/pageMethods.js +278 -76
- package/dist/apiMethods/pageMethods.js.map +1 -0
- package/dist/apiMethods/serverUserMethods.d.ts +10 -0
- package/dist/apiMethods/serverUserMethods.js +89 -0
- package/dist/apiMethods/serverUserMethods.js.map +1 -0
- package/dist/apiMethods/webhookMethods.d.ts +12 -0
- package/dist/apiMethods/webhookMethods.js +131 -0
- package/dist/apiMethods/webhookMethods.js.map +1 -0
- package/dist/enums/assetGroupingType.d.ts +3 -0
- package/dist/enums/assetGroupingType.js +7 -0
- package/dist/enums/assetGroupingType.js.map +1 -0
- package/dist/enums/batchItemType.d.ts +7 -0
- package/dist/enums/batchItemType.js +11 -0
- package/dist/enums/batchOperationType.js +1 -1
- package/dist/enums/batchOperationType.js.map +1 -0
- package/dist/enums/batchState..js +1 -1
- package/dist/enums/batchState.d.ts +7 -0
- package/dist/enums/batchState.js +12 -0
- package/dist/enums/batchState.js.map +1 -0
- package/dist/enums/pageItemTemplateType.d.ts +4 -0
- package/dist/enums/pageItemTemplateType.js +8 -0
- package/dist/enums/pageItemTemplateType.js.map +1 -0
- package/dist/enums/workflowOperationType.d.ts +26 -0
- package/dist/enums/workflowOperationType.js +30 -0
- package/dist/errors/exception.d.ts +4 -0
- package/dist/errors/exception.js +11 -0
- package/dist/errors/exception.js.map +1 -0
- package/dist/index.d.ts +41 -9
- package/dist/index.js +48 -10
- package/dist/index.js.map +1 -0
- package/dist/models/assetContainer.d.ts +7 -0
- package/dist/models/assetContainer.js +9 -0
- package/dist/models/assetGalleries.d.ts +5 -0
- package/dist/models/assetGalleries.js +9 -0
- package/dist/models/assetMediaGrouping.d.ts +17 -0
- package/dist/models/assetMediaGrouping.js +9 -0
- package/dist/models/assetMediaGroupingMetaData.d.ts +4 -0
- package/dist/models/assetMediaGroupingMetaData.js +9 -0
- package/dist/models/authTokens.d.ts +73 -0
- package/dist/models/authTokens.js +2 -0
- package/dist/models/batchItem.d.ts +1 -0
- package/dist/models/batchRequests.d.ts +67 -0
- package/dist/models/batchRequests.js +2 -0
- package/dist/models/batchTypes.d.ts +34 -0
- package/dist/models/batchTypes.js +2 -0
- package/dist/models/container.d.ts +2 -1
- package/dist/models/contentDefinitionTypeID.d.ts +17 -0
- package/dist/models/contentDefinitionTypeID.js +21 -0
- package/dist/models/contentItemHistory.d.ts +20 -0
- package/dist/models/contentItemHistory.js +15 -0
- package/dist/models/contentListFilterModel.d.ts +26 -0
- package/dist/models/contentListFilterModel.js +33 -0
- package/dist/models/contentSectionDefaultModule.d.ts +7 -0
- package/dist/models/contentSectionDefaultModule.js +9 -0
- package/dist/models/contentSectionDefinition.d.ts +35 -0
- package/dist/models/contentSectionDefinition.js +9 -0
- package/dist/models/exception.js +2 -0
- package/dist/models/itemComments.d.ts +14 -0
- package/dist/models/itemComments.js +15 -0
- package/dist/models/listParams.d.ts +9 -0
- package/dist/models/listParams.js +16 -0
- package/dist/models/locales.d.ts +3 -0
- package/dist/models/locales.js +30 -0
- package/dist/models/options.d.ts +2 -5
- package/dist/models/options.js +0 -19
- package/dist/models/pageHistory.d.ts +21 -0
- package/dist/models/pageHistory.js +15 -0
- package/dist/models/pageModel.d.ts +14 -0
- package/dist/models/pageModel.js +9 -0
- package/dist/models/serverUser.d.ts +21 -0
- package/dist/models/serverUser.js +9 -0
- package/dist/models/sharedModule.d.ts +7 -0
- package/dist/models/sharedModule.js +9 -0
- package/dist/models/webhook.d.ts +9 -0
- package/dist/models/webhook.js +9 -0
- package/dist/models/websiteListing.d.ts +16 -0
- package/dist/models/websiteListing.js +9 -0
- package/dist/tests/authHelper.d.ts +2 -0
- package/dist/tests/authHelper.js +14 -0
- package/dist/tests/authHelper.js.map +1 -0
- package/dist/tests/config/apiClient.config.d.ts +16 -0
- package/dist/tests/config/apiClient.config.js +84 -0
- package/dist/tests/config/apiClient.config.js.map +1 -0
- package/dist/tests/config/test.config.d.ts +24 -0
- package/dist/tests/config/test.config.js +47 -0
- package/dist/tests/config/test.config.js.map +1 -0
- package/dist/tokenStorage.d.ts +72 -0
- package/dist/tokenStorage.js +366 -0
- package/dist/types/apiResponse.d.ts +13 -0
- package/dist/types/apiResponse.js +3 -0
- package/dist/types/apiResponse.js.map +1 -0
- package/dist/types/assetContainer.d.ts +7 -0
- package/dist/types/assetContainer.js +3 -0
- package/dist/types/assetContainer.js.map +1 -0
- package/dist/types/assetGalleries.d.ts +5 -0
- package/dist/types/assetGalleries.js +3 -0
- package/dist/types/assetGalleries.js.map +1 -0
- package/dist/types/assetMediaGrouping.d.ts +17 -0
- package/dist/types/assetMediaGrouping.js +3 -0
- package/dist/types/assetMediaGrouping.js.map +1 -0
- package/dist/types/assetMediaGroupingMetaData.d.ts +4 -0
- package/dist/types/assetMediaGroupingMetaData.js +3 -0
- package/dist/types/assetMediaGroupingMetaData.js.map +1 -0
- package/dist/types/batch.d.ts +29 -0
- package/dist/types/batch.js +3 -0
- package/dist/types/batch.js.map +1 -0
- package/dist/types/batchItem.d.ts +13 -0
- package/dist/types/batchItem.js +3 -0
- package/dist/types/batchItem.js.map +1 -0
- package/dist/types/container.d.ts +47 -0
- package/dist/types/container.js +3 -0
- package/dist/types/container.js.map +1 -0
- package/dist/types/contentItem.d.ts +37 -0
- package/dist/types/contentItem.js +3 -0
- package/dist/types/contentItem.js.map +1 -0
- package/dist/types/contentItemHistory.d.ts +20 -0
- package/dist/types/contentItemHistory.js +3 -0
- package/dist/types/contentItemHistory.js.map +1 -0
- package/dist/types/contentListFilterModel.d.ts +26 -0
- package/dist/types/contentListFilterModel.js +3 -0
- package/dist/types/contentListFilterModel.js.map +1 -0
- package/dist/types/contentSectionDefaultModule.d.ts +7 -0
- package/dist/types/contentSectionDefaultModule.js +3 -0
- package/dist/types/contentSectionDefaultModule.js.map +1 -0
- package/dist/types/contentSectionDefinition.d.ts +35 -0
- package/dist/types/contentSectionDefinition.js +3 -0
- package/dist/types/contentSectionDefinition.js.map +1 -0
- package/dist/types/contentViewColumn.d.ts +8 -0
- package/dist/types/contentViewColumn.js +3 -0
- package/dist/types/contentViewColumn.js.map +1 -0
- package/dist/types/instanceRole.d.ts +7 -0
- package/dist/types/instanceRole.js +3 -0
- package/dist/types/instanceRole.js.map +1 -0
- package/dist/types/instanceUser.d.ts +14 -0
- package/dist/types/instanceUser.js +3 -0
- package/dist/types/instanceUser.js.map +1 -0
- package/dist/types/itemComments.d.ts +14 -0
- package/dist/types/itemComments.js +3 -0
- package/dist/types/itemComments.js.map +1 -0
- package/dist/types/listParams.d.ts +9 -0
- package/dist/types/listParams.js +3 -0
- package/dist/types/listParams.js.map +1 -0
- package/dist/types/locales.d.ts +1 -0
- package/dist/types/locales.js +3 -0
- package/dist/types/locales.js.map +1 -0
- package/dist/types/media.d.ts +30 -0
- package/dist/types/media.js +3 -0
- package/dist/types/media.js.map +1 -0
- package/dist/types/model.d.ts +30 -0
- package/dist/types/model.js +3 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types/notification.d.ts +13 -0
- package/dist/types/notification.js +3 -0
- package/dist/types/notification.js.map +1 -0
- package/dist/types/options.d.ts +7 -0
- package/dist/types/options.js +3 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/pageHistory.d.ts +21 -0
- package/dist/types/pageHistory.js +3 -0
- package/dist/types/pageHistory.js.map +1 -0
- package/dist/types/pageItem.d.ts +56 -0
- package/dist/types/pageItem.js +3 -0
- package/dist/types/pageItem.js.map +1 -0
- package/dist/types/pageModel.d.ts +14 -0
- package/dist/types/pageModel.js +3 -0
- package/dist/types/pageModel.js.map +1 -0
- package/dist/types/serverUser.d.ts +21 -0
- package/dist/types/serverUser.js +3 -0
- package/dist/types/serverUser.js.map +1 -0
- package/dist/types/sharedModule.d.ts +7 -0
- package/dist/types/sharedModule.js +3 -0
- package/dist/types/sharedModule.js.map +1 -0
- package/dist/types/sitemap.d.ts +20 -0
- package/dist/types/sitemap.js +3 -0
- package/dist/types/sitemap.js.map +1 -0
- package/dist/types/tokenResponseData.d.ts +10 -0
- package/dist/types/tokenResponseData.js +3 -0
- package/dist/types/tokenResponseData.js.map +1 -0
- package/dist/types/webhook.d.ts +9 -0
- package/dist/types/webhook.js +3 -0
- package/dist/types/webhook.js.map +1 -0
- package/dist/types/websiteListing.d.ts +16 -0
- package/dist/types/websiteListing.js +3 -0
- package/dist/types/websiteListing.js.map +1 -0
- package/dist/types/websiteUser.d.ts +22 -0
- package/dist/types/websiteUser.js +3 -0
- package/dist/types/websiteUser.js.map +1 -0
- package/docs/asset-methods.md +382 -0
- package/docs/auth.md +594 -0
- package/docs/batch-methods.md +244 -0
- package/docs/cicd.md +607 -0
- package/docs/container-methods.md +268 -0
- package/docs/content-methods.md +423 -0
- package/docs/instance-methods.md +105 -0
- package/docs/instance-user-methods.md +231 -0
- package/docs/model-methods.md +434 -0
- package/docs/multi-instance-operations.md +192 -0
- package/docs/page-methods.md +671 -0
- package/docs/server-user-methods.md +280 -0
- package/docs/webhook-methods.md +452 -0
- package/package.json +14 -10
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ContentMethods } from "./apiMethods/contentMethods";
|
|
2
|
+
import { AssetMethods } from "./apiMethods/assetMethods";
|
|
3
|
+
import { BatchMethods } from "./apiMethods/batchMethods";
|
|
4
|
+
import { ContainerMethods } from "./apiMethods/containerMethods";
|
|
5
|
+
import { InstanceUserMethods } from "./apiMethods/instanceUserMethods";
|
|
6
|
+
import { ModelMethods } from "./apiMethods/modelMethods";
|
|
7
|
+
import { PageMethods } from "./apiMethods/pageMethods";
|
|
8
|
+
import { Options } from "./models/options";
|
|
9
|
+
import { ServerUserMethods } from "./apiMethods/serverUserMethods";
|
|
10
|
+
import { WebhookMethods } from "./apiMethods/webhookMethods";
|
|
11
|
+
import { InstanceMethods } from "./apiMethods/instanceMethods";
|
|
12
|
+
export declare class ApiClient {
|
|
13
|
+
_options: Options;
|
|
14
|
+
contentMethods: ContentMethods;
|
|
15
|
+
assetMethods: AssetMethods;
|
|
16
|
+
batchMethods: BatchMethods;
|
|
17
|
+
containerMethods: ContainerMethods;
|
|
18
|
+
instanceUserMethods: InstanceUserMethods;
|
|
19
|
+
instanceMethods: InstanceMethods;
|
|
20
|
+
modelMethods: ModelMethods;
|
|
21
|
+
pageMethods: PageMethods;
|
|
22
|
+
serverUserMethods: ServerUserMethods;
|
|
23
|
+
webhookMethods: WebhookMethods;
|
|
24
|
+
private _authMethods;
|
|
25
|
+
constructor(options?: Options);
|
|
26
|
+
/**
|
|
27
|
+
* Set up automatic token refresh for all method classes
|
|
28
|
+
*/
|
|
29
|
+
private setupTokenRefresh;
|
|
30
|
+
/**
|
|
31
|
+
* Authenticate with Agility CMS using OAuth flow
|
|
32
|
+
* This method handles the entire OAuth authentication process internally
|
|
33
|
+
*
|
|
34
|
+
* @param options - Optional OAuth configuration for custom setup
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Simple OAuth authentication
|
|
39
|
+
* const client = new ApiClient();
|
|
40
|
+
* await client.auth();
|
|
41
|
+
*
|
|
42
|
+
* // Client is now authenticated - make API calls directly
|
|
43
|
+
* const content = await client.contentMethods.getContentItem(123, guid, locale);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
auth(options?: {
|
|
47
|
+
redirectUri?: string;
|
|
48
|
+
scope?: string;
|
|
49
|
+
region?: string;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Exchange authorization code for access tokens (part of OAuth flow)
|
|
53
|
+
* @param request - Token exchange request parameters
|
|
54
|
+
* @param region - Optional region code
|
|
55
|
+
* @returns Promise containing access and refresh tokens
|
|
56
|
+
*/
|
|
57
|
+
exchangeCodeForToken(request: {
|
|
58
|
+
code: string;
|
|
59
|
+
redirectUri: string;
|
|
60
|
+
grantType?: string;
|
|
61
|
+
}, region?: string): Promise<import(".").OAuthTokenResponse>;
|
|
62
|
+
/**
|
|
63
|
+
* Check if the client is currently authenticated
|
|
64
|
+
* @returns Promise resolving to true if authenticated with valid token
|
|
65
|
+
*/
|
|
66
|
+
isAuthenticated(): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Set the access token directly (for manual token management)
|
|
69
|
+
* Also stores token in keytar for consistency
|
|
70
|
+
* @param token - Valid access token
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const client = new ApiClient();
|
|
75
|
+
* await client.setToken('your_access_token');
|
|
76
|
+
*
|
|
77
|
+
* // Now make API calls
|
|
78
|
+
* const content = await client.contentMethods.getContentItem(123, guid, locale);
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
setToken(token: string): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Clear the current authentication token and stored tokens
|
|
84
|
+
*/
|
|
85
|
+
clearToken(): Promise<void>;
|
|
86
|
+
}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.ApiClient = void 0;
|
|
51
|
+
var contentMethods_1 = require("./apiMethods/contentMethods");
|
|
52
|
+
var assetMethods_1 = require("./apiMethods/assetMethods");
|
|
53
|
+
var batchMethods_1 = require("./apiMethods/batchMethods");
|
|
54
|
+
var containerMethods_1 = require("./apiMethods/containerMethods");
|
|
55
|
+
var instanceUserMethods_1 = require("./apiMethods/instanceUserMethods");
|
|
56
|
+
var modelMethods_1 = require("./apiMethods/modelMethods");
|
|
57
|
+
var pageMethods_1 = require("./apiMethods/pageMethods");
|
|
58
|
+
var options_1 = require("./models/options");
|
|
59
|
+
var serverUserMethods_1 = require("./apiMethods/serverUserMethods");
|
|
60
|
+
var webhookMethods_1 = require("./apiMethods/webhookMethods");
|
|
61
|
+
var instanceMethods_1 = require("./apiMethods/instanceMethods");
|
|
62
|
+
var authMethods_1 = require("./apiMethods/authMethods");
|
|
63
|
+
var exception_1 = require("./models/exception");
|
|
64
|
+
var ApiClient = /** @class */ (function () {
|
|
65
|
+
function ApiClient(options) {
|
|
66
|
+
if (options === void 0) { options = new options_1.Options(); }
|
|
67
|
+
this._options = options;
|
|
68
|
+
this.contentMethods = new contentMethods_1.ContentMethods(this._options);
|
|
69
|
+
this.assetMethods = new assetMethods_1.AssetMethods(this._options);
|
|
70
|
+
this.batchMethods = new batchMethods_1.BatchMethods(this._options);
|
|
71
|
+
this.containerMethods = new containerMethods_1.ContainerMethods(this._options);
|
|
72
|
+
this.instanceUserMethods = new instanceUserMethods_1.InstanceUserMethods(this._options);
|
|
73
|
+
this.instanceMethods = new instanceMethods_1.InstanceMethods(this._options);
|
|
74
|
+
this.modelMethods = new modelMethods_1.ModelMethods(this._options);
|
|
75
|
+
this.pageMethods = new pageMethods_1.PageMethods(this._options);
|
|
76
|
+
this.serverUserMethods = new serverUserMethods_1.ServerUserMethods(this._options);
|
|
77
|
+
this.webhookMethods = new webhookMethods_1.WebhookMethods(this._options);
|
|
78
|
+
this._authMethods = new authMethods_1.AuthMethods(this._options);
|
|
79
|
+
// Set up automatic token refresh for all method classes
|
|
80
|
+
this.setupTokenRefresh();
|
|
81
|
+
// If token is provided via options, store it in keytar
|
|
82
|
+
if (options.token) {
|
|
83
|
+
this._authMethods.setAccessToken(options.token).catch(function (error) {
|
|
84
|
+
// Log error but don't fail constructor
|
|
85
|
+
console.warn('Failed to store token in keytar:', error.message);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Set up automatic token refresh for all method classes
|
|
91
|
+
*/
|
|
92
|
+
ApiClient.prototype.setupTokenRefresh = function () {
|
|
93
|
+
var _this = this;
|
|
94
|
+
var refreshHandler = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
95
|
+
return __generator(this, function (_a) {
|
|
96
|
+
switch (_a.label) {
|
|
97
|
+
case 0: return [4 /*yield*/, this._authMethods.getValidAccessToken()];
|
|
98
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}); };
|
|
102
|
+
// Set token refresh handler on all method classes that use ClientInstance
|
|
103
|
+
this.contentMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
104
|
+
this.assetMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
105
|
+
this.batchMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
106
|
+
this.containerMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
107
|
+
this.instanceUserMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
108
|
+
this.instanceMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
109
|
+
this.modelMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
110
|
+
this.pageMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
111
|
+
this.serverUserMethods._clientInstance.setTokenRefreshHandler(refreshHandler);
|
|
112
|
+
this.webhookMethods._cleintInstance.setTokenRefreshHandler(refreshHandler);
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Authenticate with Agility CMS using OAuth flow
|
|
116
|
+
* This method handles the entire OAuth authentication process internally
|
|
117
|
+
*
|
|
118
|
+
* @param options - Optional OAuth configuration for custom setup
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* // Simple OAuth authentication
|
|
123
|
+
* const client = new ApiClient();
|
|
124
|
+
* await client.auth();
|
|
125
|
+
*
|
|
126
|
+
* // Client is now authenticated - make API calls directly
|
|
127
|
+
* const content = await client.contentMethods.getContentItem(123, guid, locale);
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
ApiClient.prototype.auth = function (options) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
+
var defaultOptions, authUrl;
|
|
133
|
+
return __generator(this, function (_a) {
|
|
134
|
+
switch (_a.label) {
|
|
135
|
+
case 0: return [4 /*yield*/, this._authMethods.isAuthenticated()];
|
|
136
|
+
case 1:
|
|
137
|
+
// Check if already authenticated with valid token
|
|
138
|
+
if (_a.sent()) {
|
|
139
|
+
return [2 /*return*/];
|
|
140
|
+
}
|
|
141
|
+
defaultOptions = {
|
|
142
|
+
redirectUri: (options === null || options === void 0 ? void 0 : options.redirectUri) || 'http://localhost:3000/auth/callback',
|
|
143
|
+
scope: (options === null || options === void 0 ? void 0 : options.scope) || 'openid profile email offline_access',
|
|
144
|
+
region: options === null || options === void 0 ? void 0 : options.region
|
|
145
|
+
};
|
|
146
|
+
authUrl = this._authMethods.generateAuthUrl(__assign(__assign({}, defaultOptions), { state: this._authMethods.generateState() }));
|
|
147
|
+
// In a real implementation, this would:
|
|
148
|
+
// - Open browser to auth URL
|
|
149
|
+
// - Start local server to handle callback
|
|
150
|
+
// - Exchange code for tokens automatically
|
|
151
|
+
throw new exception_1.Exception("OAuth flow requires manual implementation. Please visit: ".concat(authUrl, "\n\nAfter authorization, exchange the code using:\nconst tokens = await client.exchangeCodeForToken({ code: 'auth_code', redirectUri: '").concat(defaultOptions.redirectUri, "' });"));
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Exchange authorization code for access tokens (part of OAuth flow)
|
|
158
|
+
* @param request - Token exchange request parameters
|
|
159
|
+
* @param region - Optional region code
|
|
160
|
+
* @returns Promise containing access and refresh tokens
|
|
161
|
+
*/
|
|
162
|
+
ApiClient.prototype.exchangeCodeForToken = function (request, region) {
|
|
163
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
164
|
+
return __generator(this, function (_a) {
|
|
165
|
+
switch (_a.label) {
|
|
166
|
+
case 0: return [4 /*yield*/, this._authMethods.exchangeCodeForToken(request, region)];
|
|
167
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Check if the client is currently authenticated
|
|
174
|
+
* @returns Promise resolving to true if authenticated with valid token
|
|
175
|
+
*/
|
|
176
|
+
ApiClient.prototype.isAuthenticated = function () {
|
|
177
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
178
|
+
return __generator(this, function (_a) {
|
|
179
|
+
switch (_a.label) {
|
|
180
|
+
case 0: return [4 /*yield*/, this._authMethods.isAuthenticated()];
|
|
181
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Set the access token directly (for manual token management)
|
|
188
|
+
* Also stores token in keytar for consistency
|
|
189
|
+
* @param token - Valid access token
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* const client = new ApiClient();
|
|
194
|
+
* await client.setToken('your_access_token');
|
|
195
|
+
*
|
|
196
|
+
* // Now make API calls
|
|
197
|
+
* const content = await client.contentMethods.getContentItem(123, guid, locale);
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
ApiClient.prototype.setToken = function (token) {
|
|
201
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
202
|
+
return __generator(this, function (_a) {
|
|
203
|
+
switch (_a.label) {
|
|
204
|
+
case 0: return [4 /*yield*/, this._authMethods.setAccessToken(token)];
|
|
205
|
+
case 1:
|
|
206
|
+
_a.sent();
|
|
207
|
+
return [2 /*return*/];
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Clear the current authentication token and stored tokens
|
|
214
|
+
*/
|
|
215
|
+
ApiClient.prototype.clearToken = function () {
|
|
216
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
217
|
+
return __generator(this, function (_a) {
|
|
218
|
+
switch (_a.label) {
|
|
219
|
+
case 0: return [4 /*yield*/, this._authMethods.clearAuthentication()];
|
|
220
|
+
case 1:
|
|
221
|
+
_a.sent();
|
|
222
|
+
return [2 /*return*/];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
return ApiClient;
|
|
228
|
+
}());
|
|
229
|
+
exports.ApiClient = ApiClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,4DAAyD;AACzD,4DAAyD;AACzD,oEAAiE;AACjE,0EAAuE;AACvE,4DAAyD;AACzD,0DAAuD;AAEvD,sEAAmE;AACnE,gEAA6D;AAC7D,kEAA+D;AAE/D,MAAa,SAAS;IAYlB,YAAY,OAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;CAEJ;AA1BD,8BA0BC"}
|
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import { Options } from "../models/options";
|
|
2
2
|
import { ClientInstance } from "./clientInstance";
|
|
3
3
|
import { AssetMediaList, Media } from "../models/media";
|
|
4
|
+
import { assetGalleries } from "../models/assetGalleries";
|
|
5
|
+
import { assetMediaGrouping } from "../models/assetMediaGrouping";
|
|
6
|
+
import { assetContainer } from "../models/assetContainer";
|
|
4
7
|
export declare class AssetMethods {
|
|
5
8
|
_options: Options;
|
|
6
9
|
_clientInstance: ClientInstance;
|
|
7
10
|
constructor(options: Options);
|
|
8
|
-
deleteFile(mediaID: number): Promise<string>;
|
|
9
|
-
moveFile(mediaID: number, newFolder: string): Promise<Media>;
|
|
10
|
-
getMediaList(pageSize: number, recordOffset: number): Promise<AssetMediaList>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
deleteFile(mediaID: number, guid: string): Promise<string>;
|
|
12
|
+
moveFile(mediaID: number, newFolder: string, guid: string): Promise<Media>;
|
|
13
|
+
getMediaList(pageSize: number, recordOffset: number, guid: string): Promise<AssetMediaList>;
|
|
14
|
+
getGalleries(guid: string, search?: string, pageSize?: number, rowIndex?: number): Promise<assetGalleries>;
|
|
15
|
+
getGalleryById(guid: string, id: number): Promise<assetMediaGrouping>;
|
|
16
|
+
getGalleryByName(guid: string, galleryName: string): Promise<assetMediaGrouping>;
|
|
17
|
+
getDefaultContainer(guid: string): Promise<assetContainer>;
|
|
18
|
+
saveGallery(guid: string, gallery: assetMediaGrouping): Promise<assetMediaGrouping>;
|
|
19
|
+
deleteGallery(guid: string, id: number): Promise<string>;
|
|
20
|
+
getAssetByID(mediaID: number, guid: string): Promise<Media>;
|
|
21
|
+
getAssetByUrl(url: string, guid: string): Promise<Media>;
|
|
22
|
+
/**
|
|
23
|
+
* Uploads a file to the specified folder path.
|
|
24
|
+
*
|
|
25
|
+
* @param {*} formData - FormData object that axios is expecting for the Upload.
|
|
26
|
+
* @param {string} agilityFolderPath
|
|
27
|
+
* @param {string} guid
|
|
28
|
+
* @param {number} [groupingID=-1]
|
|
29
|
+
* @returns
|
|
30
|
+
* @memberof AssetMethods
|
|
31
|
+
*/
|
|
32
|
+
upload(formData: any, agilityFolderPath: string, guid: string, groupingID?: number): Promise<Media[]>;
|
|
33
|
+
createFolder(originKey: string, guid: string): Promise<Media>;
|
|
34
|
+
deleteFolder(originKey: string, guid: string, mediaID?: number): Promise<void>;
|
|
35
|
+
renameFolder(folderName: string, newFolderName: string, guid: string, mediaID?: number): Promise<void>;
|
|
14
36
|
}
|