@sonisoft/now-sdk-ext-core 2.2.1 → 2.5.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 (98) hide show
  1. package/dist/comm/http/RequestHandler.js +7 -11
  2. package/dist/comm/http/RequestHandler.js.map +1 -1
  3. package/dist/comm/http/TableAPIRequest.js +3 -10
  4. package/dist/comm/http/TableAPIRequest.js.map +1 -1
  5. package/dist/index.d.ts +28 -0
  6. package/dist/index.js +28 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/sn/BackgroundScriptExecutor.d.ts +34 -0
  9. package/dist/sn/BackgroundScriptExecutor.js +96 -0
  10. package/dist/sn/BackgroundScriptExecutor.js.map +1 -1
  11. package/dist/sn/aggregate/AggregateModels.d.ts +89 -0
  12. package/dist/sn/aggregate/AggregateModels.js +5 -0
  13. package/dist/sn/aggregate/AggregateModels.js.map +1 -0
  14. package/dist/sn/aggregate/AggregateQuery.d.ts +50 -0
  15. package/dist/sn/aggregate/AggregateQuery.js +144 -0
  16. package/dist/sn/aggregate/AggregateQuery.js.map +1 -0
  17. package/dist/sn/application/ApplicationManager.d.ts +58 -1
  18. package/dist/sn/application/ApplicationManager.js +202 -11
  19. package/dist/sn/application/ApplicationManager.js.map +1 -1
  20. package/dist/sn/application/StoreApplicationModels.d.ts +99 -0
  21. package/dist/sn/application/StoreApplicationModels.js +2 -0
  22. package/dist/sn/application/StoreApplicationModels.js.map +1 -0
  23. package/dist/sn/attachment/AttachmentManager.d.ts +32 -0
  24. package/dist/sn/attachment/AttachmentManager.js +87 -0
  25. package/dist/sn/attachment/AttachmentManager.js.map +1 -0
  26. package/dist/sn/attachment/AttachmentModels.d.ts +28 -0
  27. package/dist/sn/attachment/AttachmentModels.js +2 -0
  28. package/dist/sn/attachment/AttachmentModels.js.map +1 -0
  29. package/dist/sn/batch/BatchModels.d.ts +90 -0
  30. package/dist/sn/batch/BatchModels.js +5 -0
  31. package/dist/sn/batch/BatchModels.js.map +1 -0
  32. package/dist/sn/batch/BatchOperations.d.ts +40 -0
  33. package/dist/sn/batch/BatchOperations.js +169 -0
  34. package/dist/sn/batch/BatchOperations.js.map +1 -0
  35. package/dist/sn/batch/QueryBatchModels.d.ts +93 -0
  36. package/dist/sn/batch/QueryBatchModels.js +5 -0
  37. package/dist/sn/batch/QueryBatchModels.js.map +1 -0
  38. package/dist/sn/batch/QueryBatchOperations.d.ts +41 -0
  39. package/dist/sn/batch/QueryBatchOperations.js +195 -0
  40. package/dist/sn/batch/QueryBatchOperations.js.map +1 -0
  41. package/dist/sn/cmdb/CMDBModels.d.ts +141 -0
  42. package/dist/sn/cmdb/CMDBModels.js +5 -0
  43. package/dist/sn/cmdb/CMDBModels.js.map +1 -0
  44. package/dist/sn/cmdb/CMDBRelationships.d.ts +60 -0
  45. package/dist/sn/cmdb/CMDBRelationships.js +286 -0
  46. package/dist/sn/cmdb/CMDBRelationships.js.map +1 -0
  47. package/dist/sn/discovery/DiscoveryModels.d.ts +160 -0
  48. package/dist/sn/discovery/DiscoveryModels.js +5 -0
  49. package/dist/sn/discovery/DiscoveryModels.js.map +1 -0
  50. package/dist/sn/discovery/InstanceDiscovery.d.ts +45 -0
  51. package/dist/sn/discovery/InstanceDiscovery.js +163 -0
  52. package/dist/sn/discovery/InstanceDiscovery.js.map +1 -0
  53. package/dist/sn/health/HealthModels.d.ts +124 -0
  54. package/dist/sn/health/HealthModels.js +5 -0
  55. package/dist/sn/health/HealthModels.js.map +1 -0
  56. package/dist/sn/health/InstanceHealth.d.ts +58 -0
  57. package/dist/sn/health/InstanceHealth.js +221 -0
  58. package/dist/sn/health/InstanceHealth.js.map +1 -0
  59. package/dist/sn/schema/SchemaDiscovery.d.ts +68 -0
  60. package/dist/sn/schema/SchemaDiscovery.js +346 -0
  61. package/dist/sn/schema/SchemaDiscovery.js.map +1 -0
  62. package/dist/sn/schema/SchemaModels.d.ts +277 -0
  63. package/dist/sn/schema/SchemaModels.js +5 -0
  64. package/dist/sn/schema/SchemaModels.js.map +1 -0
  65. package/dist/sn/scope/ScopeManager.d.ts +51 -0
  66. package/dist/sn/scope/ScopeManager.js +182 -0
  67. package/dist/sn/scope/ScopeManager.js.map +1 -0
  68. package/dist/sn/scope/ScopeModels.d.ts +72 -0
  69. package/dist/sn/scope/ScopeModels.js +5 -0
  70. package/dist/sn/scope/ScopeModels.js.map +1 -0
  71. package/dist/sn/scriptsync/ScriptSync.d.ts +38 -0
  72. package/dist/sn/scriptsync/ScriptSync.js +266 -0
  73. package/dist/sn/scriptsync/ScriptSync.js.map +1 -0
  74. package/dist/sn/scriptsync/ScriptSyncModels.d.ts +55 -0
  75. package/dist/sn/scriptsync/ScriptSyncModels.js +8 -0
  76. package/dist/sn/scriptsync/ScriptSyncModels.js.map +1 -0
  77. package/dist/sn/scriptsync/ScriptWatcher.d.ts +30 -0
  78. package/dist/sn/scriptsync/ScriptWatcher.js +74 -0
  79. package/dist/sn/scriptsync/ScriptWatcher.js.map +1 -0
  80. package/dist/sn/task/TaskModels.d.ts +85 -0
  81. package/dist/sn/task/TaskModels.js +5 -0
  82. package/dist/sn/task/TaskModels.js.map +1 -0
  83. package/dist/sn/task/TaskOperations.d.ts +63 -0
  84. package/dist/sn/task/TaskOperations.js +195 -0
  85. package/dist/sn/task/TaskOperations.js.map +1 -0
  86. package/dist/sn/updateset/UpdateSetManager.d.ts +78 -0
  87. package/dist/sn/updateset/UpdateSetManager.js +396 -0
  88. package/dist/sn/updateset/UpdateSetManager.js.map +1 -0
  89. package/dist/sn/updateset/UpdateSetModels.d.ts +188 -0
  90. package/dist/sn/updateset/UpdateSetModels.js +5 -0
  91. package/dist/sn/updateset/UpdateSetModels.js.map +1 -0
  92. package/dist/sn/workflow/WorkflowManager.d.ts +81 -0
  93. package/dist/sn/workflow/WorkflowManager.js +388 -0
  94. package/dist/sn/workflow/WorkflowManager.js.map +1 -0
  95. package/dist/sn/workflow/WorkflowModels.d.ts +242 -0
  96. package/dist/sn/workflow/WorkflowModels.js +5 -0
  97. package/dist/sn/workflow/WorkflowModels.js.map +1 -0
  98. package/package.json +5 -5
@@ -0,0 +1,144 @@
1
+ import { Logger } from "../../util/Logger.js";
2
+ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
3
+ /**
4
+ * AggregateQuery provides aggregate operations (COUNT, AVG, MIN, MAX, SUM)
5
+ * against ServiceNow tables via the Stats API (/api/now/stats/).
6
+ * Supports GROUP BY for grouped aggregations.
7
+ */
8
+ export class AggregateQuery {
9
+ static STATS_API_BASE = '/api/now/stats/';
10
+ _logger = new Logger("AggregateQuery");
11
+ _req;
12
+ _instance;
13
+ _headers = {
14
+ "Content-Type": "application/json",
15
+ "Accept": "application/json"
16
+ };
17
+ constructor(instance) {
18
+ this._instance = instance;
19
+ this._req = new ServiceNowRequest(instance);
20
+ }
21
+ /**
22
+ * Count records matching an optional query on a table.
23
+ * Convenience method that returns a parsed integer.
24
+ *
25
+ * @param options Count query options (table required, query optional)
26
+ * @returns The number of matching records
27
+ * @throws Error if table name is empty or the API call fails
28
+ */
29
+ async count(options) {
30
+ if (!options.table || options.table.trim().length === 0) {
31
+ throw new Error('Table name is required');
32
+ }
33
+ this._logger.info(`Counting records in table: ${options.table}${options.query ? ` with query: ${options.query}` : ''}`);
34
+ const queryParams = {
35
+ sysparm_count: 'true'
36
+ };
37
+ if (options.query) {
38
+ queryParams.sysparm_query = options.query;
39
+ }
40
+ const response = await this._executeStatsRequest(options.table, queryParams);
41
+ if (response && response.status === 200 && response.bodyObject?.result?.stats) {
42
+ const count = parseInt(response.bodyObject.result.stats.count || '0', 10);
43
+ this._logger.info(`Count result for ${options.table}: ${count}`);
44
+ return count;
45
+ }
46
+ throw new Error(`Failed to count records in table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
47
+ }
48
+ /**
49
+ * Run an aggregate query (COUNT, AVG, MIN, MAX, SUM) without grouping.
50
+ *
51
+ * @param options Aggregate query options
52
+ * @returns AggregateResult containing the computed statistics
53
+ * @throws Error if table name is empty or the API call fails
54
+ */
55
+ async aggregate(options) {
56
+ if (!options.table || options.table.trim().length === 0) {
57
+ throw new Error('Table name is required');
58
+ }
59
+ this._logger.info(`Running aggregate query on table: ${options.table}`);
60
+ const queryParams = this._buildQueryParams(options);
61
+ const response = await this._executeStatsRequest(options.table, queryParams);
62
+ if (response && response.status === 200 && response.bodyObject?.result?.stats) {
63
+ this._logger.info(`Aggregate query complete for ${options.table}`);
64
+ return { stats: response.bodyObject.result.stats };
65
+ }
66
+ throw new Error(`Failed to run aggregate query on table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
67
+ }
68
+ /**
69
+ * Run a grouped aggregate query with GROUP BY.
70
+ *
71
+ * @param options Aggregate query options (groupBy is required)
72
+ * @returns GroupedAggregateResult with groups and their stats
73
+ * @throws Error if table name is empty, groupBy is missing/empty, or the API call fails
74
+ */
75
+ async groupBy(options) {
76
+ if (!options.table || options.table.trim().length === 0) {
77
+ throw new Error('Table name is required');
78
+ }
79
+ if (!options.groupBy || options.groupBy.length === 0) {
80
+ throw new Error('groupBy fields are required for grouped aggregation');
81
+ }
82
+ this._logger.info(`Running grouped aggregate on table: ${options.table}, groupBy: ${options.groupBy.join(',')}`);
83
+ const queryParams = this._buildQueryParams(options);
84
+ const response = await this._executeStatsRequest(options.table, queryParams);
85
+ if (response && response.status === 200 && response.bodyObject?.result) {
86
+ const groups = Array.isArray(response.bodyObject.result)
87
+ ? response.bodyObject.result
88
+ : [];
89
+ this._logger.info(`Grouped aggregate complete for ${options.table}: ${groups.length} groups`);
90
+ return { groups };
91
+ }
92
+ throw new Error(`Failed to run grouped aggregate on table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
93
+ }
94
+ /**
95
+ * Build query parameters from aggregate options.
96
+ * @private
97
+ */
98
+ _buildQueryParams(options) {
99
+ const params = {};
100
+ if (options.count) {
101
+ params.sysparm_count = 'true';
102
+ }
103
+ if (options.avgFields && options.avgFields.length > 0) {
104
+ params.sysparm_avg_fields = options.avgFields.join(',');
105
+ }
106
+ if (options.minFields && options.minFields.length > 0) {
107
+ params.sysparm_min_fields = options.minFields.join(',');
108
+ }
109
+ if (options.maxFields && options.maxFields.length > 0) {
110
+ params.sysparm_max_fields = options.maxFields.join(',');
111
+ }
112
+ if (options.sumFields && options.sumFields.length > 0) {
113
+ params.sysparm_sum_fields = options.sumFields.join(',');
114
+ }
115
+ if (options.groupBy && options.groupBy.length > 0) {
116
+ params.sysparm_group_by = options.groupBy.join(',');
117
+ }
118
+ if (options.query) {
119
+ params.sysparm_query = options.query;
120
+ }
121
+ if (options.having) {
122
+ params.sysparm_having = options.having;
123
+ }
124
+ if (options.displayValue) {
125
+ params.sysparm_display_value = options.displayValue;
126
+ }
127
+ return params;
128
+ }
129
+ /**
130
+ * Execute a GET request against the Stats API.
131
+ * @private
132
+ */
133
+ async _executeStatsRequest(tableName, queryParams) {
134
+ const request = {
135
+ path: AggregateQuery.STATS_API_BASE + tableName,
136
+ method: 'get',
137
+ headers: this._headers,
138
+ query: queryParams,
139
+ body: null
140
+ };
141
+ return await this._req.executeRequest(request);
142
+ }
143
+ }
144
+ //# sourceMappingURL=AggregateQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregateQuery.js","sourceRoot":"","sources":["../../../src/sn/aggregate/AggregateQuery.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,21 @@ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
4
4
  import { ApplicationDetailModel } from "./ApplicationDetailModel.js";
5
5
  import { BatchInstallation } from "./BatchInstallation.js";
6
6
  import { BatchDefinition } from "./BatchDefinition.js";
7
+ import { StoreAppSearchOptions, StoreAppInstallOptions, StoreAppUpdateOptions, StoreAppOperationResult, StoreAppFinalResult } from "./StoreApplicationModels.js";
8
+ export declare enum APP_TAB_CONTEXT {
9
+ AVAILABLE_FOR_YOU = "available_for_you",
10
+ INSTALLED = "installed",
11
+ UPDATES = "updates"
12
+ }
7
13
  export declare class ApplicationManager {
8
14
  BATCH_API_URL: string;
9
15
  APP_DETAILS_API_URL: string;
10
- APP_UPDATES_LIST_API_URL: string;
16
+ APP_SEARCH_API_URL: string;
17
+ APP_INSTALL_API_URL: string;
18
+ APP_SEARCH_POST_API_URL: string;
19
+ APP_UPDATE_API_URL: string;
20
+ DEFAULT_INSTALL_TIMEOUT: number;
21
+ DEFAULT_POLL_INTERVAL: number;
11
22
  BATCH_INSTALL_TIMEOUT: number;
12
23
  _logger: Logger;
13
24
  _req: ServiceNowRequest;
@@ -49,6 +60,52 @@ export declare class ApplicationManager {
49
60
  * @returns Promise<ApplicationValidationResult[]> Array of applications needing action
50
61
  */
51
62
  getApplicationsNeedingAction(batchDefinitionPath: string): Promise<ApplicationValidationResult[]>;
63
+ /**
64
+ * Search/list store applications by tab context with optional search key and pagination.
65
+ * Uses POST /api/sn_appclient/appmanager/apps
66
+ * @param options Search options including tabContext, searchKey, limit, offset, requestBody
67
+ * @returns Array of ApplicationDetailModel matching the search criteria
68
+ */
69
+ searchApplications(options: StoreAppSearchOptions): Promise<ApplicationDetailModel[]>;
70
+ /**
71
+ * Initiate installation of a store application.
72
+ * Uses GET /api/sn_appclient/appmanager/app/install
73
+ * @param options Install options including appId and version
74
+ * @returns StoreAppOperationResult with tracker info for monitoring progress
75
+ */
76
+ installStoreApplication(options: StoreAppInstallOptions): Promise<StoreAppOperationResult>;
77
+ /**
78
+ * Install a store application and wait for completion by polling the tracker.
79
+ * @param options Install options including appId and version
80
+ * @param pollIntervalMs Polling interval in ms (default: 5000)
81
+ * @param timeoutMs Timeout in ms (default: 30 min)
82
+ * @returns StoreAppFinalResult with success status and details
83
+ */
84
+ installStoreApplicationAndWait(options: StoreAppInstallOptions, pollIntervalMs?: number, timeoutMs?: number): Promise<StoreAppFinalResult>;
85
+ /**
86
+ * Initiate update of a store application.
87
+ * Uses GET /api/sn_appclient/appmanager/app/update
88
+ * @param options Update options including appId and version
89
+ * @returns StoreAppOperationResult with tracker info for monitoring progress
90
+ */
91
+ updateStoreApplication(options: StoreAppUpdateOptions): Promise<StoreAppOperationResult>;
92
+ /**
93
+ * Update a store application and wait for completion by polling the tracker.
94
+ * @param options Update options including appId and version
95
+ * @param pollIntervalMs Polling interval in ms (default: 5000)
96
+ * @param timeoutMs Timeout in ms (default: 30 min)
97
+ * @returns StoreAppFinalResult with success status and details
98
+ */
99
+ updateStoreApplicationAndWait(options: StoreAppUpdateOptions, pollIntervalMs?: number, timeoutMs?: number): Promise<StoreAppFinalResult>;
100
+ /**
101
+ * Poll installation progress via ProgressWorker until complete, timed out, or failed.
102
+ * Uses GET /api/sn_cicd/progress/{progressId}
103
+ * @param progressId Progress ID from an install/update operation
104
+ * @param pollIntervalMs Polling interval in ms
105
+ * @param timeoutMs Timeout in ms
106
+ * @returns StoreAppFinalResult with success status
107
+ */
108
+ private waitForInstallationCompletion;
52
109
  /**
53
110
  * Compares two version strings
54
111
  * @param version1 First version string (e.g., "1.2.3")
@@ -2,10 +2,21 @@ import { Logger } from "../../util/Logger.js";
2
2
  import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
3
3
  import * as fs from 'fs';
4
4
  import { ProgressWorker } from "../ProgressWorker.js";
5
+ export var APP_TAB_CONTEXT;
6
+ (function (APP_TAB_CONTEXT) {
7
+ APP_TAB_CONTEXT["AVAILABLE_FOR_YOU"] = "available_for_you";
8
+ APP_TAB_CONTEXT["INSTALLED"] = "installed";
9
+ APP_TAB_CONTEXT["UPDATES"] = "updates";
10
+ })(APP_TAB_CONTEXT || (APP_TAB_CONTEXT = {}));
5
11
  export class ApplicationManager {
6
12
  BATCH_API_URL = "/api/sn_cicd/app/batch/install";
7
13
  APP_DETAILS_API_URL = "/api/sn_appclient/appmanager/app/{appID}";
8
- APP_UPDATES_LIST_API_URL = "/api/sn_appclient/appmanager/apps?search_key={searchKey}&sysparm_limit={limit}&tab_context=updates";
14
+ APP_SEARCH_API_URL = "/api/sn_appclient/appmanager/apps?search_key={searchKey}&sysparm_limit={limit}&tab_context={tabContext}";
15
+ APP_INSTALL_API_URL = "/api/sn_appclient/appmanager/app/install";
16
+ APP_SEARCH_POST_API_URL = "/api/sn_appclient/appmanager/apps";
17
+ APP_UPDATE_API_URL = "/api/sn_appclient/appmanager/app/update";
18
+ DEFAULT_INSTALL_TIMEOUT = 1000 * 60 * 30;
19
+ DEFAULT_POLL_INTERVAL = 5000;
9
20
  BATCH_INSTALL_TIMEOUT = 1000 * 60 * 30;
10
21
  _logger = new Logger("ApplicationManager");
11
22
  _req;
@@ -16,16 +27,13 @@ export class ApplicationManager {
16
27
  _instance;
17
28
  async installBatch(batchDefinitionPath) {
18
29
  const batchDefinitionRequest = fs.readFileSync(batchDefinitionPath, 'utf8');
19
- console.log(batchDefinitionRequest);
30
+ this._logger.info(`Batch definition loaded from: ${batchDefinitionPath}`);
20
31
  const batchInstall = JSON.parse(batchDefinitionRequest);
21
- //let installablePackages = await this.getInstallableApplicationPackages(batchInstall);
22
- // console.log(installablePackages);
23
- //batchInstall.packages = installablePackages;
24
32
  const batchDefinitionJson = JSON.stringify(batchInstall);
25
- console.log(batchDefinitionJson);
33
+ this._logger.info(`Batch definition: ${batchDefinitionJson}`);
26
34
  const result = await this.executeBatchInstallRequest(batchInstall);
27
- console.log(result);
28
- console.log(result.result.links);
35
+ this._logger.info(`Batch install result: ${JSON.stringify(result)}`);
36
+ this._logger.info(`Batch install links: ${JSON.stringify(result.result.links)}`);
29
37
  if (result.result.links && result.result.links.progress) {
30
38
  await this.waitForBatchInstallCompletion(result.result);
31
39
  }
@@ -34,7 +42,7 @@ export class ApplicationManager {
34
42
  async getInstallableApplicationPackages(batchInstall) {
35
43
  for (const appPackage of batchInstall.packages) {
36
44
  const appDetails = await this.getApplicationDetails(appPackage.id);
37
- console.log(appDetails);
45
+ this._logger.info(`App details for ${appPackage.id}: ${JSON.stringify(appDetails)}`);
38
46
  if (appDetails && appDetails.version == appPackage.requested_version) {
39
47
  batchInstall.packages.splice(batchInstall.packages.indexOf(appPackage), 1);
40
48
  }
@@ -52,11 +60,11 @@ export class ApplicationManager {
52
60
  async waitForBatchInstallCompletion(batchInstallResult) {
53
61
  const startTime = Date.now();
54
62
  let progressResult = await this.getBatchProgress(batchInstallResult);
55
- console.log(progressResult);
63
+ this._logger.info(`Batch install progress: ${JSON.stringify(progressResult)}`);
56
64
  while (progressResult.percent_complete < 100 && (Date.now() - startTime) < this.BATCH_INSTALL_TIMEOUT) {
57
65
  await new Promise(resolve => setTimeout(resolve, 5000));
58
66
  progressResult = await this.getBatchProgress(batchInstallResult);
59
- console.log(progressResult);
67
+ this._logger.info(`Batch install progress: ${progressResult.percent_complete}%`);
60
68
  }
61
69
  if (progressResult.percent_complete < 100) {
62
70
  throw new Error("Batch install timed out");
@@ -215,6 +223,189 @@ export class ApplicationManager {
215
223
  const validationResult = await this.validateBatchDefinition(batchDefinitionPath);
216
224
  return validationResult.applications.filter(app => app.needsAction);
217
225
  }
226
+ // ============================================================
227
+ // Store Application Management
228
+ // ============================================================
229
+ /**
230
+ * Search/list store applications by tab context with optional search key and pagination.
231
+ * Uses POST /api/sn_appclient/appmanager/apps
232
+ * @param options Search options including tabContext, searchKey, limit, offset, requestBody
233
+ * @returns Array of ApplicationDetailModel matching the search criteria
234
+ */
235
+ async searchApplications(options) {
236
+ const queryParams = {
237
+ tab_context: options.tabContext
238
+ };
239
+ if (options.searchKey) {
240
+ queryParams.search_key = options.searchKey;
241
+ }
242
+ if (options.limit !== undefined) {
243
+ queryParams.sysparm_limit = String(options.limit);
244
+ }
245
+ if (options.offset !== undefined) {
246
+ queryParams.sysparm_offset = String(options.offset);
247
+ }
248
+ const request = {
249
+ method: 'POST',
250
+ path: this.APP_SEARCH_POST_API_URL,
251
+ headers: { 'Content-Type': 'application/json' },
252
+ query: queryParams,
253
+ json: options.requestBody || {},
254
+ body: null
255
+ };
256
+ const resp = await this._req.post(request);
257
+ if (resp.status === 200 && resp.bodyObject?.result?.apps) {
258
+ return resp.bodyObject.result.apps;
259
+ }
260
+ return [];
261
+ }
262
+ /**
263
+ * Initiate installation of a store application.
264
+ * Uses GET /api/sn_appclient/appmanager/app/install
265
+ * @param options Install options including appId and version
266
+ * @returns StoreAppOperationResult with tracker info for monitoring progress
267
+ */
268
+ async installStoreApplication(options) {
269
+ const queryParams = {
270
+ app_id: options.appId,
271
+ version: options.version
272
+ };
273
+ if (options.customizationVersion) {
274
+ queryParams.customization_version = options.customizationVersion;
275
+ }
276
+ if (options.loadDemoData !== undefined) {
277
+ queryParams.load_demo_data = String(options.loadDemoData);
278
+ }
279
+ const request = {
280
+ method: 'GET',
281
+ path: this.APP_INSTALL_API_URL,
282
+ headers: null,
283
+ query: queryParams,
284
+ body: null
285
+ };
286
+ const resp = await this._req.get(request);
287
+ if (resp.status === 200 && resp.bodyObject?.result) {
288
+ return resp.bodyObject.result;
289
+ }
290
+ throw new Error(`Failed to initiate store app install: HTTP ${resp.status}`);
291
+ }
292
+ /**
293
+ * Install a store application and wait for completion by polling the tracker.
294
+ * @param options Install options including appId and version
295
+ * @param pollIntervalMs Polling interval in ms (default: 5000)
296
+ * @param timeoutMs Timeout in ms (default: 30 min)
297
+ * @returns StoreAppFinalResult with success status and details
298
+ */
299
+ async installStoreApplicationAndWait(options, pollIntervalMs, timeoutMs) {
300
+ const operationResult = await this.installStoreApplication(options);
301
+ const trackerId = operationResult.tracker_id || operationResult.trackerId || operationResult.links?.progress?.id;
302
+ if (!trackerId) {
303
+ throw new Error('No tracker ID returned from install operation');
304
+ }
305
+ return await this.waitForInstallationCompletion(trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT);
306
+ }
307
+ /**
308
+ * Initiate update of a store application.
309
+ * Uses GET /api/sn_appclient/appmanager/app/update
310
+ * @param options Update options including appId and version
311
+ * @returns StoreAppOperationResult with tracker info for monitoring progress
312
+ */
313
+ async updateStoreApplication(options) {
314
+ const queryParams = {
315
+ app_id: options.appId,
316
+ version: options.version
317
+ };
318
+ if (options.customizationVersion) {
319
+ queryParams.customization_version = options.customizationVersion;
320
+ }
321
+ if (options.loadDemoData !== undefined) {
322
+ queryParams.load_demo_data = String(options.loadDemoData);
323
+ }
324
+ const request = {
325
+ method: 'GET',
326
+ path: this.APP_UPDATE_API_URL,
327
+ headers: null,
328
+ query: queryParams,
329
+ body: null
330
+ };
331
+ const resp = await this._req.get(request);
332
+ if (resp.status === 200 && resp.bodyObject?.result) {
333
+ return resp.bodyObject.result;
334
+ }
335
+ throw new Error(`Failed to initiate store app update: HTTP ${resp.status}`);
336
+ }
337
+ /**
338
+ * Update a store application and wait for completion by polling the tracker.
339
+ * @param options Update options including appId and version
340
+ * @param pollIntervalMs Polling interval in ms (default: 5000)
341
+ * @param timeoutMs Timeout in ms (default: 30 min)
342
+ * @returns StoreAppFinalResult with success status and details
343
+ */
344
+ async updateStoreApplicationAndWait(options, pollIntervalMs, timeoutMs) {
345
+ const operationResult = await this.updateStoreApplication(options);
346
+ const trackerId = operationResult.tracker_id || operationResult.trackerId || operationResult.links?.progress?.id;
347
+ if (!trackerId) {
348
+ throw new Error('No tracker ID returned from update operation');
349
+ }
350
+ return await this.waitForInstallationCompletion(trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT);
351
+ }
352
+ /**
353
+ * Poll installation progress via ProgressWorker until complete, timed out, or failed.
354
+ * Uses GET /api/sn_cicd/progress/{progressId}
355
+ * @param progressId Progress ID from an install/update operation
356
+ * @param pollIntervalMs Polling interval in ms
357
+ * @param timeoutMs Timeout in ms
358
+ * @returns StoreAppFinalResult with success status
359
+ */
360
+ async waitForInstallationCompletion(progressId, pollIntervalMs, timeoutMs) {
361
+ const progressWorker = new ProgressWorker(this._instance);
362
+ const startTime = Date.now();
363
+ let progress = await progressWorker.getProgress(progressId);
364
+ this._logger.info(`Installation progress: ${JSON.stringify(progress)}`);
365
+ while (progress.percent_complete < 100 && (Date.now() - startTime) < timeoutMs) {
366
+ await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
367
+ progress = await progressWorker.getProgress(progressId);
368
+ this._logger.info(`Installation progress: ${progress.percent_complete}%`);
369
+ }
370
+ if (progress.percent_complete < 100) {
371
+ return {
372
+ success: false,
373
+ status: progress.status,
374
+ status_label: progress.status_label,
375
+ status_message: progress.status_message,
376
+ error: 'Installation timed out',
377
+ percent_complete: progress.percent_complete
378
+ };
379
+ }
380
+ if (progress.error) {
381
+ return {
382
+ success: false,
383
+ status: progress.status,
384
+ status_label: progress.status_label,
385
+ status_message: progress.status_message,
386
+ error: progress.error,
387
+ percent_complete: progress.percent_complete
388
+ };
389
+ }
390
+ // Status "3" typically indicates failure in ServiceNow
391
+ if (progress.status === '3') {
392
+ return {
393
+ success: false,
394
+ status: progress.status,
395
+ status_label: progress.status_label,
396
+ status_message: progress.status_message,
397
+ error: `${progress.status_label}: ${progress.status_message}`,
398
+ percent_complete: progress.percent_complete
399
+ };
400
+ }
401
+ return {
402
+ success: true,
403
+ status: progress.status,
404
+ status_label: progress.status_label,
405
+ status_message: progress.status_message,
406
+ percent_complete: progress.percent_complete
407
+ };
408
+ }
218
409
  /**
219
410
  * Compares two version strings
220
411
  * @param version1 First version string (e.g., "1.2.3")
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationManager.js","sourceRoot":"","sources":["../../../src/sn/application/ApplicationManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationManager.js","sourceRoot":"","sources":["../../../src/sn/application/ApplicationManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { APP_TAB_CONTEXT } from './ApplicationManager.js';
2
+ import { ApplicationDetailModel } from './ApplicationDetailModel.js';
3
+ /**
4
+ * Options for searching/listing store applications.
5
+ */
6
+ export interface StoreAppSearchOptions {
7
+ /** Required: Tab context filter */
8
+ tabContext: APP_TAB_CONTEXT;
9
+ /** Optional: Search keyword to filter applications */
10
+ searchKey?: string;
11
+ /** Optional: Maximum number of results (default: 10,000) */
12
+ limit?: number;
13
+ /** Optional: Pagination offset (default: 0) */
14
+ offset?: number;
15
+ /** Optional: Request body for POST /apps endpoint (for advanced filtering) */
16
+ requestBody?: Record<string, unknown>;
17
+ }
18
+ /**
19
+ * Response wrapper from POST /api/sn_appclient/appmanager/apps
20
+ */
21
+ export interface StoreAppSearchResponse {
22
+ result: StoreAppSearchResult;
23
+ }
24
+ /**
25
+ * The result payload inside the search response.
26
+ */
27
+ export interface StoreAppSearchResult {
28
+ apps: ApplicationDetailModel[];
29
+ total?: number;
30
+ }
31
+ /**
32
+ * Options for installing a store application.
33
+ */
34
+ export interface StoreAppInstallOptions {
35
+ /** Required: The app_id (source app id) of the application */
36
+ appId: string;
37
+ /** Required: The version to install */
38
+ version: string;
39
+ /** Optional: Customization version to apply */
40
+ customizationVersion?: string;
41
+ /** Optional: Whether to load demo data */
42
+ loadDemoData?: boolean;
43
+ }
44
+ /**
45
+ * Options for updating a store application.
46
+ */
47
+ export interface StoreAppUpdateOptions {
48
+ /** Required: The app_id (source app id) of the application */
49
+ appId: string;
50
+ /** Required: The version to update to */
51
+ version: string;
52
+ /** Optional: Customization version to apply */
53
+ customizationVersion?: string;
54
+ /** Optional: Whether to load demo data */
55
+ loadDemoData?: boolean;
56
+ }
57
+ /**
58
+ * Response from store app install or update.
59
+ */
60
+ export interface StoreAppOperationResponse {
61
+ result: StoreAppOperationResult;
62
+ }
63
+ /**
64
+ * Result of initiating an install or update operation.
65
+ */
66
+ export interface StoreAppOperationResult {
67
+ /** Tracker ID for monitoring progress (snake_case variant) */
68
+ tracker_id?: string;
69
+ /** Tracker ID for monitoring progress (camelCase variant) */
70
+ trackerId?: string;
71
+ /** Status of the initiated operation */
72
+ status?: string;
73
+ /** Any message from the server */
74
+ message?: string;
75
+ /** Links (may include progress link) */
76
+ links?: {
77
+ progress?: {
78
+ id: string;
79
+ url: string;
80
+ };
81
+ };
82
+ }
83
+ /**
84
+ * Final result after an install/update operation completes.
85
+ */
86
+ export interface StoreAppFinalResult {
87
+ /** Whether the operation completed successfully */
88
+ success: boolean;
89
+ /** Final status */
90
+ status: string;
91
+ /** Status label */
92
+ status_label: string;
93
+ /** Status message */
94
+ status_message: string;
95
+ /** Error message if any */
96
+ error?: string;
97
+ /** Completion percentage */
98
+ percent_complete: number;
99
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StoreApplicationModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoreApplicationModels.js","sourceRoot":"","sources":["../../../src/sn/application/StoreApplicationModels.ts"],"names":[],"mappings":""}