@agility/management-sdk 0.1.2 → 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 (251) 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 +346 -74
  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 +324 -42
  17. package/dist/apiMethods/batchMethods.js.map +1 -0
  18. package/dist/apiMethods/clientInstance.d.ts +58 -4
  19. package/dist/apiMethods/clientInstance.js +383 -56
  20. package/dist/apiMethods/clientInstance.js.map +1 -0
  21. package/dist/apiMethods/containerMethods.d.ts +15 -7
  22. package/dist/apiMethods/containerMethods.js +199 -83
  23. package/dist/apiMethods/containerMethods.js.map +1 -0
  24. package/dist/apiMethods/contentMethods.d.ts +17 -10
  25. package/dist/apiMethods/contentMethods.js +432 -149
  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 +93 -39
  32. package/dist/apiMethods/instanceUserMethods.js.map +1 -0
  33. package/dist/apiMethods/modelMethods.d.ts +6 -5
  34. package/dist/apiMethods/modelMethods.js +150 -61
  35. package/dist/apiMethods/modelMethods.js.map +1 -0
  36. package/dist/apiMethods/pageMethods.d.ts +21 -9
  37. package/dist/apiMethods/pageMethods.js +500 -134
  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/batch.js +5 -2
  78. package/dist/models/batchItem.d.ts +1 -0
  79. package/dist/models/batchItem.js +5 -2
  80. package/dist/models/batchRequests.d.ts +67 -0
  81. package/dist/models/batchRequests.js +2 -0
  82. package/dist/models/batchTypes.d.ts +34 -0
  83. package/dist/models/batchTypes.js +2 -0
  84. package/dist/models/container.d.ts +2 -1
  85. package/dist/models/container.js +5 -2
  86. package/dist/models/contentDefinitionTypeID.d.ts +17 -0
  87. package/dist/models/contentDefinitionTypeID.js +21 -0
  88. package/dist/models/contentItem.js +25 -10
  89. package/dist/models/contentItemHistory.d.ts +20 -0
  90. package/dist/models/contentItemHistory.js +15 -0
  91. package/dist/models/contentListFilterModel.d.ts +26 -0
  92. package/dist/models/contentListFilterModel.js +33 -0
  93. package/dist/models/contentSectionDefaultModule.d.ts +7 -0
  94. package/dist/models/contentSectionDefaultModule.js +9 -0
  95. package/dist/models/contentSectionDefinition.d.ts +35 -0
  96. package/dist/models/contentSectionDefinition.js +9 -0
  97. package/dist/models/contentViewColumn.js +5 -2
  98. package/dist/models/exception.js +23 -5
  99. package/dist/models/instanceRole.js +5 -2
  100. package/dist/models/instanceUser.js +5 -2
  101. package/dist/models/itemComments.d.ts +14 -0
  102. package/dist/models/itemComments.js +15 -0
  103. package/dist/models/listParams.d.ts +9 -0
  104. package/dist/models/listParams.js +16 -0
  105. package/dist/models/locales.d.ts +3 -0
  106. package/dist/models/locales.js +30 -0
  107. package/dist/models/media.js +10 -4
  108. package/dist/models/model.js +10 -4
  109. package/dist/models/notification.js +5 -2
  110. package/dist/models/options.d.ts +2 -5
  111. package/dist/models/options.js +4 -20
  112. package/dist/models/pageHistory.d.ts +21 -0
  113. package/dist/models/pageHistory.js +15 -0
  114. package/dist/models/pageItem.js +30 -12
  115. package/dist/models/pageModel.d.ts +14 -0
  116. package/dist/models/pageModel.js +9 -0
  117. package/dist/models/serverUser.d.ts +21 -0
  118. package/dist/models/serverUser.js +9 -0
  119. package/dist/models/sharedModule.d.ts +7 -0
  120. package/dist/models/sharedModule.js +9 -0
  121. package/dist/models/sitemap.js +10 -4
  122. package/dist/models/webhook.d.ts +9 -0
  123. package/dist/models/webhook.js +9 -0
  124. package/dist/models/websiteListing.d.ts +16 -0
  125. package/dist/models/websiteListing.js +9 -0
  126. package/dist/models/websiteUser.js +10 -4
  127. package/dist/tests/authHelper.d.ts +2 -0
  128. package/dist/tests/authHelper.js +14 -0
  129. package/dist/tests/authHelper.js.map +1 -0
  130. package/dist/tests/config/apiClient.config.d.ts +16 -0
  131. package/dist/tests/config/apiClient.config.js +84 -0
  132. package/dist/tests/config/apiClient.config.js.map +1 -0
  133. package/dist/tests/config/test.config.d.ts +24 -0
  134. package/dist/tests/config/test.config.js +47 -0
  135. package/dist/tests/config/test.config.js.map +1 -0
  136. package/dist/tokenStorage.d.ts +72 -0
  137. package/dist/tokenStorage.js +366 -0
  138. package/dist/types/apiResponse.d.ts +13 -0
  139. package/dist/types/apiResponse.js +3 -0
  140. package/dist/types/apiResponse.js.map +1 -0
  141. package/dist/types/assetContainer.d.ts +7 -0
  142. package/dist/types/assetContainer.js +3 -0
  143. package/dist/types/assetContainer.js.map +1 -0
  144. package/dist/types/assetGalleries.d.ts +5 -0
  145. package/dist/types/assetGalleries.js +3 -0
  146. package/dist/types/assetGalleries.js.map +1 -0
  147. package/dist/types/assetMediaGrouping.d.ts +17 -0
  148. package/dist/types/assetMediaGrouping.js +3 -0
  149. package/dist/types/assetMediaGrouping.js.map +1 -0
  150. package/dist/types/assetMediaGroupingMetaData.d.ts +4 -0
  151. package/dist/types/assetMediaGroupingMetaData.js +3 -0
  152. package/dist/types/assetMediaGroupingMetaData.js.map +1 -0
  153. package/dist/types/batch.d.ts +29 -0
  154. package/dist/types/batch.js +3 -0
  155. package/dist/types/batch.js.map +1 -0
  156. package/dist/types/batchItem.d.ts +13 -0
  157. package/dist/types/batchItem.js +3 -0
  158. package/dist/types/batchItem.js.map +1 -0
  159. package/dist/types/container.d.ts +47 -0
  160. package/dist/types/container.js +3 -0
  161. package/dist/types/container.js.map +1 -0
  162. package/dist/types/contentItem.d.ts +37 -0
  163. package/dist/types/contentItem.js +3 -0
  164. package/dist/types/contentItem.js.map +1 -0
  165. package/dist/types/contentItemHistory.d.ts +20 -0
  166. package/dist/types/contentItemHistory.js +3 -0
  167. package/dist/types/contentItemHistory.js.map +1 -0
  168. package/dist/types/contentListFilterModel.d.ts +26 -0
  169. package/dist/types/contentListFilterModel.js +3 -0
  170. package/dist/types/contentListFilterModel.js.map +1 -0
  171. package/dist/types/contentSectionDefaultModule.d.ts +7 -0
  172. package/dist/types/contentSectionDefaultModule.js +3 -0
  173. package/dist/types/contentSectionDefaultModule.js.map +1 -0
  174. package/dist/types/contentSectionDefinition.d.ts +35 -0
  175. package/dist/types/contentSectionDefinition.js +3 -0
  176. package/dist/types/contentSectionDefinition.js.map +1 -0
  177. package/dist/types/contentViewColumn.d.ts +8 -0
  178. package/dist/types/contentViewColumn.js +3 -0
  179. package/dist/types/contentViewColumn.js.map +1 -0
  180. package/dist/types/instanceRole.d.ts +7 -0
  181. package/dist/types/instanceRole.js +3 -0
  182. package/dist/types/instanceRole.js.map +1 -0
  183. package/dist/types/instanceUser.d.ts +14 -0
  184. package/dist/types/instanceUser.js +3 -0
  185. package/dist/types/instanceUser.js.map +1 -0
  186. package/dist/types/itemComments.d.ts +14 -0
  187. package/dist/types/itemComments.js +3 -0
  188. package/dist/types/itemComments.js.map +1 -0
  189. package/dist/types/listParams.d.ts +9 -0
  190. package/dist/types/listParams.js +3 -0
  191. package/dist/types/listParams.js.map +1 -0
  192. package/dist/types/locales.d.ts +1 -0
  193. package/dist/types/locales.js +3 -0
  194. package/dist/types/locales.js.map +1 -0
  195. package/dist/types/media.d.ts +30 -0
  196. package/dist/types/media.js +3 -0
  197. package/dist/types/media.js.map +1 -0
  198. package/dist/types/model.d.ts +30 -0
  199. package/dist/types/model.js +3 -0
  200. package/dist/types/model.js.map +1 -0
  201. package/dist/types/notification.d.ts +13 -0
  202. package/dist/types/notification.js +3 -0
  203. package/dist/types/notification.js.map +1 -0
  204. package/dist/types/options.d.ts +7 -0
  205. package/dist/types/options.js +3 -0
  206. package/dist/types/options.js.map +1 -0
  207. package/dist/types/pageHistory.d.ts +21 -0
  208. package/dist/types/pageHistory.js +3 -0
  209. package/dist/types/pageHistory.js.map +1 -0
  210. package/dist/types/pageItem.d.ts +56 -0
  211. package/dist/types/pageItem.js +3 -0
  212. package/dist/types/pageItem.js.map +1 -0
  213. package/dist/types/pageModel.d.ts +14 -0
  214. package/dist/types/pageModel.js +3 -0
  215. package/dist/types/pageModel.js.map +1 -0
  216. package/dist/types/serverUser.d.ts +21 -0
  217. package/dist/types/serverUser.js +3 -0
  218. package/dist/types/serverUser.js.map +1 -0
  219. package/dist/types/sharedModule.d.ts +7 -0
  220. package/dist/types/sharedModule.js +3 -0
  221. package/dist/types/sharedModule.js.map +1 -0
  222. package/dist/types/sitemap.d.ts +20 -0
  223. package/dist/types/sitemap.js +3 -0
  224. package/dist/types/sitemap.js.map +1 -0
  225. package/dist/types/tokenResponseData.d.ts +10 -0
  226. package/dist/types/tokenResponseData.js +3 -0
  227. package/dist/types/tokenResponseData.js.map +1 -0
  228. package/dist/types/webhook.d.ts +9 -0
  229. package/dist/types/webhook.js +3 -0
  230. package/dist/types/webhook.js.map +1 -0
  231. package/dist/types/websiteListing.d.ts +16 -0
  232. package/dist/types/websiteListing.js +3 -0
  233. package/dist/types/websiteListing.js.map +1 -0
  234. package/dist/types/websiteUser.d.ts +22 -0
  235. package/dist/types/websiteUser.js +3 -0
  236. package/dist/types/websiteUser.js.map +1 -0
  237. package/docs/asset-methods.md +382 -0
  238. package/docs/auth.md +594 -0
  239. package/docs/batch-methods.md +244 -0
  240. package/docs/cicd.md +607 -0
  241. package/docs/container-methods.md +268 -0
  242. package/docs/content-methods.md +423 -0
  243. package/docs/instance-methods.md +105 -0
  244. package/docs/instance-user-methods.md +231 -0
  245. package/docs/model-methods.md +434 -0
  246. package/docs/multi-instance-operations.md +192 -0
  247. package/docs/page-methods.md +671 -0
  248. package/docs/server-user-methods.md +280 -0
  249. package/docs/webhook-methods.md +452 -0
  250. package/package.json +14 -10
  251. package/tsconfig.json +2 -2
@@ -0,0 +1,239 @@
1
+ import { Options } from "../models/options";
2
+ import { OAuthTokenResponse, AuthUrlOptions, TokenExchangeRequest, TokenRefreshRequest, TokenValidationResponse, TokenManagerConfig, AuthState } from "../models/authTokens";
3
+ /**
4
+ * Internal authentication methods - not exposed publicly
5
+ * Handles OAuth flow and token management with secure storage
6
+ */
7
+ export declare class AuthMethods {
8
+ private _options;
9
+ private _clientInstance;
10
+ private _tokenStorage;
11
+ constructor(options: Options);
12
+ /**
13
+ * Generate OAuth authorization URL for user authentication
14
+ * @param options - Authorization URL configuration options
15
+ * @returns Complete authorization URL for user redirection
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const client = new ApiClient();
20
+ * const authUrl = client.authMethods.generateAuthUrl({
21
+ * redirectUri: 'https://yourapp.com/auth/callback',
22
+ * scope: 'openid profile email offline_access',
23
+ * state: 'random-state-string'
24
+ * });
25
+ *
26
+ * // Redirect user to authorization URL
27
+ * window.location.href = authUrl;
28
+ * ```
29
+ */
30
+ generateAuthUrl(options: AuthUrlOptions): string;
31
+ /**
32
+ * Exchange authorization code for access tokens
33
+ * Automatically stores tokens securely and sets them in Options
34
+ * @param request - Token exchange request parameters
35
+ * @returns Promise containing access and refresh tokens
36
+ */
37
+ exchangeCodeForToken(request: TokenExchangeRequest, region?: string): Promise<OAuthTokenResponse>;
38
+ /**
39
+ * Refresh an expired access token using refresh token
40
+ * Automatically updates stored tokens and Options
41
+ * @param request - Token refresh request parameters
42
+ * @returns Promise containing new access token
43
+ */
44
+ refreshAccessToken(request: TokenRefreshRequest, region?: string): Promise<OAuthTokenResponse>;
45
+ /**
46
+ * Validate an access token and get token information
47
+ * @param token - Access token to validate
48
+ * @returns Promise containing token validation information
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const client = new ApiClient();
53
+ *
54
+ * const tokenInfo = await client.authMethods.validateToken('your_access_token');
55
+ *
56
+ * if (tokenInfo.active) {
57
+ * console.log('Token is valid');
58
+ * console.log('Expires at:', new Date(tokenInfo.exp * 1000));
59
+ * console.log('Scope:', tokenInfo.scope);
60
+ * } else {
61
+ * console.log('Token is invalid or expired');
62
+ * }
63
+ * ```
64
+ */
65
+ validateToken(token: string, region?: string): Promise<TokenValidationResponse>;
66
+ /**
67
+ * Revoke an access token or refresh token
68
+ * @param token - Token to revoke
69
+ * @returns Promise indicating success
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const client = new ApiClient();
74
+ *
75
+ * // Revoke access token on logout
76
+ * await client.authMethods.revokeToken('access_token');
77
+ *
78
+ * // Clear the client's token
79
+ * client.clearToken();
80
+ * ```
81
+ */
82
+ revokeToken(token: string, region?: string): Promise<void>;
83
+ /**
84
+ * Set the access token in the shared Options instance
85
+ * Also stores token in keytar for consistency
86
+ * @param token - Valid access token
87
+ */
88
+ setAccessToken(token: string): Promise<void>;
89
+ /**
90
+ * Get a valid access token - automatically refreshes if expired
91
+ * @returns Promise containing valid access token or null if authentication required
92
+ */
93
+ getValidAccessToken(): Promise<string | null>;
94
+ /**
95
+ * Perform OAuth authentication flow
96
+ * @param options - OAuth configuration options
97
+ * @returns Promise resolving when authentication is complete
98
+ */
99
+ performOAuthFlow(options: AuthUrlOptions): Promise<void>;
100
+ /**
101
+ * Clear all authentication data
102
+ */
103
+ clearAuthentication(): Promise<void>;
104
+ /**
105
+ * Check if user is authenticated (has valid token)
106
+ * @returns Promise resolving to true if authenticated
107
+ */
108
+ isAuthenticated(): Promise<boolean>;
109
+ /**
110
+ * Check if a token is expired based on expiration timestamp
111
+ * @param expiresAt - Token expiration timestamp (seconds since epoch)
112
+ * @param bufferSeconds - Buffer time in seconds to consider token expired early (default: 300 = 5 minutes)
113
+ * @returns True if token is expired or will expire within buffer time
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const client = new ApiClient();
118
+ *
119
+ * const expiresAt = Math.floor(Date.now() / 1000) + 3600; // 1 hour from now
120
+ *
121
+ * if (client.authMethods.isTokenExpired(expiresAt)) {
122
+ * console.log('Token is expired or will expire soon');
123
+ * // Refresh token or re-authenticate
124
+ * }
125
+ * ```
126
+ */
127
+ isTokenExpired(expiresAt: number, bufferSeconds?: number): boolean;
128
+ /**
129
+ * Calculate token expiration timestamp from expires_in value
130
+ * @param expiresIn - Token lifetime in seconds
131
+ * @returns Expiration timestamp (seconds since epoch)
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const client = new ApiClient();
136
+ *
137
+ * const tokens = await client.authMethods.exchangeCodeForToken(request);
138
+ * const expiresAt = client.authMethods.calculateExpirationTime(tokens.expires_in);
139
+ *
140
+ * // Store expiration time for later use
141
+ * localStorage.setItem('token_expires_at', expiresAt.toString());
142
+ * ```
143
+ */
144
+ calculateExpirationTime(expiresIn: number): number;
145
+ /**
146
+ * Generate a cryptographically secure random state parameter for OAuth
147
+ * @param length - Length of the state string (default: 32)
148
+ * @returns Random state string
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const client = new ApiClient();
153
+ *
154
+ * const state = client.authMethods.generateState();
155
+ *
156
+ * // Store state for validation
157
+ * sessionStorage.setItem('oauth_state', state);
158
+ *
159
+ * // Use in authorization URL
160
+ * const authUrl = client.authMethods.generateAuthUrl({
161
+ * redirectUri: 'https://yourapp.com/callback',
162
+ * state: state
163
+ * });
164
+ * ```
165
+ */
166
+ generateState(length?: number): string;
167
+ /**
168
+ * Create a token manager for automatic token refresh
169
+ * @param config - Token manager configuration
170
+ * @returns Token manager instance
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * const client = new ApiClient();
175
+ *
176
+ * const tokenManager = client.authMethods.createTokenManager({
177
+ * accessToken: 'current_access_token',
178
+ * refreshToken: 'current_refresh_token',
179
+ * expiresAt: 1234567890
180
+ * });
181
+ *
182
+ * // Get valid token (auto-refreshes if needed and updates client)
183
+ * const validToken = await tokenManager.getValidToken();
184
+ *
185
+ * // Client is now updated with fresh token - make API calls
186
+ * const content = await client.contentMethods.getContentItem(123, guid, locale);
187
+ * ```
188
+ */
189
+ createTokenManager(config: TokenManagerConfig): TokenManager;
190
+ /**
191
+ * Get current authentication state
192
+ * @param token - Current access token
193
+ * @param expiresAt - Token expiration timestamp
194
+ * @param refreshToken - Optional refresh token
195
+ * @returns Authentication state information
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * const client = new ApiClient();
200
+ *
201
+ * const authState = client.authMethods.getAuthState(
202
+ * localStorage.getItem('access_token'),
203
+ * parseInt(localStorage.getItem('token_expires_at')),
204
+ * localStorage.getItem('refresh_token')
205
+ * );
206
+ *
207
+ * if (authState.isAuthenticated) {
208
+ * console.log('User is authenticated');
209
+ * } else {
210
+ * console.log('User needs to authenticate');
211
+ * }
212
+ * ```
213
+ */
214
+ getAuthState(token?: string, expiresAt?: number, refreshToken?: string): AuthState;
215
+ }
216
+ /**
217
+ * Token manager class for automatic token refresh
218
+ */
219
+ export declare class TokenManager {
220
+ private authMethods;
221
+ private config;
222
+ constructor(authMethods: AuthMethods, config: TokenManagerConfig);
223
+ /**
224
+ * Get a valid access token, refreshing if necessary
225
+ * This automatically updates the shared token in the AuthMethods instance
226
+ * @returns Promise containing valid access token
227
+ */
228
+ getValidToken(): Promise<string>;
229
+ /**
230
+ * Update the token configuration
231
+ * @param config - New token configuration
232
+ */
233
+ updateConfig(config: Partial<TokenManagerConfig>): void;
234
+ /**
235
+ * Get current token configuration
236
+ * @returns Current token configuration
237
+ */
238
+ getConfig(): TokenManagerConfig;
239
+ }