@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.
Files changed (238) hide show
  1. package/.cursor/api-documentation-manifest.md +275 -0
  2. package/.cursor/api-functions-analysis.md +111 -0
  3. package/.cursor/docs-final-check.md +269 -0
  4. package/.cursor/manifest.md +153 -0
  5. package/.env +92 -0
  6. package/README.md +219 -352
  7. package/dist/apiClient.d.ts +86 -0
  8. package/dist/apiClient.js +229 -0
  9. package/dist/apiClient.js.map +1 -0
  10. package/dist/apiMethods/assetMethods.d.ts +28 -6
  11. package/dist/apiMethods/assetMethods.js +224 -29
  12. package/dist/apiMethods/assetMethods.js.map +1 -0
  13. package/dist/apiMethods/authMethods.d.ts +239 -0
  14. package/dist/apiMethods/authMethods.js +604 -0
  15. package/dist/apiMethods/batchMethods.d.ts +32 -1
  16. package/dist/apiMethods/batchMethods.js +241 -11
  17. package/dist/apiMethods/batchMethods.js.map +1 -0
  18. package/dist/apiMethods/clientInstance.d.ts +58 -4
  19. package/dist/apiMethods/clientInstance.js +311 -44
  20. package/dist/apiMethods/clientInstance.js.map +1 -0
  21. package/dist/apiMethods/containerMethods.d.ts +15 -7
  22. package/dist/apiMethods/containerMethods.js +70 -38
  23. package/dist/apiMethods/containerMethods.js.map +1 -0
  24. package/dist/apiMethods/contentMethods.d.ts +17 -10
  25. package/dist/apiMethods/contentMethods.js +169 -70
  26. package/dist/apiMethods/contentMethods.js.map +1 -0
  27. package/dist/apiMethods/instanceMethods.d.ts +9 -0
  28. package/dist/apiMethods/instanceMethods.js +69 -0
  29. package/dist/apiMethods/instanceMethods.js.map +1 -0
  30. package/dist/apiMethods/instanceUserMethods.d.ts +3 -3
  31. package/dist/apiMethods/instanceUserMethods.js +18 -18
  32. package/dist/apiMethods/instanceUserMethods.js.map +1 -0
  33. package/dist/apiMethods/modelMethods.d.ts +6 -5
  34. package/dist/apiMethods/modelMethods.js +46 -26
  35. package/dist/apiMethods/modelMethods.js.map +1 -0
  36. package/dist/apiMethods/pageMethods.d.ts +21 -9
  37. package/dist/apiMethods/pageMethods.js +278 -76
  38. package/dist/apiMethods/pageMethods.js.map +1 -0
  39. package/dist/apiMethods/serverUserMethods.d.ts +10 -0
  40. package/dist/apiMethods/serverUserMethods.js +89 -0
  41. package/dist/apiMethods/serverUserMethods.js.map +1 -0
  42. package/dist/apiMethods/webhookMethods.d.ts +12 -0
  43. package/dist/apiMethods/webhookMethods.js +131 -0
  44. package/dist/apiMethods/webhookMethods.js.map +1 -0
  45. package/dist/enums/assetGroupingType.d.ts +3 -0
  46. package/dist/enums/assetGroupingType.js +7 -0
  47. package/dist/enums/assetGroupingType.js.map +1 -0
  48. package/dist/enums/batchItemType.d.ts +7 -0
  49. package/dist/enums/batchItemType.js +11 -0
  50. package/dist/enums/batchOperationType.js +1 -1
  51. package/dist/enums/batchOperationType.js.map +1 -0
  52. package/dist/enums/batchState..js +1 -1
  53. package/dist/enums/batchState.d.ts +7 -0
  54. package/dist/enums/batchState.js +12 -0
  55. package/dist/enums/batchState.js.map +1 -0
  56. package/dist/enums/pageItemTemplateType.d.ts +4 -0
  57. package/dist/enums/pageItemTemplateType.js +8 -0
  58. package/dist/enums/pageItemTemplateType.js.map +1 -0
  59. package/dist/enums/workflowOperationType.d.ts +26 -0
  60. package/dist/enums/workflowOperationType.js +30 -0
  61. package/dist/errors/exception.d.ts +4 -0
  62. package/dist/errors/exception.js +11 -0
  63. package/dist/errors/exception.js.map +1 -0
  64. package/dist/index.d.ts +41 -9
  65. package/dist/index.js +48 -10
  66. package/dist/index.js.map +1 -0
  67. package/dist/models/assetContainer.d.ts +7 -0
  68. package/dist/models/assetContainer.js +9 -0
  69. package/dist/models/assetGalleries.d.ts +5 -0
  70. package/dist/models/assetGalleries.js +9 -0
  71. package/dist/models/assetMediaGrouping.d.ts +17 -0
  72. package/dist/models/assetMediaGrouping.js +9 -0
  73. package/dist/models/assetMediaGroupingMetaData.d.ts +4 -0
  74. package/dist/models/assetMediaGroupingMetaData.js +9 -0
  75. package/dist/models/authTokens.d.ts +73 -0
  76. package/dist/models/authTokens.js +2 -0
  77. package/dist/models/batchItem.d.ts +1 -0
  78. package/dist/models/batchRequests.d.ts +67 -0
  79. package/dist/models/batchRequests.js +2 -0
  80. package/dist/models/batchTypes.d.ts +34 -0
  81. package/dist/models/batchTypes.js +2 -0
  82. package/dist/models/container.d.ts +2 -1
  83. package/dist/models/contentDefinitionTypeID.d.ts +17 -0
  84. package/dist/models/contentDefinitionTypeID.js +21 -0
  85. package/dist/models/contentItemHistory.d.ts +20 -0
  86. package/dist/models/contentItemHistory.js +15 -0
  87. package/dist/models/contentListFilterModel.d.ts +26 -0
  88. package/dist/models/contentListFilterModel.js +33 -0
  89. package/dist/models/contentSectionDefaultModule.d.ts +7 -0
  90. package/dist/models/contentSectionDefaultModule.js +9 -0
  91. package/dist/models/contentSectionDefinition.d.ts +35 -0
  92. package/dist/models/contentSectionDefinition.js +9 -0
  93. package/dist/models/exception.js +2 -0
  94. package/dist/models/itemComments.d.ts +14 -0
  95. package/dist/models/itemComments.js +15 -0
  96. package/dist/models/listParams.d.ts +9 -0
  97. package/dist/models/listParams.js +16 -0
  98. package/dist/models/locales.d.ts +3 -0
  99. package/dist/models/locales.js +30 -0
  100. package/dist/models/options.d.ts +2 -5
  101. package/dist/models/options.js +0 -19
  102. package/dist/models/pageHistory.d.ts +21 -0
  103. package/dist/models/pageHistory.js +15 -0
  104. package/dist/models/pageModel.d.ts +14 -0
  105. package/dist/models/pageModel.js +9 -0
  106. package/dist/models/serverUser.d.ts +21 -0
  107. package/dist/models/serverUser.js +9 -0
  108. package/dist/models/sharedModule.d.ts +7 -0
  109. package/dist/models/sharedModule.js +9 -0
  110. package/dist/models/webhook.d.ts +9 -0
  111. package/dist/models/webhook.js +9 -0
  112. package/dist/models/websiteListing.d.ts +16 -0
  113. package/dist/models/websiteListing.js +9 -0
  114. package/dist/tests/authHelper.d.ts +2 -0
  115. package/dist/tests/authHelper.js +14 -0
  116. package/dist/tests/authHelper.js.map +1 -0
  117. package/dist/tests/config/apiClient.config.d.ts +16 -0
  118. package/dist/tests/config/apiClient.config.js +84 -0
  119. package/dist/tests/config/apiClient.config.js.map +1 -0
  120. package/dist/tests/config/test.config.d.ts +24 -0
  121. package/dist/tests/config/test.config.js +47 -0
  122. package/dist/tests/config/test.config.js.map +1 -0
  123. package/dist/tokenStorage.d.ts +72 -0
  124. package/dist/tokenStorage.js +366 -0
  125. package/dist/types/apiResponse.d.ts +13 -0
  126. package/dist/types/apiResponse.js +3 -0
  127. package/dist/types/apiResponse.js.map +1 -0
  128. package/dist/types/assetContainer.d.ts +7 -0
  129. package/dist/types/assetContainer.js +3 -0
  130. package/dist/types/assetContainer.js.map +1 -0
  131. package/dist/types/assetGalleries.d.ts +5 -0
  132. package/dist/types/assetGalleries.js +3 -0
  133. package/dist/types/assetGalleries.js.map +1 -0
  134. package/dist/types/assetMediaGrouping.d.ts +17 -0
  135. package/dist/types/assetMediaGrouping.js +3 -0
  136. package/dist/types/assetMediaGrouping.js.map +1 -0
  137. package/dist/types/assetMediaGroupingMetaData.d.ts +4 -0
  138. package/dist/types/assetMediaGroupingMetaData.js +3 -0
  139. package/dist/types/assetMediaGroupingMetaData.js.map +1 -0
  140. package/dist/types/batch.d.ts +29 -0
  141. package/dist/types/batch.js +3 -0
  142. package/dist/types/batch.js.map +1 -0
  143. package/dist/types/batchItem.d.ts +13 -0
  144. package/dist/types/batchItem.js +3 -0
  145. package/dist/types/batchItem.js.map +1 -0
  146. package/dist/types/container.d.ts +47 -0
  147. package/dist/types/container.js +3 -0
  148. package/dist/types/container.js.map +1 -0
  149. package/dist/types/contentItem.d.ts +37 -0
  150. package/dist/types/contentItem.js +3 -0
  151. package/dist/types/contentItem.js.map +1 -0
  152. package/dist/types/contentItemHistory.d.ts +20 -0
  153. package/dist/types/contentItemHistory.js +3 -0
  154. package/dist/types/contentItemHistory.js.map +1 -0
  155. package/dist/types/contentListFilterModel.d.ts +26 -0
  156. package/dist/types/contentListFilterModel.js +3 -0
  157. package/dist/types/contentListFilterModel.js.map +1 -0
  158. package/dist/types/contentSectionDefaultModule.d.ts +7 -0
  159. package/dist/types/contentSectionDefaultModule.js +3 -0
  160. package/dist/types/contentSectionDefaultModule.js.map +1 -0
  161. package/dist/types/contentSectionDefinition.d.ts +35 -0
  162. package/dist/types/contentSectionDefinition.js +3 -0
  163. package/dist/types/contentSectionDefinition.js.map +1 -0
  164. package/dist/types/contentViewColumn.d.ts +8 -0
  165. package/dist/types/contentViewColumn.js +3 -0
  166. package/dist/types/contentViewColumn.js.map +1 -0
  167. package/dist/types/instanceRole.d.ts +7 -0
  168. package/dist/types/instanceRole.js +3 -0
  169. package/dist/types/instanceRole.js.map +1 -0
  170. package/dist/types/instanceUser.d.ts +14 -0
  171. package/dist/types/instanceUser.js +3 -0
  172. package/dist/types/instanceUser.js.map +1 -0
  173. package/dist/types/itemComments.d.ts +14 -0
  174. package/dist/types/itemComments.js +3 -0
  175. package/dist/types/itemComments.js.map +1 -0
  176. package/dist/types/listParams.d.ts +9 -0
  177. package/dist/types/listParams.js +3 -0
  178. package/dist/types/listParams.js.map +1 -0
  179. package/dist/types/locales.d.ts +1 -0
  180. package/dist/types/locales.js +3 -0
  181. package/dist/types/locales.js.map +1 -0
  182. package/dist/types/media.d.ts +30 -0
  183. package/dist/types/media.js +3 -0
  184. package/dist/types/media.js.map +1 -0
  185. package/dist/types/model.d.ts +30 -0
  186. package/dist/types/model.js +3 -0
  187. package/dist/types/model.js.map +1 -0
  188. package/dist/types/notification.d.ts +13 -0
  189. package/dist/types/notification.js +3 -0
  190. package/dist/types/notification.js.map +1 -0
  191. package/dist/types/options.d.ts +7 -0
  192. package/dist/types/options.js +3 -0
  193. package/dist/types/options.js.map +1 -0
  194. package/dist/types/pageHistory.d.ts +21 -0
  195. package/dist/types/pageHistory.js +3 -0
  196. package/dist/types/pageHistory.js.map +1 -0
  197. package/dist/types/pageItem.d.ts +56 -0
  198. package/dist/types/pageItem.js +3 -0
  199. package/dist/types/pageItem.js.map +1 -0
  200. package/dist/types/pageModel.d.ts +14 -0
  201. package/dist/types/pageModel.js +3 -0
  202. package/dist/types/pageModel.js.map +1 -0
  203. package/dist/types/serverUser.d.ts +21 -0
  204. package/dist/types/serverUser.js +3 -0
  205. package/dist/types/serverUser.js.map +1 -0
  206. package/dist/types/sharedModule.d.ts +7 -0
  207. package/dist/types/sharedModule.js +3 -0
  208. package/dist/types/sharedModule.js.map +1 -0
  209. package/dist/types/sitemap.d.ts +20 -0
  210. package/dist/types/sitemap.js +3 -0
  211. package/dist/types/sitemap.js.map +1 -0
  212. package/dist/types/tokenResponseData.d.ts +10 -0
  213. package/dist/types/tokenResponseData.js +3 -0
  214. package/dist/types/tokenResponseData.js.map +1 -0
  215. package/dist/types/webhook.d.ts +9 -0
  216. package/dist/types/webhook.js +3 -0
  217. package/dist/types/webhook.js.map +1 -0
  218. package/dist/types/websiteListing.d.ts +16 -0
  219. package/dist/types/websiteListing.js +3 -0
  220. package/dist/types/websiteListing.js.map +1 -0
  221. package/dist/types/websiteUser.d.ts +22 -0
  222. package/dist/types/websiteUser.js +3 -0
  223. package/dist/types/websiteUser.js.map +1 -0
  224. package/docs/asset-methods.md +382 -0
  225. package/docs/auth.md +594 -0
  226. package/docs/batch-methods.md +244 -0
  227. package/docs/cicd.md +607 -0
  228. package/docs/container-methods.md +268 -0
  229. package/docs/content-methods.md +423 -0
  230. package/docs/instance-methods.md +105 -0
  231. package/docs/instance-user-methods.md +231 -0
  232. package/docs/model-methods.md +434 -0
  233. package/docs/multi-instance-operations.md +192 -0
  234. package/docs/page-methods.md +671 -0
  235. package/docs/server-user-methods.md +280 -0
  236. package/docs/webhook-methods.md +452 -0
  237. package/package.json +14 -10
  238. 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
- getAssetByID(mediaID: number): Promise<Media>;
12
- getAssetByUrl(url: string): Promise<Media>;
13
- upload(formData: FormData, agilityFolderPath: string, groupingID?: number): Promise<Media[]>;
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
  }