@sonisoft/now-sdk-ext-core 6.5.2 → 6.6.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.
package/README.md CHANGED
@@ -973,6 +973,24 @@ const session = await createBrowserSession({alias: 'dev206299'});
973
973
  const context = await browser.newContext({storageState: session.storageState});
974
974
  ```
975
975
 
976
+ `injectBrowserSessionCdp({cdpUrl, session})` applies that same `storageState` to an
977
+ already-running Chromium DevTools endpoint (Edge, Chrome, or Brave started with
978
+ `--remote-debugging-port`) and navigates to `session.instanceUrl`. It does not close
979
+ the browser. Desktop failures use `DesktopBrowserError` (`NEX_BROWSER_UNAVAILABLE` /
980
+ `NEX_BROWSER_PROTOCOL`), not `SessionAuthError`. Cookie values are never logged.
981
+
982
+ Live coverage is `test/integration/auth/DesktopBrowserSession_IT.test.ts`. It mints a
983
+ session for `SN_INSTANCE_ALIAS` (default `dev206299` in `test/test_utils/test_config.ts`)
984
+ and injects it into a loopback DevTools fixture. Override the alias in `.env` or the
985
+ environment — do not embed an instance name in the test.
986
+
987
+ ```ts
988
+ await injectBrowserSessionCdp({
989
+ cdpUrl: 'http://127.0.0.1:9222',
990
+ session,
991
+ });
992
+ ```
993
+
976
994
  Check `initCredentialStore().active` when the application requires the headless
977
995
  backend. Imports alone never install the shim. Keep session state out of logs and
978
996
  source control. A saved state file does not renew itself.
@@ -27,4 +27,6 @@ export declare function verifiedUserSession(credentials: SessionCredentials): Pr
27
27
  /** Create a fresh, verified Playwright session using an existing SDK alias. */
28
28
  export declare function createBrowserSession(options: {
29
29
  alias: string;
30
+ /** Pre-resolved credentials. When omitted, the alias is looked up in the SDK store. */
31
+ credentials?: SessionCredentials;
30
32
  }): Promise<BrowserSession>;
@@ -1,5 +1,5 @@
1
1
  import { getUserSession } from '@servicenow/sdk-cli-core/dist/auth/index.js';
2
- import { resolveSessionCredentials } from './CredentialProvider.js';
2
+ import { resolveSessionCredentials, sessionCredentials } from './CredentialProvider.js';
3
3
  import { SessionAuthError } from './SessionAuthError.js';
4
4
  import { Cookie } from 'tough-cookie';
5
5
  /** Establish SDK cookies and prove they authenticate without the OAuth bearer token. */
@@ -52,7 +52,12 @@ export async function verifiedUserSession(credentials) {
52
52
  }
53
53
  /** Create a fresh, verified Playwright session using an existing SDK alias. */
54
54
  export async function createBrowserSession(options) {
55
- const credentials = await resolveSessionCredentials(options.alias);
55
+ if (!options.alias.trim()) {
56
+ throw new SessionAuthError('NEX_AUTH_INVALID', 'An explicit credential alias is required.');
57
+ }
58
+ const credentials = options.credentials
59
+ ? sessionCredentials(options.credentials)
60
+ : await resolveSessionCredentials(options.alias);
56
61
  const session = await verifiedUserSession(credentials);
57
62
  const origin = new URL(credentials.instanceUrl);
58
63
  const serialized = session.cookie.serializeSync().cookies;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserSession.js","sourceRoot":"","sources":["../../src/auth/BrowserSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrowserSession.js","sourceRoot":"","sources":["../../src/auth/BrowserSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { BrowserSession } from './BrowserSession.js';
2
+ /** Desktop / DevTools failures safe to expose across CLI and embedders. */
3
+ export declare class DesktopBrowserError extends Error {
4
+ readonly code: 'NEX_BROWSER_UNAVAILABLE' | 'NEX_BROWSER_PROTOCOL';
5
+ readonly remediation: string;
6
+ constructor(code: 'NEX_BROWSER_UNAVAILABLE' | 'NEX_BROWSER_PROTOCOL', remediation: string);
7
+ }
8
+ export declare function isDesktopBrowserError(error: unknown): error is DesktopBrowserError;
9
+ /** Minimal WebSocket surface used by CDP. `ws` and test fakes both satisfy this. */
10
+ export interface CdpSocket {
11
+ readonly readyState: number;
12
+ on(event: 'open' | 'message' | 'error' | 'close', listener: (data?: unknown) => void): unknown;
13
+ once(event: 'open' | 'message' | 'error' | 'close', listener: (data?: unknown) => void): unknown;
14
+ send(data: string): void;
15
+ close(): void;
16
+ }
17
+ export interface CdpWebSocketConstructor {
18
+ new (url: string): CdpSocket;
19
+ }
20
+ export interface InjectBrowserSessionCdpOptions {
21
+ cdpUrl: string;
22
+ session: BrowserSession;
23
+ timeoutMs?: number;
24
+ fetch?: typeof fetch;
25
+ WebSocket?: CdpWebSocketConstructor;
26
+ }
27
+ /**
28
+ * Apply a verified cookie session to an existing Chromium DevTools endpoint
29
+ * and navigate to the instance. Does not close the browser.
30
+ */
31
+ export declare function injectBrowserSessionCdp(options: InjectBrowserSessionCdpOptions): Promise<void>;
@@ -0,0 +1,278 @@
1
+ import { WebSocket as WsWebSocket } from 'ws';
2
+ /** Desktop / DevTools failures safe to expose across CLI and embedders. */
3
+ export class DesktopBrowserError extends Error {
4
+ code;
5
+ remediation;
6
+ constructor(code, remediation) {
7
+ super(remediation);
8
+ this.code = code;
9
+ this.remediation = remediation;
10
+ this.name = 'DesktopBrowserError';
11
+ }
12
+ }
13
+ export function isDesktopBrowserError(error) {
14
+ if (!error || typeof error !== 'object')
15
+ return false;
16
+ const value = error;
17
+ return (value.code === 'NEX_BROWSER_UNAVAILABLE' || value.code === 'NEX_BROWSER_PROTOCOL') &&
18
+ typeof value.remediation === 'string';
19
+ }
20
+ const DEFAULT_TIMEOUT_MS = 15_000;
21
+ const POLL_MS = 250;
22
+ const SOCKET_TIMEOUT_MS = 10_000;
23
+ const UNAVAILABLE = 'The browser DevTools endpoint did not become ready. Confirm the browser started with --remote-debugging-port and retry.';
24
+ const PROTOCOL = 'The browser rejected a DevTools command. Confirm the debug port is reachable and retry.';
25
+ function sleep(ms) {
26
+ return new Promise(resolve => setTimeout(resolve, ms));
27
+ }
28
+ function parseCdpHttpUrl(value) {
29
+ let origin;
30
+ try {
31
+ origin = new URL(value);
32
+ }
33
+ catch {
34
+ throw new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', 'Browser sessions require an HTTP DevTools URL.');
35
+ }
36
+ if ((origin.protocol !== 'http:' && origin.protocol !== 'https:') || origin.username || origin.password) {
37
+ throw new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', 'Browser sessions require an HTTP DevTools URL without embedded credentials.');
38
+ }
39
+ return origin;
40
+ }
41
+ function jsonBody(value) {
42
+ if (!value || typeof value !== 'object')
43
+ return undefined;
44
+ return Array.isArray(value) ? value : value;
45
+ }
46
+ async function readJson(response) {
47
+ try {
48
+ return await response.json();
49
+ }
50
+ catch {
51
+ return undefined;
52
+ }
53
+ }
54
+ async function waitForVersion(origin, timeoutMs, fetchImpl) {
55
+ const deadline = Date.now() + timeoutMs;
56
+ const endpoint = new URL('/json/version', origin);
57
+ while (Date.now() < deadline) {
58
+ try {
59
+ const response = await fetchImpl(endpoint, { signal: AbortSignal.timeout(2_000) });
60
+ if (response.ok) {
61
+ const body = jsonBody(await readJson(response));
62
+ if (body && !Array.isArray(body))
63
+ return body;
64
+ }
65
+ }
66
+ catch {
67
+ // Browser has not opened the debug port yet.
68
+ }
69
+ await sleep(Math.min(POLL_MS, Math.max(0, deadline - Date.now())));
70
+ }
71
+ throw new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', UNAVAILABLE);
72
+ }
73
+ async function listTargets(origin, fetchImpl) {
74
+ for (const path of ['/json/list', '/json']) {
75
+ try {
76
+ const response = await fetchImpl(new URL(path, origin), { signal: AbortSignal.timeout(2_000) });
77
+ if (!response.ok)
78
+ continue;
79
+ const body = jsonBody(await readJson(response));
80
+ if (Array.isArray(body))
81
+ return body;
82
+ }
83
+ catch {
84
+ // Try the next discovery path.
85
+ }
86
+ }
87
+ return [];
88
+ }
89
+ function pageSocketUrl(targets) {
90
+ for (const target of targets) {
91
+ if (!target || typeof target !== 'object')
92
+ continue;
93
+ const record = target;
94
+ if (record.type === 'page' && typeof record.webSocketDebuggerUrl === 'string' && record.webSocketDebuggerUrl) {
95
+ return record.webSocketDebuggerUrl;
96
+ }
97
+ }
98
+ return undefined;
99
+ }
100
+ function socketData(data) {
101
+ if (typeof data === 'string')
102
+ return data;
103
+ if (data instanceof Uint8Array)
104
+ return new TextDecoder().decode(data);
105
+ return '';
106
+ }
107
+ function cdpCookie(cookie, instanceUrl) {
108
+ const domain = cookie.domain.startsWith('.') ? cookie.domain.slice(1) : cookie.domain;
109
+ const params = {
110
+ name: cookie.name,
111
+ value: cookie.value,
112
+ domain,
113
+ path: cookie.path || '/',
114
+ secure: cookie.secure,
115
+ httpOnly: cookie.httpOnly,
116
+ sameSite: cookie.sameSite,
117
+ url: instanceUrl,
118
+ };
119
+ if (Number.isFinite(cookie.expires) && cookie.expires > 0)
120
+ params.expires = cookie.expires;
121
+ return params;
122
+ }
123
+ class CdpClient {
124
+ socket;
125
+ nextId = 0;
126
+ pending = new Map();
127
+ constructor(socket) {
128
+ this.socket = socket;
129
+ this.socket.on('message', (data) => {
130
+ let parsed;
131
+ try {
132
+ parsed = JSON.parse(socketData(data));
133
+ }
134
+ catch {
135
+ return;
136
+ }
137
+ if (typeof parsed.id !== 'number')
138
+ return;
139
+ const waiter = this.pending.get(parsed.id);
140
+ if (!waiter)
141
+ return;
142
+ this.pending.delete(parsed.id);
143
+ if (parsed.error)
144
+ waiter.reject(new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL));
145
+ else
146
+ waiter.resolve(parsed.result ?? {});
147
+ });
148
+ }
149
+ send(method, params, sessionId) {
150
+ const id = ++this.nextId;
151
+ const payload = { id, method };
152
+ if (params)
153
+ payload.params = params;
154
+ if (sessionId)
155
+ payload.sessionId = sessionId;
156
+ return new Promise((resolve, reject) => {
157
+ const timer = setTimeout(() => {
158
+ this.pending.delete(id);
159
+ reject(new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL));
160
+ }, SOCKET_TIMEOUT_MS);
161
+ this.pending.set(id, {
162
+ resolve: value => { clearTimeout(timer); resolve(value); },
163
+ reject: error => { clearTimeout(timer); reject(error); },
164
+ });
165
+ try {
166
+ this.socket.send(JSON.stringify(payload));
167
+ }
168
+ catch {
169
+ clearTimeout(timer);
170
+ this.pending.delete(id);
171
+ reject(new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL));
172
+ }
173
+ });
174
+ }
175
+ close() {
176
+ for (const waiter of this.pending.values())
177
+ waiter.reject(new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL));
178
+ this.pending.clear();
179
+ try {
180
+ this.socket.close();
181
+ }
182
+ catch { /* already closed */ }
183
+ }
184
+ }
185
+ async function openSocket(url, WebSocketImpl) {
186
+ const socket = new WebSocketImpl(url);
187
+ if (socket.readyState === 1)
188
+ return socket;
189
+ return new Promise((resolve, reject) => {
190
+ const timer = setTimeout(() => {
191
+ try {
192
+ socket.close();
193
+ }
194
+ catch { /* ignore */ }
195
+ reject(new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', UNAVAILABLE));
196
+ }, SOCKET_TIMEOUT_MS);
197
+ const succeed = () => { clearTimeout(timer); resolve(socket); };
198
+ const fail = () => {
199
+ clearTimeout(timer);
200
+ try {
201
+ socket.close();
202
+ }
203
+ catch { /* ignore */ }
204
+ reject(new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', UNAVAILABLE));
205
+ };
206
+ socket.once('open', succeed);
207
+ socket.once('error', fail);
208
+ });
209
+ }
210
+ async function applyCookiesAndNavigate(client, session, sessionId) {
211
+ await client.send('Network.enable', undefined, sessionId);
212
+ try {
213
+ await client.send('Storage.setCookies', {
214
+ cookies: session.storageState.cookies.map(cookie => cdpCookie(cookie, session.instanceUrl)),
215
+ }, sessionId);
216
+ }
217
+ catch {
218
+ for (const cookie of session.storageState.cookies) {
219
+ await client.send('Network.setCookie', cdpCookie(cookie, session.instanceUrl), sessionId);
220
+ }
221
+ }
222
+ await client.send('Page.navigate', { url: session.instanceUrl }, sessionId);
223
+ }
224
+ async function injectThroughSocket(url, session, WebSocketImpl, attachTarget) {
225
+ const socket = await openSocket(url, WebSocketImpl);
226
+ const client = new CdpClient(socket);
227
+ try {
228
+ let sessionId;
229
+ if (attachTarget) {
230
+ const created = await client.send('Target.createTarget', { url: 'about:blank' });
231
+ const targetId = typeof created.targetId === 'string' ? created.targetId : undefined;
232
+ if (!targetId)
233
+ throw new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL);
234
+ const attached = await client.send('Target.attachToTarget', { targetId, flatten: true });
235
+ sessionId = typeof attached.sessionId === 'string' ? attached.sessionId : undefined;
236
+ if (!sessionId)
237
+ throw new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL);
238
+ }
239
+ await applyCookiesAndNavigate(client, session, sessionId);
240
+ }
241
+ finally {
242
+ client.close();
243
+ }
244
+ }
245
+ /**
246
+ * Apply a verified cookie session to an existing Chromium DevTools endpoint
247
+ * and navigate to the instance. Does not close the browser.
248
+ */
249
+ export async function injectBrowserSessionCdp(options) {
250
+ const origin = parseCdpHttpUrl(options.cdpUrl);
251
+ if (!options.session?.instanceUrl || !Array.isArray(options.session.storageState?.cookies)) {
252
+ throw new DesktopBrowserError('NEX_BROWSER_PROTOCOL', 'A verified browser session is required before opening the desktop UI.');
253
+ }
254
+ try {
255
+ new URL(options.session.instanceUrl);
256
+ }
257
+ catch {
258
+ throw new DesktopBrowserError('NEX_BROWSER_PROTOCOL', 'A verified browser session is required before opening the desktop UI.');
259
+ }
260
+ const fetchImpl = options.fetch ?? fetch;
261
+ const WebSocketImpl = options.WebSocket ?? WsWebSocket;
262
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
263
+ const version = await waitForVersion(origin, timeoutMs, fetchImpl);
264
+ const pageUrl = pageSocketUrl(await listTargets(origin, fetchImpl));
265
+ const browserUrl = typeof version.webSocketDebuggerUrl === 'string' ? version.webSocketDebuggerUrl : undefined;
266
+ const socketUrl = pageUrl ?? browserUrl;
267
+ if (!socketUrl)
268
+ throw new DesktopBrowserError('NEX_BROWSER_UNAVAILABLE', UNAVAILABLE);
269
+ try {
270
+ await injectThroughSocket(socketUrl, options.session, WebSocketImpl, !pageUrl);
271
+ }
272
+ catch (error) {
273
+ if (isDesktopBrowserError(error))
274
+ throw error;
275
+ throw new DesktopBrowserError('NEX_BROWSER_PROTOCOL', PROTOCOL);
276
+ }
277
+ }
278
+ //# sourceMappingURL=DesktopBrowserSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopBrowserSession.js","sourceRoot":"","sources":["../../src/auth/DesktopBrowserSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Thrown when a script cannot be run in the scope it was asked to run in.
3
+ *
4
+ * Scripts - Background (`/sys.scripts.do`) only runs in Global or in an application
5
+ * developed on the instance (`sys_app`). Installed store/repo applications
6
+ * (`sys_store_app`) are not eligible, and neither is a name that matches no application.
7
+ *
8
+ * `message` is deliberately self-contained — what went wrong AND what to do about it —
9
+ * because the MCP server and the CLI's default error path print only the message. The
10
+ * same advice is also carried separately in `remediation`, for consumers that render
11
+ * suggestions. Same `code` / `remediation` / `cause` shape as {@link StaleInstanceError},
12
+ * for the same reason: a consumer can recognise it by `code` without importing the class.
13
+ */
14
+ export declare class ScriptScopeError extends Error {
15
+ /** Compare against an error you were handed: `err?.code === ScriptScopeError.code`. */
16
+ static readonly code: string;
17
+ /** The code as carried BY an instance. Always equal to the static above. */
18
+ readonly code: string;
19
+ readonly remediation: string;
20
+ /** The scope exactly as the caller passed it. */
21
+ readonly scope: string;
22
+ readonly reason: ScriptScopeFailureReason;
23
+ /**
24
+ * What the scope name DID match, when it exists but cannot be used — e.g. an
25
+ * installed store application. Absent when nothing matched.
26
+ */
27
+ readonly foundAs?: ScriptScopeMatch;
28
+ constructor(details: {
29
+ scope: string;
30
+ reason: ScriptScopeFailureReason;
31
+ problem: string;
32
+ remediation: string;
33
+ foundAs?: ScriptScopeMatch;
34
+ }, options?: {
35
+ cause?: unknown;
36
+ });
37
+ toJSON(): {
38
+ name: string;
39
+ message: string;
40
+ code: string;
41
+ remediation: string;
42
+ scope: string;
43
+ reason: ScriptScopeFailureReason;
44
+ foundAs?: ScriptScopeMatch;
45
+ };
46
+ toString(): string;
47
+ }
48
+ /**
49
+ * - `INVALID_SCOPE_NAME`: not a plausible scope name; refused before any lookup.
50
+ * - `GLOBAL_NOT_FOUND`: the Global scope record itself could not be read.
51
+ * - `NOT_A_DEVELOPED_APP`: the scope exists, but not as a `sys_app` (e.g. a store app).
52
+ * - `SCOPE_NOT_FOUND`: no application on the instance has this scope.
53
+ * - `LOOKUP_FAILED`: the lookup request itself failed (HTTP status, ACL, …).
54
+ */
55
+ export type ScriptScopeFailureReason = 'INVALID_SCOPE_NAME' | 'GLOBAL_NOT_FOUND' | 'NOT_A_DEVELOPED_APP' | 'SCOPE_NOT_FOUND' | 'LOOKUP_FAILED';
56
+ /** The sys_scope record a scope name matched, when it is not one scripts can run in. */
57
+ export interface ScriptScopeMatch {
58
+ sysId: string;
59
+ scope: string;
60
+ name: string;
61
+ className: string;
62
+ active: boolean;
63
+ }
64
+ /**
65
+ * Structural guard for {@link ScriptScopeError}.
66
+ *
67
+ * Matches on `code` rather than `instanceof` so it still works when the error has
68
+ * crossed a module boundary or was thrown by a second copy of this package.
69
+ */
70
+ export declare function isScriptScopeError(error: unknown): error is ScriptScopeError;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Thrown when a script cannot be run in the scope it was asked to run in.
3
+ *
4
+ * Scripts - Background (`/sys.scripts.do`) only runs in Global or in an application
5
+ * developed on the instance (`sys_app`). Installed store/repo applications
6
+ * (`sys_store_app`) are not eligible, and neither is a name that matches no application.
7
+ *
8
+ * `message` is deliberately self-contained — what went wrong AND what to do about it —
9
+ * because the MCP server and the CLI's default error path print only the message. The
10
+ * same advice is also carried separately in `remediation`, for consumers that render
11
+ * suggestions. Same `code` / `remediation` / `cause` shape as {@link StaleInstanceError},
12
+ * for the same reason: a consumer can recognise it by `code` without importing the class.
13
+ */
14
+ export class ScriptScopeError extends Error {
15
+ /** Compare against an error you were handed: `err?.code === ScriptScopeError.code`. */
16
+ static code = "NEX_SCRIPT_SCOPE_UNAVAILABLE";
17
+ /** The code as carried BY an instance. Always equal to the static above. */
18
+ code;
19
+ remediation;
20
+ /** The scope exactly as the caller passed it. */
21
+ scope;
22
+ reason;
23
+ /**
24
+ * What the scope name DID match, when it exists but cannot be used — e.g. an
25
+ * installed store application. Absent when nothing matched.
26
+ */
27
+ foundAs;
28
+ constructor(details, options = {}) {
29
+ super(`${details.problem} ${details.remediation}`, options.cause !== undefined ? { cause: options.cause } : undefined);
30
+ this.name = new.target.name;
31
+ this.code = ScriptScopeError.code;
32
+ this.remediation = details.remediation;
33
+ this.scope = details.scope;
34
+ this.reason = details.reason;
35
+ if (details.foundAs) {
36
+ this.foundAs = details.foundAs;
37
+ }
38
+ }
39
+ toJSON() {
40
+ return {
41
+ name: this.name,
42
+ message: this.message,
43
+ code: this.code,
44
+ remediation: this.remediation,
45
+ scope: this.scope,
46
+ reason: this.reason,
47
+ ...(this.foundAs ? { foundAs: this.foundAs } : {}),
48
+ };
49
+ }
50
+ toString() {
51
+ return `${this.name}: ${this.message}`;
52
+ }
53
+ }
54
+ /**
55
+ * Structural guard for {@link ScriptScopeError}.
56
+ *
57
+ * Matches on `code` rather than `instanceof` so it still works when the error has
58
+ * crossed a module boundary or was thrown by a second copy of this package.
59
+ */
60
+ export function isScriptScopeError(error) {
61
+ if (error instanceof ScriptScopeError) {
62
+ return true;
63
+ }
64
+ return error?.code === ScriptScopeError.code;
65
+ }
66
+ //# sourceMappingURL=ScriptScopeError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptScopeError.js","sourceRoot":"","sources":["../../src/exception/ScriptScopeError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEvC,uFAAuF;IAChF,MAAM,CAAU,IAAI,GAAW,8BAA8B,CAAC;IAErE,4EAA4E;IAC5D,IAAI,CAAS;IAEb,WAAW,CAAS;IAEpC,iDAAiD;IACjC,KAAK,CAAS;IAEd,MAAM,CAA2B;IAEjD;;;OAGG;IACa,OAAO,CAAoB;IAE3C,YACI,OAMC,EACD,UAA+B,EAAE;QAEjC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACnC,CAAC;IACL,CAAC;IAEM,MAAM;QAST,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACN,CAAC;IAEM,QAAQ;QACX,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;;AA0BL;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAQ,KAA2B,EAAE,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC;AACxE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './auth/AuthenticationHandlerFactory.js';
2
2
  export * from './auth/BrowserSession.js';
3
3
  export * from './auth/CredentialProvider.js';
4
+ export * from './auth/DesktopBrowserSession.js';
4
5
  export * from './auth/IAuthenticationHandler.js';
5
6
  export * from './auth/NowSDKAuthenticationHandler.js';
6
7
  export * from './auth/SessionAuthError.js';
@@ -11,6 +12,7 @@ export * from './exception/FileException.js';
11
12
  export * from './exception/FileExistsException.js';
12
13
  export * from './exception/InvalidParameterException.js';
13
14
  export * from './exception/PathException.js';
15
+ export * from './exception/ScriptScopeError.js';
14
16
  export * from './exception/StaleInstanceError.js';
15
17
  export * from './model/types.js';
16
18
  export * from './policy/Policy.js';
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './auth/AuthenticationHandlerFactory.js';
2
2
  export * from './auth/BrowserSession.js';
3
3
  export * from './auth/CredentialProvider.js';
4
+ export * from './auth/DesktopBrowserSession.js';
4
5
  export * from './auth/IAuthenticationHandler.js';
5
6
  export * from './auth/NowSDKAuthenticationHandler.js';
6
7
  export * from './auth/SessionAuthError.js';
@@ -11,6 +12,7 @@ export * from './exception/FileException.js';
11
12
  export * from './exception/FileExistsException.js';
12
13
  export * from './exception/InvalidParameterException.js';
13
14
  export * from './exception/PathException.js';
15
+ export * from './exception/ScriptScopeError.js';
14
16
  export * from './exception/StaleInstanceError.js';
15
17
  export * from './model/types.js';
16
18
  export * from './policy/Policy.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AAExC,0EAA0E;AAC1E,4EAA4E;AAC5E,gEAAgE;AAChE,cAAc,gBAAgB,CAAC"}
@@ -37,8 +37,10 @@ export declare class BackgroundScriptExecutor {
37
37
  executeScriptViaTrigger(script: string, description?: string, autoDelete?: boolean): Promise<TriggerExecutionResult>;
38
38
  /**
39
39
  * Execute a script using the best available method.
40
- * First tries the standard executeScript() (background script page),
41
- * and on failure falls back to executeScriptViaTrigger().
40
+ * First tries the standard executeScript() (background script page). If that
41
+ * fails and the script targets global, falls back to executeScriptViaTrigger().
42
+ * A script for any other scope is never moved to sys_trigger, which has no scope
43
+ * and would run it in global; its original error is rethrown instead.
42
44
  *
43
45
  * @param script The script to execute
44
46
  * @param scope Optional scope for the background script execution
@@ -52,12 +54,31 @@ export declare class BackgroundScriptExecutor {
52
54
  /**
53
55
  * Resolve a scope value to a sys_id for use with /sys.scripts.do.
54
56
  * ServiceNow's background script form expects a sys_id in the sys_scope field,
55
- * not a scope name. This method handles:
56
- * - 32-char hex strings: passed through as-is (already a sys_id)
57
- * - Scope names (e.g., "global", "x_myapp_custom"): looked up in sys_scope table
57
+ * not a scope name, and only runs in Global or in an application developed on
58
+ * the instance (sys_app). This method handles:
59
+ * - 32-char hex strings: checked against sys_app and sent unchanged
60
+ * - "global": the sys_scope record with source=global. scope=global alone is NOT
61
+ * unique — every global-scoped application also carries scope=global.
62
+ * - Any other name: looked up in sys_app.
63
+ * A sys_id or name that is not a sys_app (an installed store app, or nothing at
64
+ * all) throws a ScriptScopeError explaining which.
58
65
  * Results are cached per executor instance to avoid repeated lookups.
59
66
  */
60
67
  private _resolveScopeToSysId;
68
+ /**
69
+ * Builds the error for a scope name or sys_id that is not a sys_app, after finding
70
+ * out what — if anything — it IS. "Not found" and "exists but is a store app" need
71
+ * different advice, and only one extra lookup on the failure path tells them apart.
72
+ */
73
+ private _explainUnrunnableScope;
74
+ /**
75
+ * One Table API read for scope resolution. A plain HTTP failure becomes a
76
+ * LOOKUP_FAILED ScriptScopeError naming the table, keeping the original text so
77
+ * transient-failure detection on the message still works. Errors that already
78
+ * identify themselves — a policy refusal, or anything with a `code` (session,
79
+ * stale instance, network) — pass through untouched.
80
+ */
81
+ private _lookupScope;
61
82
  /**
62
83
  * Strips closing tags for HTML void elements that fast-xml-parser cannot handle.
63
84
  * ServiceNow's /sys.scripts.do returns malformed HTML with closing tags for
@@ -15,6 +15,7 @@ import { isNil } from "../util/utils.js";
15
15
  import { CSRFTokenHelper } from "../util/CSRFTokenHelper.js";
16
16
  import { TableAPIRequest } from "../comm/http/TableAPIRequest.js";
17
17
  import { SessionManager } from "../comm/http/SessionManager.js";
18
+ import { ScriptScopeError, isScriptScopeError } from "../exception/ScriptScopeError.js";
18
19
  export class BackgroundScriptExecutor {
19
20
  snRequest;
20
21
  instance;
@@ -99,6 +100,12 @@ export class BackgroundScriptExecutor {
99
100
  if (response.status == 200) {
100
101
  const bodyXml = response?.data;
101
102
  if (bodyXml) {
103
+ // The instance's refusal arrives as HTTP 200 with this bare body.
104
+ // Parsed, it would look like a script that ran and printed nothing.
105
+ if (typeof bodyXml === "string" && bodyXml.trim().toLowerCase() === "not authorized") {
106
+ throw new Error(`The instance answered "not authorized" and did not run the script (scope '${scope}'). ` +
107
+ `Scripts - Background refuses scopes it cannot run in, and users without the rights to use it.`);
108
+ }
102
109
  const resultObj = this.parseScriptResult(bodyXml);
103
110
  return resultObj;
104
111
  }
@@ -111,6 +118,11 @@ export class BackgroundScriptExecutor {
111
118
  }
112
119
  }
113
120
  catch (error) {
121
+ // Unwrapped, so consumers can recognise it and show its remediation; its
122
+ // message already says what went wrong and what to do.
123
+ if (isScriptScopeError(error)) {
124
+ throw error;
125
+ }
114
126
  const err = error;
115
127
  throw new Error(`Error executing script: ${err.message}`, { cause: error });
116
128
  }
@@ -245,8 +257,10 @@ export class BackgroundScriptExecutor {
245
257
  }
246
258
  /**
247
259
  * Execute a script using the best available method.
248
- * First tries the standard executeScript() (background script page),
249
- * and on failure falls back to executeScriptViaTrigger().
260
+ * First tries the standard executeScript() (background script page). If that
261
+ * fails and the script targets global, falls back to executeScriptViaTrigger().
262
+ * A script for any other scope is never moved to sys_trigger, which has no scope
263
+ * and would run it in global; its original error is rethrown instead.
250
264
  *
251
265
  * @param script The script to execute
252
266
  * @param scope Optional scope for the background script execution
@@ -257,9 +271,10 @@ export class BackgroundScriptExecutor {
257
271
  // any failure, so a refusal raised inside executeScript would be swallowed and
258
272
  // the refused script would run anyway — later, on a schedule, silently.
259
273
  this.assertScriptPermitted(script);
274
+ const targetScope = scope || this.scope;
260
275
  try {
261
276
  this._logger.info("Attempting script execution via background script page...");
262
- const result = await this.executeScript(script, scope || this.scope);
277
+ const result = await this.executeScript(script, targetScope);
263
278
  return result;
264
279
  }
265
280
  catch (error) {
@@ -268,6 +283,17 @@ export class BackgroundScriptExecutor {
268
283
  if (isPolicyRefusal(error)) {
269
284
  throw error;
270
285
  }
286
+ // Nor is an unusable scope.
287
+ if (isScriptScopeError(error)) {
288
+ throw error;
289
+ }
290
+ // sys_trigger takes no scope, so it can only stand in for a script meant for
291
+ // global. For any other scope — a page failure, or the instance answering
292
+ // "not authorized" for a scope that passed the lookup — falling back would
293
+ // run a script meant for one application in global instead.
294
+ if (typeof targetScope !== "string" || targetScope.toLowerCase() !== "global") {
295
+ throw error;
296
+ }
271
297
  const err = error;
272
298
  this._logger.warn(`Background script execution failed: ${err.message}. Falling back to sys_trigger.`);
273
299
  const triggerResult = await this.executeScriptViaTrigger(script);
@@ -289,37 +315,153 @@ export class BackgroundScriptExecutor {
289
315
  /**
290
316
  * Resolve a scope value to a sys_id for use with /sys.scripts.do.
291
317
  * ServiceNow's background script form expects a sys_id in the sys_scope field,
292
- * not a scope name. This method handles:
293
- * - 32-char hex strings: passed through as-is (already a sys_id)
294
- * - Scope names (e.g., "global", "x_myapp_custom"): looked up in sys_scope table
318
+ * not a scope name, and only runs in Global or in an application developed on
319
+ * the instance (sys_app). This method handles:
320
+ * - 32-char hex strings: checked against sys_app and sent unchanged
321
+ * - "global": the sys_scope record with source=global. scope=global alone is NOT
322
+ * unique — every global-scoped application also carries scope=global.
323
+ * - Any other name: looked up in sys_app.
324
+ * A sys_id or name that is not a sys_app (an installed store app, or nothing at
325
+ * all) throws a ScriptScopeError explaining which.
295
326
  * Results are cached per executor instance to avoid repeated lookups.
296
327
  */
297
328
  async _resolveScopeToSysId(scope) {
298
- const hexPattern = /^[0-9a-fA-F]{32}$/;
299
- if (hexPattern.test(scope)) {
300
- return scope;
301
- }
302
329
  if (this._scopeCache.has(scope)) {
303
330
  return this._scopeCache.get(scope);
304
331
  }
332
+ // A sys_id is checked too, not trusted: /sys.scripts.do answers a store app's
333
+ // sys_id with a bare "not authorized" and HTTP 200, which otherwise reads as a
334
+ // run that printed nothing.
335
+ if (/^[0-9a-fA-F]{32}$/.test(scope)) {
336
+ this._logger.info(`Validating scope sys_id '${scope}'...`);
337
+ const [app] = await this._lookupScope(scope, 'sys_app', {
338
+ sysparm_query: `sys_id=${scope}`,
339
+ sysparm_limit: 1,
340
+ sysparm_fields: 'sys_id,scope,name'
341
+ });
342
+ if (app) {
343
+ this._logger.info(`Scope sys_id '${scope}' is ${app.name} (${app.scope})`);
344
+ this._scopeCache.set(scope, scope);
345
+ return scope;
346
+ }
347
+ throw await this._explainUnrunnableScope(scope, 'sys_id');
348
+ }
349
+ // The name goes into an encoded query, so `^` or `=` would rewrite the query
350
+ // itself — `x^ORscope=global` must not quietly resolve to something else.
351
+ if (!/^[A-Za-z0-9_.-]+$/.test(scope)) {
352
+ throw new ScriptScopeError({
353
+ scope,
354
+ reason: 'INVALID_SCOPE_NAME',
355
+ problem: `'${scope}' is not a valid application scope name.`,
356
+ remediation: `Pass "global", the scope of an application developed on this instance (e.g. "x_acme_myapp"), or a 32-character sys_id.`
357
+ });
358
+ }
305
359
  this._logger.info(`Resolving scope name '${scope}' to sys_id...`);
306
- const query = {
307
- sysparm_query: `scope=${scope}`,
360
+ // Case-insensitive on purpose: "Global" sent to sys_app would match the
361
+ // global-scoped applications, because the instance compares case-insensitively.
362
+ const isGlobal = scope.toLowerCase() === 'global';
363
+ const table = isGlobal ? 'sys_scope' : 'sys_app';
364
+ const results = await this._lookupScope(scope, table, {
365
+ sysparm_query: isGlobal ? 'source=global^scope=global' : `scope=${scope}`,
308
366
  sysparm_limit: 1,
309
367
  sysparm_fields: 'sys_id,scope,name'
368
+ });
369
+ if (results.length > 0) {
370
+ const sysId = results[0].sys_id;
371
+ this._logger.info(`Resolved scope '${scope}' → sys_id '${sysId}' (${results[0].name})`);
372
+ this._scopeCache.set(scope, sysId);
373
+ return sysId;
374
+ }
375
+ if (isGlobal) {
376
+ throw new ScriptScopeError({
377
+ scope,
378
+ reason: 'GLOBAL_NOT_FOUND',
379
+ problem: `Could not find the Global scope record (sys_scope where source=global) on this instance.`,
380
+ remediation: `Check that the authenticated user can read the sys_scope table.`
381
+ });
382
+ }
383
+ throw await this._explainUnrunnableScope(scope);
384
+ }
385
+ /**
386
+ * Builds the error for a scope name or sys_id that is not a sys_app, after finding
387
+ * out what — if anything — it IS. "Not found" and "exists but is a store app" need
388
+ * different advice, and only one extra lookup on the failure path tells them apart.
389
+ */
390
+ async _explainUnrunnableScope(scope, by = 'scope') {
391
+ const [match] = await this._lookupScope(scope, 'sys_scope', {
392
+ // An App Customization leaves a second, inactive row with the same scope;
393
+ // describe the live application, not that leftover.
394
+ sysparm_query: `${by}=${scope}^ORDERBYDESCactive`,
395
+ sysparm_limit: 1,
396
+ sysparm_fields: 'sys_id,scope,name,sys_class_name,active'
397
+ });
398
+ if (!match) {
399
+ return new ScriptScopeError({
400
+ scope,
401
+ reason: 'SCOPE_NOT_FOUND',
402
+ problem: `No application with ${by} '${scope}' exists on this instance.`,
403
+ remediation: by === 'sys_id'
404
+ ? `Check the sys_id. Scripts can run in "global" or in an application developed on this instance; ` +
405
+ `those applications are listed in the sys_app table.`
406
+ : `Check the spelling. Scripts can run in "global" or in an application developed on this instance; ` +
407
+ `the scopes of those applications are listed in the sys_app table.`
408
+ });
409
+ }
410
+ const foundAs = {
411
+ sysId: match.sys_id,
412
+ scope: match.scope,
413
+ name: match.name,
414
+ className: match.sys_class_name,
415
+ active: String(match.active) === 'true'
310
416
  };
311
- const response = await this._tableAPI.get('sys_scope', query);
312
- if (response.status === 200 && response.bodyObject?.result) {
313
- const results = response.bodyObject.result;
314
- if (results.length > 0) {
315
- const sysId = results[0].sys_id;
316
- this._logger.info(`Resolved scope '${scope}' → sys_id '${sysId}' (${results[0].name})`);
317
- this._scopeCache.set(scope, sysId);
318
- return sysId;
417
+ const kind = foundAs.className === 'sys_store_app'
418
+ ? 'an installed store/repository application (sys_store_app)'
419
+ : `a ${foundAs.className || 'sys_scope'} record, not an application developed on this instance (sys_app)`;
420
+ const subject = by === 'sys_id'
421
+ ? `Scope sys_id '${scope}' (${foundAs.name}, scope '${foundAs.scope}')`
422
+ : `Scope '${scope}' (${foundAs.name})`;
423
+ return new ScriptScopeError({
424
+ scope,
425
+ reason: 'NOT_A_DEVELOPED_APP',
426
+ foundAs,
427
+ problem: `${subject} is ${kind}. Scripts - Background can only run in "global" ` +
428
+ `or in an application developed on this instance (sys_app).`,
429
+ remediation: `Run the script in "global" and call the application's API fully qualified ` +
430
+ `(e.g. ${foundAs.scope || scope}.MyScriptInclude), or use an application developed on this instance.`
431
+ });
432
+ }
433
+ /**
434
+ * One Table API read for scope resolution. A plain HTTP failure becomes a
435
+ * LOOKUP_FAILED ScriptScopeError naming the table, keeping the original text so
436
+ * transient-failure detection on the message still works. Errors that already
437
+ * identify themselves — a policy refusal, or anything with a `code` (session,
438
+ * stale instance, network) — pass through untouched.
439
+ */
440
+ async _lookupScope(scope, table, query) {
441
+ let response;
442
+ try {
443
+ response = await this._tableAPI.get(table, query);
444
+ }
445
+ catch (error) {
446
+ if (isPolicyRefusal(error) || error?.code !== undefined) {
447
+ throw error;
319
448
  }
449
+ throw new ScriptScopeError({
450
+ scope,
451
+ reason: 'LOOKUP_FAILED',
452
+ problem: `Could not look up scope '${scope}' in ${table}: ${error?.message ?? String(error)}`,
453
+ remediation: `Check that the authenticated user can read the ${table} table, then retry.`
454
+ }, { cause: error });
320
455
  }
321
- throw new Error(`Scope '${scope}' not found in sys_scope table. ` +
322
- `Use a valid scope name (e.g., "global", "x_myapp_custom") or a 32-character sys_id.`);
456
+ if (response?.status === 200 && Array.isArray(response.bodyObject?.result)) {
457
+ return response.bodyObject.result;
458
+ }
459
+ throw new ScriptScopeError({
460
+ scope,
461
+ reason: 'LOOKUP_FAILED',
462
+ problem: `Could not look up scope '${scope}': the ${table} query returned HTTP ${response?.status ?? 'no response'}.`,
463
+ remediation: `Check that the authenticated user can read the ${table} table, then retry.`
464
+ });
323
465
  }
324
466
  /**
325
467
  * Strips closing tags for HTML void elements that fast-xml-parser cannot handle.
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundScriptExecutor.js","sourceRoot":"","sources":["../../src/sn/BackgroundScriptExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackgroundScriptExecutor.js","sourceRoot":"","sources":["../../src/sn/BackgroundScriptExecutor.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@ export interface ExecuteFlowOptions {
29
29
  quick?: boolean;
30
30
  /**
31
31
  * Scope context for BackgroundScriptExecutor.
32
- * Can be a scope name ("global", "x_myapp_custom") or a 32-character sys_id.
32
+ * Can be "global", the scope of an application developed on the instance
33
+ * (a sys_app, e.g. "x_myapp_custom"), or a 32-character sys_id. Installed store
34
+ * apps cannot be used — Scripts - Background does not run in them.
33
35
  * Default: uses the FlowManager's default scope.
34
36
  */
35
37
  scope?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonisoft/now-sdk-ext-core",
3
- "version": "6.5.2",
3
+ "version": "6.6.1",
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",
@@ -35,11 +35,12 @@
35
35
  "semantic-release": "semantic-release",
36
36
  "test": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --coverage --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false --testPathIgnorePatterns=\"/integration/\"",
37
37
  "test:unit": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --coverage --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false --testPathIgnorePatterns=\"/integration/\"",
38
- "test:eval": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --runInBand --runTestsByPath test/unit/auth/CredentialProvider.test.ts test/unit/auth/BrowserSessionCsrf.test.ts test/unit/auth/SessionRenewal.test.ts test/unit/comm/http/sdkDeepImports.test.ts test/unit/BackgroundScriptExecutor.test.ts test/unit/sn/xml/XMLRecordManager.test.ts test/unit/sn/updateset/UpdateSetManager.test.ts test/unit/util/CSRFTokenHelper.test.ts test/unit/policy/RequestHandlerGate.test.ts test/unit/policy/ScriptEvasion.test.ts test/unit/util/LoggerRedaction.test.ts test/unit/util/NoStdoutWrites.test.ts",
38
+ "test:eval": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --runInBand --runTestsByPath test/unit/auth/CredentialProvider.test.ts test/unit/auth/BrowserSession.test.ts test/unit/auth/BrowserSessionCsrf.test.ts test/unit/auth/DesktopBrowserSession.test.ts test/unit/auth/SessionRenewal.test.ts test/unit/test_utils/instance-alias.test.ts test/unit/comm/http/sdkDeepImports.test.ts test/unit/BackgroundScriptExecutor.test.ts test/unit/sn/xml/XMLRecordManager.test.ts test/unit/sn/updateset/UpdateSetManager.test.ts test/unit/util/CSRFTokenHelper.test.ts test/unit/policy/RequestHandlerGate.test.ts test/unit/policy/ScriptEvasion.test.ts test/unit/util/LoggerRedaction.test.ts test/unit/util/NoStdoutWrites.test.ts",
39
39
  "test:consumer": "node scripts/sdk-compat-consumer.mjs",
40
40
  "test:consumer:cleanup": "node scripts/sdk-compat-consumer-cleanup.test.mjs",
41
41
  "test:eval:live": "node scripts/sdk-compat-live.mjs",
42
42
  "test:integration": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --testPathPatterns=\"/integration/\" --watchAll=false --testTimeout=120000",
43
+ "test:integration:auth": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --runInBand --testTimeout=120000 --runTestsByPath test/integration/auth/DesktopBrowserSession_IT.test.ts",
43
44
  "test:all": "node --experimental-vm-modules node_modules/.bin/jest --forceExit --coverage --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false",
44
45
  "watch-test": "npm run test:unit -- --watchAll",
45
46
  "watch-test:integration": "npm run test:integration -- --watchAll",
@@ -87,7 +88,7 @@
87
88
  "devDependencies": {
88
89
  "@eslint/js": "^9.10.0",
89
90
  "@semantic-release/git": "^10.0.1",
90
- "@semantic-release/github": "^11.0.1",
91
+ "@semantic-release/github": "^12.0.9",
91
92
  "@semantic-release/npm": "^13.0.0",
92
93
  "@types/async": "3.2.25",
93
94
  "@types/bluebird": "3.5.42",
@@ -110,7 +111,7 @@
110
111
  "@types/winston": "2.4.4",
111
112
  "@types/ws": "^8.5.12",
112
113
  "chai": "6.2.2",
113
- "concurrently": "10.0.4",
114
+ "concurrently": "10.0.5",
114
115
  "conventional-changelog-conventionalcommits": "^10.2.1",
115
116
  "create-ts-index": "^1.14.0",
116
117
  "ctix": "^2.6.4",