@sonisoft/now-sdk-ext-core 6.8.0 → 6.9.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 (35) hide show
  1. package/dist/comm/http/FormRecordWriter.js +18 -0
  2. package/dist/comm/http/FormRecordWriter.js.map +1 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/policy/ScanScript.js +3 -0
  7. package/dist/policy/ScanScript.js.map +1 -1
  8. package/dist/sn/metadata/FormLayoutWriter.d.ts +22 -0
  9. package/dist/sn/metadata/FormLayoutWriter.js +237 -0
  10. package/dist/sn/metadata/FormLayoutWriter.js.map +1 -0
  11. package/dist/sn/metadata/MetadataFormWriter.d.ts +0 -1
  12. package/dist/sn/metadata/MetadataFormWriter.js +45 -35
  13. package/dist/sn/metadata/MetadataFormWriter.js.map +1 -1
  14. package/dist/sn/metadata/MetadataModels.d.ts +58 -0
  15. package/dist/sn/metadata/MetadataScopeError.d.ts +14 -2
  16. package/dist/sn/metadata/MetadataScopeError.js +23 -1
  17. package/dist/sn/metadata/MetadataScopeError.js.map +1 -1
  18. package/dist/sn/metadata/internal/MetadataScope.d.ts +12 -0
  19. package/dist/sn/metadata/internal/MetadataScope.js +48 -0
  20. package/dist/sn/metadata/internal/MetadataScope.js.map +1 -0
  21. package/dist/sn/metadata/internal/MetadataUpdateNames.d.ts +8 -0
  22. package/dist/sn/metadata/internal/MetadataUpdateNames.js +28 -0
  23. package/dist/sn/metadata/internal/MetadataUpdateNames.js.map +1 -0
  24. package/dist/sn/metadata/internal/SlushbucketPage.d.ts +20 -0
  25. package/dist/sn/metadata/internal/SlushbucketPage.js +67 -0
  26. package/dist/sn/metadata/internal/SlushbucketPage.js.map +1 -0
  27. package/dist/sn/updateset/UpdateSetManager.js +30 -3
  28. package/dist/sn/updateset/UpdateSetManager.js.map +1 -1
  29. package/dist/sn/updateset/WorkingSetManager.d.ts +53 -0
  30. package/dist/sn/updateset/WorkingSetManager.js +275 -0
  31. package/dist/sn/updateset/WorkingSetManager.js.map +1 -0
  32. package/dist/sn/updateset/WorkingSetModels.d.ts +77 -0
  33. package/dist/sn/updateset/WorkingSetModels.js +12 -0
  34. package/dist/sn/updateset/WorkingSetModels.js.map +1 -0
  35. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { CSRFTokenHelper } from "../../util/CSRFTokenHelper.js";
3
3
  import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
4
4
  import { TableAPIRequest } from "../../comm/http/TableAPIRequest.js";
5
5
  import { BackgroundScriptExecutor } from "../BackgroundScriptExecutor.js";
6
+ import { WorkingSetManager } from "./WorkingSetManager.js";
6
7
  /**
7
8
  * UpdateSetManager provides operations for managing ServiceNow update sets.
8
9
  * Supports setting/getting the current update set, listing, creating,
@@ -72,10 +73,15 @@ export class UpdateSetManager {
72
73
  if (resp.status === 200 && resp.bodyObject?.result?.currentUpdateSet) {
73
74
  const current = resp.bodyObject.result.currentUpdateSet;
74
75
  this._logger.info(`Current update set: ${current.name}`);
76
+ // The picker reports only name and sys_id; read the real state and application.
77
+ const record = await this._tableAPI.get(`${UpdateSetManager.UPDATE_SET_TABLE}/${current.sysId}`, { sysparm_fields: 'sys_id,name,state,application' });
78
+ const row = record?.status === 200 ? record.bodyObject?.result : undefined;
79
+ const application = typeof row?.application === 'object' ? row.application?.value : row?.application;
75
80
  return {
76
81
  sys_id: current.sysId,
77
82
  name: current.name,
78
- state: 'in progress'
83
+ state: row?.state ?? '',
84
+ ...(application ? { application } : {})
79
85
  };
80
86
  }
81
87
  throw new Error(`Failed to get current update set. Status: ${resp.status}`);
@@ -118,6 +124,15 @@ export class UpdateSetManager {
118
124
  if (!options.name || options.name.trim().length === 0) {
119
125
  throw new Error('Update set name is required');
120
126
  }
127
+ // The Table API drops sys_update_set.application (its create ACL), so a set requested for an
128
+ // application is created through WorkingSetManager, which writes and verifies it.
129
+ if (options.application && (!options.state || options.state === 'in progress')) {
130
+ const created = await new WorkingSetManager(this._instance).createUpdateSet({
131
+ application: options.application, name: options.name, description: options.description
132
+ });
133
+ this._logger.info(`Created update set: ${created.name} with sys_id: ${created.sysId} in ${created.application}`);
134
+ return { sys_id: created.sysId, name: created.name, state: created.state, application: created.application, description: options.description };
135
+ }
121
136
  this._logger.info(`Creating update set: ${options.name}`);
122
137
  const body = {
123
138
  name: options.name,
@@ -152,6 +167,10 @@ export class UpdateSetManager {
152
167
  if (!options.recordSysIds && !options.timeRange && !options.sourceUpdateSet) {
153
168
  throw new Error('At least one selection criteria is required: recordSysIds, timeRange, or sourceUpdateSet');
154
169
  }
170
+ if (options.timeRange && !options.recordSysIds && !options.sourceUpdateSet) {
171
+ // A time range alone selects every capture on the instance in that window, from every user and set.
172
+ throw new Error('timeRange requires sourceUpdateSet or recordSysIds');
173
+ }
155
174
  this._logger.info(`Moving records to update set: ${targetUpdateSetId}`);
156
175
  const result = {
157
176
  moved: 0,
@@ -205,7 +224,13 @@ export class UpdateSetManager {
205
224
  options.onProgress(`Moving record ${record.sys_id} (${record.name || record.type || 'unknown'})`);
206
225
  }
207
226
  const putResp = await this._tableAPI.put(UpdateSetManager.UPDATE_XML_TABLE, record.sys_id, { update_set: targetUpdateSetId });
208
- if (putResp && (putResp.status === 200 || putResp.status === 201)) {
227
+ // The platform's move rule can abort a cross-scope move without an error status: read it back.
228
+ const after = putResp && (putResp.status === 200 || putResp.status === 201)
229
+ ? await this._tableAPI.get(`${UpdateSetManager.UPDATE_XML_TABLE}/${record.sys_id}`, { sysparm_fields: 'sys_id,update_set' })
230
+ : undefined;
231
+ const landed = after?.bodyObject?.result?.update_set;
232
+ const landedId = typeof landed === 'object' ? landed?.value : landed;
233
+ if (landedId === targetUpdateSetId) {
209
234
  result.moved++;
210
235
  result.records.push({
211
236
  sys_id: record.sys_id,
@@ -224,7 +249,9 @@ export class UpdateSetManager {
224
249
  });
225
250
  result.errors.push({
226
251
  sys_id: record.sys_id,
227
- error: `Unexpected status: ${putResp?.status ?? 'unknown'}`
252
+ error: putResp && (putResp.status === 200 || putResp.status === 201)
253
+ ? 'Move not applied: the record is not in the target update set (a cross-scope move is aborted by the platform)'
254
+ : `Unexpected status: ${putResp?.status ?? 'unknown'}`
228
255
  });
229
256
  }
230
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSetManager.js","sourceRoot":"","sources":["../../../src/sn/updateset/UpdateSetManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateSetManager.js","sourceRoot":"","sources":["../../../src/sn/updateset/UpdateSetManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { ServiceNowInstance } from '../ServiceNowInstance.js';
2
+ import type { CompleteUpdateSetOptions, CreateScopedUpdateSetOptions, MoveCaptureOptions, MoveCaptureResult, UpdateSetSummary, UseUpdateSetOptions, UseUpdateSetResult, WorkingSet, RestoreWorkingSetResult } from './WorkingSetModels.js';
3
+ /**
4
+ * Update-set lifecycle for changes in any application, including installed Store applications and
5
+ * Global: create a set that really belongs to the application, make it the user's working set in
6
+ * every later session, move one capture into it, complete it, and restore the previous working set.
7
+ *
8
+ * Every step reads its outcome back and throws {@link WorkingSetError} rather than report success
9
+ * it did not observe. Only creating a set and saving the working-set preferences run as background
10
+ * scripts: the Table API drops sys_update_set.application, and no API persists apps.current_app.
11
+ */
12
+ export declare class WorkingSetManager {
13
+ private readonly _instance;
14
+ private readonly _request;
15
+ private readonly _reader;
16
+ constructor(_instance: ServiceNowInstance);
17
+ /** The authenticated user's current application and update set. */
18
+ getWorkingSet(): Promise<WorkingSet>;
19
+ /** Read one update set. */
20
+ getUpdateSet(sysId: string): Promise<UpdateSetSummary>;
21
+ /** Create an In progress set whose application is verified to be the requested one. */
22
+ createUpdateSet(options: CreateScopedUpdateSetOptions): Promise<UpdateSetSummary>;
23
+ /**
24
+ * Make an In progress set the user's working set in every later session: apps.current_app,
25
+ * sys_update_set and updateSetForScope<application> are saved and read back. A Default is
26
+ * refused unless `allowDefault` (for restoring a previous context only).
27
+ */
28
+ useUpdateSet(sysId: string, options?: UseUpdateSetOptions): Promise<UseUpdateSetResult>;
29
+ /**
30
+ * Put back a working set returned by {@link useUpdateSet}. When its set has closed since, the
31
+ * application's single In progress Default is used instead and reported as the fallback.
32
+ */
33
+ restoreWorkingSet(previous: WorkingSet): Promise<RestoreWorkingSetResult>;
34
+ /**
35
+ * Move one capture between two In progress sets of the same application, as the platform's
36
+ * "Handle updates moving between sets" rule allows, and read the move back. Refused before the
37
+ * move when the scopes differ, the target is a Default, the target already holds a capture of
38
+ * the same record, or a newer capture of the same record exists elsewhere.
39
+ */
40
+ moveCapture(options: MoveCaptureOptions): Promise<MoveCaptureResult>;
41
+ /**
42
+ * Mark a set Complete after checking that it holds exactly `expectedCaptures` rows, all of the
43
+ * set's own application, one per record, and that no other user is working in it. Reads the
44
+ * state back. The caller restores its own working set afterwards ({@link restoreWorkingSet}).
45
+ */
46
+ completeUpdateSet(sysId: string, options: CompleteUpdateSetOptions): Promise<UpdateSetSummary>;
47
+ private user;
48
+ /** The value a set of this application carries in sys_update_set.application. */
49
+ private application;
50
+ private persist;
51
+ /** Run a global background script with JSON parameters `P`; `out(value)` returns one JSON result. */
52
+ private script;
53
+ }
@@ -0,0 +1,275 @@
1
+ import { SessionManager } from '../../comm/http/SessionManager.js';
2
+ import { BackgroundScriptExecutor } from '../BackgroundScriptExecutor.js';
3
+ import { MetadataReader } from '../metadata/internal/MetadataReader.js';
4
+ import { WorkingSetError } from './WorkingSetModels.js';
5
+ const ID = /^[a-f0-9]{32}$/;
6
+ const MARKER = 'NEX_WORKING_SET_RESULT=';
7
+ /**
8
+ * Update-set lifecycle for changes in any application, including installed Store applications and
9
+ * Global: create a set that really belongs to the application, make it the user's working set in
10
+ * every later session, move one capture into it, complete it, and restore the previous working set.
11
+ *
12
+ * Every step reads its outcome back and throws {@link WorkingSetError} rather than report success
13
+ * it did not observe. Only creating a set and saving the working-set preferences run as background
14
+ * scripts: the Table API drops sys_update_set.application, and no API persists apps.current_app.
15
+ */
16
+ export class WorkingSetManager {
17
+ _instance;
18
+ _request;
19
+ _reader;
20
+ constructor(_instance) {
21
+ this._instance = _instance;
22
+ this._request = SessionManager.getInstance().getRequest(_instance);
23
+ this._reader = new MetadataReader(this._request);
24
+ }
25
+ /** The authenticated user's current application and update set. */
26
+ async getWorkingSet() {
27
+ const user = await this.user();
28
+ const rows = await this._reader.rows('sys_user_preference', `user=${user}^nameINapps.current_app,sys_update_set`, 'sys_id,user,name,value');
29
+ const value = (name) => {
30
+ const values = [...new Set(rows.filter(row => row.user === user && row.name === name).map(row => row.value))];
31
+ if (values.length > 1)
32
+ throw new WorkingSetError('evidence_unavailable');
33
+ return values[0] ?? '';
34
+ };
35
+ return { application: value('apps.current_app'), updateSet: value('sys_update_set') };
36
+ }
37
+ /** Read one update set. */
38
+ async getUpdateSet(sysId) {
39
+ if (!ID.test(sysId ?? ''))
40
+ throw new WorkingSetError('invalid_input');
41
+ const row = await this._reader.exact('sys_update_set', sysId, 'name,state,application,is_default');
42
+ if (!row)
43
+ throw new WorkingSetError('update_set_not_found');
44
+ return summary(row);
45
+ }
46
+ /** Create an In progress set whose application is verified to be the requested one. */
47
+ async createUpdateSet(options) {
48
+ const name = options?.name?.trim() ?? '';
49
+ if (!name || name.length > 80 || /\p{Cc}/u.test(name) || /\p{Cc}/u.test(options.description ?? ''))
50
+ throw new WorkingSetError('invalid_input');
51
+ const application = await this.application(options.application);
52
+ // The duplicate check runs with addQuery inside the script: the caller's name never becomes encoded-query text,
53
+ // where '^' would split it and a javascript: term would run on the server.
54
+ const created = await this.script(`
55
+ var open = new GlideRecord('sys_update_set');
56
+ open.addQuery('name', P.name);
57
+ open.addQuery('application', P.application);
58
+ open.addQuery('state', 'in progress');
59
+ open.setLimit(1);
60
+ open.query();
61
+ if (open.hasNext()) { out({ exists: true }); return; }
62
+ var set = new GlideRecord('sys_update_set');
63
+ set.initialize();
64
+ set.setValue('name', P.name);
65
+ set.setValue('state', 'in progress');
66
+ set.setValue('application', P.application);
67
+ if (P.description) set.setValue('description', P.description);
68
+ var id = set.insert();
69
+ out({ sys_id: id ? '' + id : '' });`, { name, application, description: options.description ?? '' });
70
+ if (created.exists === true)
71
+ throw new WorkingSetError('update_set_exists');
72
+ const createdId = typeof created.sys_id === 'string' ? created.sys_id : '';
73
+ if (!ID.test(createdId))
74
+ throw new WorkingSetError('create_not_applied');
75
+ const set = await this.getUpdateSet(createdId);
76
+ if (set.application !== application || set.state !== 'in progress' || set.name !== name) {
77
+ throw new WorkingSetError('application_not_applied', { updateSet: set.sysId, application: set.application });
78
+ }
79
+ return set;
80
+ }
81
+ /**
82
+ * Make an In progress set the user's working set in every later session: apps.current_app,
83
+ * sys_update_set and updateSetForScope<application> are saved and read back. A Default is
84
+ * refused unless `allowDefault` (for restoring a previous context only).
85
+ */
86
+ async useUpdateSet(sysId, options = {}) {
87
+ const set = await this.getUpdateSet(sysId);
88
+ if (set.state !== 'in progress')
89
+ throw new WorkingSetError('update_set_closed', { updateSet: set.sysId, state: set.state });
90
+ if (set.isDefault && !options.allowDefault)
91
+ throw new WorkingSetError('default_update_set', { updateSet: set.sysId });
92
+ const previous = await this.getWorkingSet();
93
+ try {
94
+ return { previous, current: await this.persist(set.application, set.sysId), updateSet: set };
95
+ }
96
+ catch (error) {
97
+ // The preferences may already have changed: the caller needs the pair to put back.
98
+ if (error instanceof WorkingSetError)
99
+ throw new WorkingSetError(error.code, { ...error.detail, previous });
100
+ throw new WorkingSetError('working_set_not_applied', { updateSet: set.sysId, previous });
101
+ }
102
+ }
103
+ /**
104
+ * Put back a working set returned by {@link useUpdateSet}. When its set has closed since, the
105
+ * application's single In progress Default is used instead and reported as the fallback.
106
+ */
107
+ async restoreWorkingSet(previous) {
108
+ // A user with no saved preference reads back as '': the platform's own default is Global and its Default set.
109
+ const requested = previous?.application === '' ? 'global' : previous?.application;
110
+ const application = requested === 'global' || ID.test(requested ?? '') ? requested : undefined;
111
+ const updateSet = previous?.updateSet ?? '';
112
+ if (!application || (updateSet !== '' && !ID.test(updateSet)))
113
+ throw new WorkingSetError('invalid_input');
114
+ let set;
115
+ if (updateSet) {
116
+ try {
117
+ set = await this.getUpdateSet(updateSet);
118
+ }
119
+ catch (error) {
120
+ if (!(error instanceof WorkingSetError && error.code === 'update_set_not_found'))
121
+ throw error;
122
+ }
123
+ }
124
+ if (set && set.application !== application)
125
+ throw new WorkingSetError('scope_mismatch', { application, updateSet: set.sysId });
126
+ if (set?.state === 'in progress')
127
+ return { restored: await this.persist(application, set.sysId) };
128
+ const defaults = await this._reader.rows('sys_update_set', `application=${application}^is_default=true^state=in progress`, 'sys_id,application');
129
+ if (defaults.length !== 1 || defaults[0].application !== application)
130
+ throw new WorkingSetError('no_single_default', { application });
131
+ return { restored: await this.persist(application, defaults[0].sys_id), fallback: 'application_default' };
132
+ }
133
+ /**
134
+ * Move one capture between two In progress sets of the same application, as the platform's
135
+ * "Handle updates moving between sets" rule allows, and read the move back. Refused before the
136
+ * move when the scopes differ, the target is a Default, the target already holds a capture of
137
+ * the same record, or a newer capture of the same record exists elsewhere.
138
+ */
139
+ async moveCapture(options) {
140
+ const { capture, sourceSet, targetSet } = options ?? {};
141
+ if (![capture, sourceSet, targetSet].every(id => ID.test(id ?? '')) || sourceSet === targetSet)
142
+ throw new WorkingSetError('invalid_input');
143
+ if (/[^\p{L}\p{N} .,:;()/_-]/u.test(options.reason ?? '') || !options.reason?.trim())
144
+ throw new WorkingSetError('invalid_input');
145
+ const row = await this._reader.exact('sys_update_xml', capture, 'name,update_set,application,sys_recorded_at,comments');
146
+ if (!row || row.update_set !== sourceSet)
147
+ throw new WorkingSetError('capture_not_in_source', { capture });
148
+ const [source, target] = [await this.getUpdateSet(sourceSet), await this.getUpdateSet(targetSet)];
149
+ if (source.state !== 'in progress' || target.state !== 'in progress')
150
+ throw new WorkingSetError('update_set_closed', { updateSet: source.state !== 'in progress' ? source.sysId : target.sysId });
151
+ if (target.isDefault)
152
+ throw new WorkingSetError('default_update_set', { updateSet: target.sysId });
153
+ if (target.application !== row.application)
154
+ throw new WorkingSetError('scope_mismatch', { application: row.application, updateSet: target.sysId });
155
+ const same = await this._reader.rows('sys_update_xml', `name=${row.name}`, 'sys_id,name,update_set,sys_recorded_at');
156
+ if (same.some(other => other.name !== row.name))
157
+ throw new WorkingSetError('evidence_unavailable');
158
+ if (same.some(other => other.update_set === targetSet))
159
+ throw new WorkingSetError('duplicate_capture', { updateSet: targetSet });
160
+ if (same.some(other => other.sys_id !== capture && other.sys_recorded_at >= row.sys_recorded_at))
161
+ throw new WorkingSetError('newer_capture_exists', { capture });
162
+ const comments = [row.comments, `Moved to ${target.name}: ${options.reason.trim()}`].filter(Boolean).join('\n');
163
+ const response = await this._request.put({ path: `/api/now/table/sys_update_xml/${capture}`, method: 'PUT',
164
+ headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, query: { sysparm_fields: 'sys_id' },
165
+ body: null, json: { update_set: targetSet, comments } });
166
+ const after = await this._reader.exact('sys_update_xml', capture, 'update_set,application');
167
+ if (after?.update_set !== targetSet)
168
+ throw new WorkingSetError('move_not_applied', { capture, status: response?.status });
169
+ return { capture, name: row.name, application: row.application, from: source, to: target };
170
+ }
171
+ /**
172
+ * Mark a set Complete after checking that it holds exactly `expectedCaptures` rows, all of the
173
+ * set's own application, one per record, and that no other user is working in it. Reads the
174
+ * state back. The caller restores its own working set afterwards ({@link restoreWorkingSet}).
175
+ */
176
+ async completeUpdateSet(sysId, options) {
177
+ if (!Number.isSafeInteger(options?.expectedCaptures) || options.expectedCaptures < 0)
178
+ throw new WorkingSetError('invalid_input');
179
+ const set = await this.getUpdateSet(sysId);
180
+ if (set.state !== 'in progress')
181
+ throw new WorkingSetError('update_set_closed', { updateSet: set.sysId, state: set.state });
182
+ if (set.isDefault)
183
+ throw new WorkingSetError('default_update_set', { updateSet: set.sysId });
184
+ const rows = await this._reader.rows('sys_update_xml', `update_set=${sysId}`, 'sys_id,name,update_set,application');
185
+ if (rows.some(row => row.update_set !== sysId))
186
+ throw new WorkingSetError('evidence_unavailable');
187
+ if (rows.length !== options.expectedCaptures)
188
+ throw new WorkingSetError('capture_count_mismatch', { expected: options.expectedCaptures, actual: rows.length });
189
+ const strays = rows.filter(row => row.application !== set.application);
190
+ if (strays.length)
191
+ throw new WorkingSetError('mixed_scope_capture', { captures: strays.map(row => row.sys_id) });
192
+ const names = rows.map(row => row.name);
193
+ if (new Set(names).size !== names.length)
194
+ throw new WorkingSetError('duplicate_capture', { updateSet: sysId });
195
+ const user = await this.user();
196
+ // Another user's current set, or the set remembered for the application, both still capture into it.
197
+ const users = await this._reader.rows('sys_user_preference', `name=sys_update_set^ORnameSTARTSWITHupdateSetForScope^value=${sysId}`, 'sys_id,user,name,value');
198
+ if (users.some(row => row.user !== user))
199
+ throw new WorkingSetError('update_set_in_use', { updateSet: sysId });
200
+ await this._request.put({ path: `/api/now/table/sys_update_set/${sysId}`, method: 'PUT',
201
+ headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, query: { sysparm_fields: 'sys_id' },
202
+ body: null, json: { state: 'complete' } });
203
+ const completed = await this.getUpdateSet(sysId);
204
+ if (completed.state !== 'complete')
205
+ throw new WorkingSetError('complete_not_applied', { updateSet: sysId, state: completed.state });
206
+ // A capture that arrived between the checks and the state change is in the completed set: say so.
207
+ const final = await this._reader.rows('sys_update_xml', `update_set=${sysId}`, 'sys_id,update_set');
208
+ if (final.length !== rows.length || final.some(row => !rows.some(checked => checked.sys_id === row.sys_id))) {
209
+ throw new WorkingSetError('capture_count_mismatch', { updateSet: sysId, state: completed.state, expected: rows.length, actual: final.length });
210
+ }
211
+ return completed;
212
+ }
213
+ async user() {
214
+ const users = await this._reader.rows('sys_user', 'sys_id=javascript:gs.getUserID()', 'sys_id');
215
+ if (users.length !== 1 || !ID.test(users[0].sys_id))
216
+ throw new WorkingSetError('evidence_unavailable');
217
+ return users[0].sys_id;
218
+ }
219
+ /** The value a set of this application carries in sys_update_set.application. */
220
+ async application(ref) {
221
+ if (ref === 'global')
222
+ return 'global';
223
+ if (!ID.test(ref ?? '') && !/^[a-z0-9_]{1,40}$/i.test(ref ?? ''))
224
+ throw new WorkingSetError('invalid_input');
225
+ // A scope name must resolve to exactly one active application; scope strings are not unique.
226
+ const scopes = ID.test(ref) ? await this._reader.rows('sys_scope', `sys_id=${ref}`, 'sys_id,scope')
227
+ : await this._reader.rows('sys_scope', `scope=${ref}^active=true`, 'sys_id,scope');
228
+ if (scopes.length !== 1)
229
+ throw new WorkingSetError(scopes.length ? 'invalid_input' : 'application_not_found', ID.test(ref) ? { application: ref } : undefined);
230
+ return scopes[0].scope === 'global' ? 'global' : scopes[0].sys_id;
231
+ }
232
+ async persist(application, updateSet) {
233
+ await this.script(`
234
+ gs.getUser().savePreference('apps.current_app', P.application);
235
+ gs.setCurrentApplicationId(P.application);
236
+ new GlideUpdateSet().set(P.updateSet);
237
+ out({ ok: true });`, { application, updateSet });
238
+ const after = await this.getWorkingSet();
239
+ const user = await this.user();
240
+ const scoped = await this._reader.rows('sys_user_preference', `user=${user}^name=updateSetForScope${application}`, 'sys_id,user,name,value');
241
+ if (after.application !== application || after.updateSet !== updateSet || !scoped.length || scoped.some(row => row.value !== updateSet)) {
242
+ throw new WorkingSetError('working_set_not_applied', { application: after.application, updateSet: after.updateSet });
243
+ }
244
+ return after;
245
+ }
246
+ /** Run a global background script with JSON parameters `P`; `out(value)` returns one JSON result. */
247
+ async script(body, params) {
248
+ const literal = JSON.stringify(params).replace(/[\u2028\u2029<>]/g, c => `\\u${c.charCodeAt(0).toString(16).padStart(4, '0')}`);
249
+ const script = `(function () {
250
+ var P = ${literal};
251
+ function out(value) { gs.print('${MARKER}' + JSON.stringify(value)); }
252
+ ${body}
253
+ })();`;
254
+ const result = await new BackgroundScriptExecutor(this._instance, 'global').executeScript(script, 'global', this._instance);
255
+ const lines = [...(result.scriptResults ?? []).map(line => line.line), ...(result.consoleResult ?? [])];
256
+ const line = lines.map(decode).find(text => text.includes(MARKER));
257
+ if (!line)
258
+ throw new WorkingSetError('script_result_unavailable');
259
+ try {
260
+ return JSON.parse(line.slice(line.indexOf(MARKER) + MARKER.length));
261
+ }
262
+ catch {
263
+ throw new WorkingSetError('script_result_unavailable');
264
+ }
265
+ }
266
+ }
267
+ function decode(text) {
268
+ return String(text ?? '').replace(/<BR\/?>/gi, '').replace(/&quot;/g, '"').replace(/&#39;/g, "'")
269
+ .replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&').trim();
270
+ }
271
+ function summary(row) {
272
+ return { sysId: row.sys_id, name: row.name, state: row.state, application: row.application,
273
+ isDefault: row.is_default === 'true' || row.is_default === '1' };
274
+ }
275
+ //# sourceMappingURL=WorkingSetManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingSetManager.js","sourceRoot":"","sources":["../../../src/sn/updateset/WorkingSetManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /** The user's working set: apps.current_app and sys_update_set. `global` or a sys_scope sys_id. */
2
+ export interface WorkingSet {
3
+ application: string;
4
+ updateSet: string;
5
+ }
6
+ export interface UpdateSetSummary {
7
+ sysId: string;
8
+ name: string;
9
+ state: string;
10
+ /** sys_update_set.application: `global`, or the application's sys_scope sys_id. */
11
+ application: string;
12
+ isDefault: boolean;
13
+ }
14
+ export interface CreateScopedUpdateSetOptions {
15
+ /**
16
+ * `global`, the sys_scope sys_id of any application (including an installed Store application),
17
+ * or a scope name that resolves to exactly one active application.
18
+ */
19
+ application: string;
20
+ /** At most 80 characters. A second In progress set with the same name in the application is refused. */
21
+ name: string;
22
+ description?: string;
23
+ }
24
+ export interface UseUpdateSetOptions {
25
+ /** Permit an application's Default set. Only for restoring a previous context: never develop in a Default. */
26
+ allowDefault?: boolean;
27
+ }
28
+ export interface UseUpdateSetResult {
29
+ /** Pass to restoreWorkingSet when the work is done. */
30
+ previous: WorkingSet;
31
+ current: WorkingSet;
32
+ updateSet: UpdateSetSummary;
33
+ }
34
+ export interface RestoreWorkingSetResult {
35
+ restored: WorkingSet;
36
+ /** The previous set had closed; the application's Default was made current instead. */
37
+ fallback?: 'application_default';
38
+ }
39
+ export interface MoveCaptureOptions {
40
+ /** sys_update_xml sys_id. */
41
+ capture: string;
42
+ sourceSet: string;
43
+ targetSet: string;
44
+ /** Appended to the capture's comments. Letters, digits and simple punctuation only. */
45
+ reason: string;
46
+ }
47
+ export interface MoveCaptureResult {
48
+ capture: string;
49
+ name: string;
50
+ application: string;
51
+ from: UpdateSetSummary;
52
+ to: UpdateSetSummary;
53
+ }
54
+ export interface CompleteUpdateSetOptions {
55
+ /** The number of captures the caller expects in the set. Completion is refused on any other count. */
56
+ expectedCaptures: number;
57
+ }
58
+ export type WorkingSetErrorCode = 'invalid_input' | 'evidence_unavailable' | 'update_set_not_found' | 'update_set_exists' | 'application_not_found' | 'create_not_applied' | 'application_not_applied' | 'update_set_closed' | 'default_update_set' | 'working_set_not_applied' | 'no_single_default' | 'capture_not_in_source' | 'scope_mismatch' | 'duplicate_capture' | 'newer_capture_exists' | 'move_not_applied' | 'capture_count_mismatch' | 'mixed_scope_capture' | 'update_set_in_use' | 'complete_not_applied' | 'script_result_unavailable';
59
+ /** Identifiers and counts that explain a refusal; never names, descriptions or payloads. */
60
+ export interface WorkingSetErrorDetail {
61
+ updateSet?: string;
62
+ application?: string;
63
+ capture?: string;
64
+ captures?: string[];
65
+ state?: string;
66
+ expected?: number;
67
+ actual?: number;
68
+ status?: number;
69
+ /** The working set before a change that did not read back: pass it to restoreWorkingSet. */
70
+ previous?: WorkingSet;
71
+ }
72
+ /** An update-set lifecycle step was refused, or its outcome did not read back as required. */
73
+ export declare class WorkingSetError extends Error {
74
+ readonly code: WorkingSetErrorCode;
75
+ readonly detail?: WorkingSetErrorDetail;
76
+ constructor(code: WorkingSetErrorCode, detail?: WorkingSetErrorDetail);
77
+ }
@@ -0,0 +1,12 @@
1
+ /** An update-set lifecycle step was refused, or its outcome did not read back as required. */
2
+ export class WorkingSetError extends Error {
3
+ code;
4
+ detail;
5
+ constructor(code, detail) {
6
+ super(`Update set operation failed: ${code}`);
7
+ this.code = code;
8
+ this.detail = detail;
9
+ this.name = 'WorkingSetError';
10
+ }
11
+ }
12
+ //# sourceMappingURL=WorkingSetModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingSetModels.js","sourceRoot":"","sources":["../../../src/sn/updateset/WorkingSetModels.ts"],"names":[],"mappings":"AA8EA,8FAA8F;AAC9F,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACH;IAA2C;IAA9E,YAAmC,IAAyB,EAAkB,MAA8B;QACxG,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QADf,SAAI,GAAJ,IAAI,CAAqB;QAAkB,WAAM,GAAN,MAAM,CAAwB;QAExG,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonisoft/now-sdk-ext-core",
3
- "version": "6.8.0",
3
+ "version": "6.9.0",
4
4
  "description": "Comprehensive TypeScript library extending ServiceNow SDK with application management, ATF testing, real-time log monitoring, AMB event subscriptions, and automation tools",
5
5
  "keywords": [
6
6
  "servicenow",