@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,21 @@
1
+ import { WebsiteListing } from "./websiteListing";
2
+ export declare class ServerUser {
3
+ userID: number;
4
+ userName: string | null;
5
+ emailAddress: string | null;
6
+ firstName: string | null;
7
+ lastName: string | null;
8
+ isInternalUser: boolean;
9
+ isSuspended: boolean;
10
+ isProfileComplete: boolean;
11
+ adminAccess: boolean;
12
+ currentWebsite: string | null;
13
+ userTypeID: number;
14
+ timeZoneRegion: string | null;
15
+ password: string | null;
16
+ passwordQuestion: string | null;
17
+ passwordAnswer: string | null;
18
+ websiteAccess: WebsiteListing[];
19
+ jobRole: string | null;
20
+ createdDate: string | null;
21
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerUser = void 0;
4
+ var ServerUser = /** @class */ (function () {
5
+ function ServerUser() {
6
+ }
7
+ return ServerUser;
8
+ }());
9
+ exports.ServerUser = ServerUser;
@@ -0,0 +1,7 @@
1
+ export declare class SharedModule {
2
+ pageItemTemplateID: number | null;
3
+ contentTemplateID: number | null;
4
+ name: string | null;
5
+ contentDefinitionID: number | null;
6
+ autoCreate: boolean;
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SharedModule = void 0;
4
+ var SharedModule = /** @class */ (function () {
5
+ function SharedModule() {
6
+ }
7
+ return SharedModule;
8
+ }());
9
+ exports.SharedModule = SharedModule;
@@ -0,0 +1,9 @@
1
+ export declare class Webhook {
2
+ name: string | null;
3
+ url: string | null;
4
+ instanceGuid: string | null;
5
+ enabled: boolean;
6
+ contentWorkflowEvents: boolean;
7
+ contentPublishEvents: boolean;
8
+ contentSaveEvents: boolean;
9
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Webhook = void 0;
4
+ var Webhook = /** @class */ (function () {
5
+ function Webhook() {
6
+ }
7
+ return Webhook;
8
+ }());
9
+ exports.Webhook = Webhook;
@@ -0,0 +1,16 @@
1
+ export declare class WebsiteListing {
2
+ orgCode: string | null;
3
+ orgName: string | null;
4
+ websiteName: string | null;
5
+ websiteNameStripped: string | null;
6
+ displayName: string | null;
7
+ guid: string | null;
8
+ websiteID: number;
9
+ isCurrent: boolean;
10
+ managerUrl: string | null;
11
+ version: string | null;
12
+ isOwner: boolean;
13
+ isDormant: boolean;
14
+ isRestoring: boolean;
15
+ teamID: number | null;
16
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebsiteListing = void 0;
4
+ var WebsiteListing = /** @class */ (function () {
5
+ function WebsiteListing() {
6
+ }
7
+ return WebsiteListing;
8
+ }());
9
+ exports.WebsiteListing = WebsiteListing;
@@ -0,0 +1,2 @@
1
+ import { Options } from '../types/options';
2
+ export declare const getTestOptions: () => Options;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTestOptions = void 0;
4
+ const getTestOptions = () => {
5
+ return {
6
+ token: process.env.AGILITY_API_TOKEN || 'test-token',
7
+ baseUrl: process.env.AGILITY_API_URL || 'https://api.agilitycms.com',
8
+ refresh_token: process.env.AGILITY_REFRESH_TOKEN || 'test-refresh-token',
9
+ duration: 3000,
10
+ retryCount: 500
11
+ };
12
+ };
13
+ exports.getTestOptions = getTestOptions;
14
+ //# sourceMappingURL=authHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authHelper.js","sourceRoot":"","sources":["../../src/tests/authHelper.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAG,GAAY,EAAE;IAC1C,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,YAAY;QACpD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,4BAA4B;QACpE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,oBAAoB;QACxE,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,GAAG;KAChB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB"}
@@ -0,0 +1,16 @@
1
+ import { ClientInstance } from '../../apiMethods/clientInstance';
2
+ export declare class ApiClientConfig {
3
+ private static instance;
4
+ private testConfig;
5
+ private _mgmtApiClient;
6
+ private tableClient;
7
+ private constructor();
8
+ static getInstance(): ApiClientConfig;
9
+ private getTableClient;
10
+ private getCurrentToken;
11
+ private getAuthorizationToken;
12
+ createManagementSdkClient(): Promise<{
13
+ apiClient: ClientInstance;
14
+ guid: string;
15
+ }>;
16
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ApiClientConfig = void 0;
7
+ const test_config_1 = require("./test.config");
8
+ const clientInstance_1 = require("../../apiMethods/clientInstance");
9
+ const data_tables_1 = require("@azure/data-tables");
10
+ const axios_1 = __importDefault(require("axios"));
11
+ const form_data_1 = __importDefault(require("form-data"));
12
+ class ApiClientConfig {
13
+ constructor() {
14
+ this._mgmtApiClient = null;
15
+ this.tableClient = null;
16
+ this.testConfig = test_config_1.TestConfiguration.getInstance();
17
+ }
18
+ static getInstance() {
19
+ if (!ApiClientConfig.instance) {
20
+ ApiClientConfig.instance = new ApiClientConfig();
21
+ }
22
+ return ApiClientConfig.instance;
23
+ }
24
+ async getTableClient() {
25
+ if (!this.tableClient) {
26
+ const azureConfig = this.testConfig.getAzureConfig();
27
+ const credentials = new data_tables_1.AzureNamedKeyCredential(azureConfig.storageAccount, azureConfig.storageAccountKey);
28
+ this.tableClient = new data_tables_1.TableClient(`https://${azureConfig.storageAccount}.table.core.windows.net`, azureConfig.storageAccountTable, credentials);
29
+ }
30
+ return this.tableClient;
31
+ }
32
+ async getCurrentToken(partitionKey, rowKey) {
33
+ try {
34
+ const tableClient = await this.getTableClient();
35
+ const tokenInfo = await tableClient.getEntity(partitionKey, rowKey);
36
+ return tokenInfo;
37
+ }
38
+ catch (err) {
39
+ return null;
40
+ }
41
+ }
42
+ async getAuthorizationToken() {
43
+ const rowKey = process.env.TEST_ENV === "dev" ? "dev" : "prod";
44
+ const partitionKey = 'Integration-Test';
45
+ const currentToken = await this.getCurrentToken(partitionKey, rowKey);
46
+ if (!currentToken) {
47
+ throw new Error('No current token found');
48
+ }
49
+ const form = new form_data_1.default();
50
+ form.append("refresh_token", currentToken.refresh_token);
51
+ const config = this.testConfig.getConfig();
52
+ const apiPath = `${config.managementApiBaseUrl}/oauth/refresh`;
53
+ const resp = await axios_1.default.post(apiPath, form, {
54
+ headers: {
55
+ 'Cache-Control': 'no-cache'
56
+ }
57
+ });
58
+ const tokenInfo = resp.data;
59
+ tokenInfo.partitionKey = partitionKey;
60
+ tokenInfo.rowKey = rowKey;
61
+ const tableClient = await this.getTableClient();
62
+ await tableClient.updateEntity(tokenInfo);
63
+ return tokenInfo;
64
+ }
65
+ async createManagementSdkClient() {
66
+ if (!this._mgmtApiClient) {
67
+ const config = this.testConfig.getConfig();
68
+ const authToken = await this.getAuthorizationToken();
69
+ const mgmtOpt = {
70
+ token: authToken.access_token,
71
+ baseUrl: config.managementApiBaseUrl,
72
+ refresh_token: authToken.refresh_token
73
+ // duration and retryCount are optional and will be undefined
74
+ };
75
+ this._mgmtApiClient = new clientInstance_1.ClientInstance(mgmtOpt);
76
+ }
77
+ return {
78
+ apiClient: this._mgmtApiClient,
79
+ guid: this.testConfig.getConfig().guid
80
+ };
81
+ }
82
+ }
83
+ exports.ApiClientConfig = ApiClientConfig;
84
+ //# sourceMappingURL=apiClient.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiClient.config.js","sourceRoot":"","sources":["../../../src/tests/config/apiClient.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface TestConfig {
2
+ guid: string;
3
+ apiKeyFetch: string;
4
+ apiKeyPreview: string;
5
+ websiteName: string;
6
+ securityKey: string;
7
+ contentServerBaseUrl: string;
8
+ fetchApiBaseUrl: string;
9
+ directFetchApiBaseUrl: string;
10
+ managementApiBaseUrl: string;
11
+ }
12
+ export declare class TestConfiguration {
13
+ private static instance;
14
+ private config;
15
+ private constructor();
16
+ static getInstance(): TestConfiguration;
17
+ private loadConfig;
18
+ getConfig(): TestConfig;
19
+ getAzureConfig(): {
20
+ storageAccount: string;
21
+ storageAccountKey: string;
22
+ storageAccountTable: string;
23
+ };
24
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TestConfiguration = void 0;
7
+ const dotenv_1 = __importDefault(require("dotenv"));
8
+ // Load environment variables from .env file
9
+ dotenv_1.default.config();
10
+ class TestConfiguration {
11
+ constructor() {
12
+ const env = process.env.TEST_ENV || 'dev';
13
+ this.config = this.loadConfig(env);
14
+ }
15
+ static getInstance() {
16
+ if (!TestConfiguration.instance) {
17
+ TestConfiguration.instance = new TestConfiguration();
18
+ }
19
+ return TestConfiguration.instance;
20
+ }
21
+ loadConfig(env) {
22
+ const prefix = env.toUpperCase().replace(/-/g, '_');
23
+ return {
24
+ guid: process.env[`${prefix}_GUID`] || '',
25
+ apiKeyFetch: process.env[`${prefix}_API_KEY_FETCH`] || '',
26
+ apiKeyPreview: process.env[`${prefix}_API_KEY_PREVIEW`] || '',
27
+ websiteName: process.env[`${prefix}_WEBSITE_NAME`] || '',
28
+ securityKey: process.env[`${prefix}_SECURITY_KEY`] || '',
29
+ contentServerBaseUrl: process.env[`${prefix}_CONTENT_SERVER_BASE_URL`] || '',
30
+ fetchApiBaseUrl: process.env[`${prefix}_FETCH_API_BASE_URL`] || '',
31
+ directFetchApiBaseUrl: process.env[`${prefix}_DIRECT_FETCH_API_BASE_URL`] || '',
32
+ managementApiBaseUrl: process.env[`${prefix}_MANAGEMENT_API_BASE_URL`] || ''
33
+ };
34
+ }
35
+ getConfig() {
36
+ return this.config;
37
+ }
38
+ getAzureConfig() {
39
+ return {
40
+ storageAccount: process.env.STORAGE_ACCOUNT || '',
41
+ storageAccountKey: process.env.STORAGE_ACCOUNT_KEY || '',
42
+ storageAccountTable: process.env.STORAGE_ACCOUNT_TABLE || ''
43
+ };
44
+ }
45
+ }
46
+ exports.TestConfiguration = TestConfiguration;
47
+ //# sourceMappingURL=test.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.config.js","sourceRoot":"","sources":["../../../src/tests/config/test.config.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,4CAA4C;AAC5C,gBAAM,CAAC,MAAM,EAAE,CAAC;AAchB,MAAa,iBAAiB;IAI1B;QACI,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAC9B,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAEO,UAAU,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEpD,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;YACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;YACzD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;YAC7D,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;YACxD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;YACxD,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE;YAC5E,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE;YAClE,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,4BAA4B,CAAC,IAAI,EAAE;YAC/E,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE;SAC/E,CAAC;IACN,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,cAAc;QACjB,OAAO;YACH,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;YACjD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;YACxD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;SAC/D,CAAC;IACN,CAAC;CACJ;AA3CD,8CA2CC"}
@@ -0,0 +1,72 @@
1
+ export interface StoredTokenData {
2
+ accessToken: string;
3
+ refreshToken?: string;
4
+ expiresAt?: number;
5
+ tokenType?: string;
6
+ scope?: string;
7
+ }
8
+ export interface TokenStorageOptions {
9
+ serviceName?: string;
10
+ accountName?: string;
11
+ fallbackToMemory?: boolean;
12
+ }
13
+ /**
14
+ * Secure token storage using OS-level keychain/credential store
15
+ * Falls back to in-memory storage if keytar is unavailable
16
+ */
17
+ export declare class TokenStorage {
18
+ private serviceName;
19
+ private accountName;
20
+ private fallbackToMemory;
21
+ private memoryStorage;
22
+ private keytarAvailable;
23
+ constructor(options?: TokenStorageOptions);
24
+ /**
25
+ * Test if keytar is available on this platform
26
+ */
27
+ private testKeytarAvailability;
28
+ /**
29
+ * Store token data securely
30
+ */
31
+ setTokens(tokenData: StoredTokenData): Promise<void>;
32
+ /**
33
+ * Retrieve token data
34
+ */
35
+ getTokens(): Promise<StoredTokenData | null>;
36
+ /**
37
+ * Check if stored tokens are expired
38
+ */
39
+ areTokensExpired(): Promise<boolean>;
40
+ /**
41
+ * Get access token if not expired
42
+ */
43
+ getValidAccessToken(): Promise<string | null>;
44
+ /**
45
+ * Get refresh token
46
+ */
47
+ getRefreshToken(): Promise<string | null>;
48
+ /**
49
+ * Update only the access token (keeping refresh token)
50
+ */
51
+ updateAccessToken(accessToken: string, expiresIn?: number): Promise<void>;
52
+ /**
53
+ * Clear all stored tokens
54
+ */
55
+ clearTokens(): Promise<void>;
56
+ /**
57
+ * Check if tokens exist (regardless of expiration)
58
+ */
59
+ hasTokens(): Promise<boolean>;
60
+ /**
61
+ * Get token expiration time
62
+ */
63
+ getTokenExpiration(): Promise<number | null>;
64
+ /**
65
+ * Calculate time until expiration in seconds
66
+ */
67
+ getTimeUntilExpiration(): Promise<number>;
68
+ /**
69
+ * Get storage type being used
70
+ */
71
+ getStorageType(): 'keytar' | 'memory';
72
+ }