@sonisoft/now-sdk-ext-core 2.2.0 → 2.4.0

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 (68) 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 +18 -0
  6. package/dist/index.js +18 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/sn/BackgroundScriptExecutor.d.ts +40 -0
  9. package/dist/sn/BackgroundScriptExecutor.js +129 -8
  10. package/dist/sn/BackgroundScriptExecutor.js.map +1 -1
  11. package/dist/sn/application/ApplicationManager.d.ts +58 -1
  12. package/dist/sn/application/ApplicationManager.js +202 -11
  13. package/dist/sn/application/ApplicationManager.js.map +1 -1
  14. package/dist/sn/application/StoreApplicationModels.d.ts +99 -0
  15. package/dist/sn/application/StoreApplicationModels.js +2 -0
  16. package/dist/sn/application/StoreApplicationModels.js.map +1 -0
  17. package/dist/sn/attachment/AttachmentManager.d.ts +32 -0
  18. package/dist/sn/attachment/AttachmentManager.js +87 -0
  19. package/dist/sn/attachment/AttachmentManager.js.map +1 -0
  20. package/dist/sn/attachment/AttachmentModels.d.ts +28 -0
  21. package/dist/sn/attachment/AttachmentModels.js +2 -0
  22. package/dist/sn/attachment/AttachmentModels.js.map +1 -0
  23. package/dist/sn/batch/BatchModels.d.ts +90 -0
  24. package/dist/sn/batch/BatchModels.js +5 -0
  25. package/dist/sn/batch/BatchModels.js.map +1 -0
  26. package/dist/sn/batch/BatchOperations.d.ts +40 -0
  27. package/dist/sn/batch/BatchOperations.js +169 -0
  28. package/dist/sn/batch/BatchOperations.js.map +1 -0
  29. package/dist/sn/schema/SchemaDiscovery.d.ts +68 -0
  30. package/dist/sn/schema/SchemaDiscovery.js +346 -0
  31. package/dist/sn/schema/SchemaDiscovery.js.map +1 -0
  32. package/dist/sn/schema/SchemaModels.d.ts +277 -0
  33. package/dist/sn/schema/SchemaModels.js +5 -0
  34. package/dist/sn/schema/SchemaModels.js.map +1 -0
  35. package/dist/sn/scope/ScopeManager.d.ts +51 -0
  36. package/dist/sn/scope/ScopeManager.js +177 -0
  37. package/dist/sn/scope/ScopeManager.js.map +1 -0
  38. package/dist/sn/scope/ScopeModels.d.ts +66 -0
  39. package/dist/sn/scope/ScopeModels.js +5 -0
  40. package/dist/sn/scope/ScopeModels.js.map +1 -0
  41. package/dist/sn/scriptsync/ScriptSync.d.ts +38 -0
  42. package/dist/sn/scriptsync/ScriptSync.js +266 -0
  43. package/dist/sn/scriptsync/ScriptSync.js.map +1 -0
  44. package/dist/sn/scriptsync/ScriptSyncModels.d.ts +55 -0
  45. package/dist/sn/scriptsync/ScriptSyncModels.js +8 -0
  46. package/dist/sn/scriptsync/ScriptSyncModels.js.map +1 -0
  47. package/dist/sn/scriptsync/ScriptWatcher.d.ts +30 -0
  48. package/dist/sn/scriptsync/ScriptWatcher.js +74 -0
  49. package/dist/sn/scriptsync/ScriptWatcher.js.map +1 -0
  50. package/dist/sn/task/TaskModels.d.ts +85 -0
  51. package/dist/sn/task/TaskModels.js +5 -0
  52. package/dist/sn/task/TaskModels.js.map +1 -0
  53. package/dist/sn/task/TaskOperations.d.ts +63 -0
  54. package/dist/sn/task/TaskOperations.js +195 -0
  55. package/dist/sn/task/TaskOperations.js.map +1 -0
  56. package/dist/sn/updateset/UpdateSetManager.d.ts +78 -0
  57. package/dist/sn/updateset/UpdateSetManager.js +391 -0
  58. package/dist/sn/updateset/UpdateSetManager.js.map +1 -0
  59. package/dist/sn/updateset/UpdateSetModels.d.ts +177 -0
  60. package/dist/sn/updateset/UpdateSetModels.js +5 -0
  61. package/dist/sn/updateset/UpdateSetModels.js.map +1 -0
  62. package/dist/sn/workflow/WorkflowManager.d.ts +81 -0
  63. package/dist/sn/workflow/WorkflowManager.js +388 -0
  64. package/dist/sn/workflow/WorkflowManager.js.map +1 -0
  65. package/dist/sn/workflow/WorkflowModels.d.ts +242 -0
  66. package/dist/sn/workflow/WorkflowModels.js +5 -0
  67. package/dist/sn/workflow/WorkflowModels.js.map +1 -0
  68. package/package.json +5 -5
@@ -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":""}
@@ -0,0 +1,32 @@
1
+ import { ServiceNowInstance } from "../ServiceNowInstance.js";
2
+ import { AttachmentRecord, UploadAttachmentOptions, ListAttachmentsOptions } from './AttachmentModels.js';
3
+ /**
4
+ * AttachmentManager provides methods for uploading, listing, and retrieving
5
+ * attachments on ServiceNow records via the Attachment API.
6
+ */
7
+ export declare class AttachmentManager {
8
+ static readonly ATTACHMENT_API_PATH = "/api/now/attachment";
9
+ static readonly ATTACHMENT_FILE_API_PATH = "/api/now/attachment/file";
10
+ static readonly ATTACHMENT_TABLE = "sys_attachment";
11
+ private _logger;
12
+ private _req;
13
+ private _tableAPI;
14
+ private _instance;
15
+ constructor(instance: ServiceNowInstance);
16
+ /**
17
+ * Upload an attachment to a ServiceNow record.
18
+ * POST to /api/now/attachment/file with multipart/form-data headers
19
+ * and query params for table_name, table_sys_id, and file_name.
20
+ */
21
+ uploadAttachment(options: UploadAttachmentOptions): Promise<AttachmentRecord>;
22
+ /**
23
+ * List attachments for a specific record.
24
+ * Uses TableAPIRequest.get on sys_attachment with encoded query.
25
+ */
26
+ listAttachments(options: ListAttachmentsOptions): Promise<AttachmentRecord[]>;
27
+ /**
28
+ * Get a single attachment record by sys_id.
29
+ * Uses TableAPIRequest.get on sys_attachment with sys_id filter.
30
+ */
31
+ getAttachment(sysId: string): Promise<AttachmentRecord>;
32
+ }
@@ -0,0 +1,87 @@
1
+ import { Logger } from "../../util/Logger.js";
2
+ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
3
+ import { TableAPIRequest } from "../../comm/http/TableAPIRequest.js";
4
+ /**
5
+ * AttachmentManager provides methods for uploading, listing, and retrieving
6
+ * attachments on ServiceNow records via the Attachment API.
7
+ */
8
+ export class AttachmentManager {
9
+ static ATTACHMENT_API_PATH = '/api/now/attachment';
10
+ static ATTACHMENT_FILE_API_PATH = '/api/now/attachment/file';
11
+ static ATTACHMENT_TABLE = 'sys_attachment';
12
+ _logger = new Logger("AttachmentManager");
13
+ _req;
14
+ _tableAPI;
15
+ _instance;
16
+ constructor(instance) {
17
+ this._instance = instance;
18
+ this._req = new ServiceNowRequest(instance);
19
+ this._tableAPI = new TableAPIRequest(instance);
20
+ }
21
+ /**
22
+ * Upload an attachment to a ServiceNow record.
23
+ * POST to /api/now/attachment/file with multipart/form-data headers
24
+ * and query params for table_name, table_sys_id, and file_name.
25
+ */
26
+ async uploadAttachment(options) {
27
+ const { tableName, recordSysId, fileName, contentType, data } = options;
28
+ this._logger.info(`Uploading attachment '${fileName}' to ${tableName}/${recordSysId}`);
29
+ const query = {
30
+ table_name: tableName,
31
+ table_sys_id: recordSysId,
32
+ file_name: fileName
33
+ };
34
+ const request = {
35
+ path: AttachmentManager.ATTACHMENT_FILE_API_PATH,
36
+ method: 'POST',
37
+ headers: {
38
+ 'Content-Type': contentType,
39
+ 'Accept': 'application/json'
40
+ },
41
+ query: query,
42
+ body: data
43
+ };
44
+ const response = await this._req.post(request);
45
+ if (response && (response.status === 200 || response.status === 201) && response.bodyObject?.result) {
46
+ this._logger.info(`Successfully uploaded attachment '${fileName}' with sys_id: ${response.bodyObject.result.sys_id}`);
47
+ return response.bodyObject.result;
48
+ }
49
+ throw new Error(`Failed to upload attachment '${fileName}' to ${tableName}/${recordSysId}. Status: ${response?.status ?? 'unknown'}`);
50
+ }
51
+ /**
52
+ * List attachments for a specific record.
53
+ * Uses TableAPIRequest.get on sys_attachment with encoded query.
54
+ */
55
+ async listAttachments(options) {
56
+ const { tableName, recordSysId, limit = 100 } = options;
57
+ this._logger.info(`Listing attachments for ${tableName}/${recordSysId}`);
58
+ const query = {
59
+ sysparm_query: `table_name=${tableName}^table_sys_id=${recordSysId}`,
60
+ sysparm_limit: limit
61
+ };
62
+ const response = await this._tableAPI.get(AttachmentManager.ATTACHMENT_TABLE, query);
63
+ if (response && response.status === 200 && response.bodyObject?.result) {
64
+ this._logger.info(`Found ${response.bodyObject.result.length} attachments`);
65
+ return response.bodyObject.result;
66
+ }
67
+ throw new Error(`Failed to list attachments for ${tableName}/${recordSysId}. Status: ${response?.status ?? 'unknown'}`);
68
+ }
69
+ /**
70
+ * Get a single attachment record by sys_id.
71
+ * Uses TableAPIRequest.get on sys_attachment with sys_id filter.
72
+ */
73
+ async getAttachment(sysId) {
74
+ this._logger.info(`Getting attachment with sys_id: ${sysId}`);
75
+ const query = {
76
+ sysparm_query: `sys_id=${sysId}`,
77
+ sysparm_limit: 1
78
+ };
79
+ const response = await this._tableAPI.get(AttachmentManager.ATTACHMENT_TABLE, query);
80
+ if (response && response.status === 200 && response.bodyObject?.result && response.bodyObject.result.length > 0) {
81
+ this._logger.info(`Found attachment: ${response.bodyObject.result[0].file_name}`);
82
+ return response.bodyObject.result[0];
83
+ }
84
+ throw new Error(`Attachment with sys_id '${sysId}' not found. Status: ${response?.status ?? 'unknown'}`);
85
+ }
86
+ }
87
+ //# sourceMappingURL=AttachmentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentManager.js","sourceRoot":"","sources":["../../../src/sn/attachment/AttachmentManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface AttachmentRecord {
2
+ sys_id: string;
3
+ file_name: string;
4
+ table_name: string;
5
+ table_sys_id: string;
6
+ content_type: string;
7
+ size_bytes?: string;
8
+ sys_created_on?: string;
9
+ [key: string]: unknown;
10
+ }
11
+ export interface UploadAttachmentOptions {
12
+ tableName: string;
13
+ recordSysId: string;
14
+ fileName: string;
15
+ contentType: string;
16
+ data: Buffer | string;
17
+ }
18
+ export interface ListAttachmentsOptions {
19
+ tableName: string;
20
+ recordSysId: string;
21
+ limit?: number;
22
+ }
23
+ export interface AttachmentResponse {
24
+ result: AttachmentRecord[];
25
+ }
26
+ export interface AttachmentSingleResponse {
27
+ result: AttachmentRecord;
28
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AttachmentModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentModels.js","sourceRoot":"","sources":["../../../src/sn/attachment/AttachmentModels.ts"],"names":[],"mappings":""}