@sonisoft/now-sdk-ext-core 5.1.0 → 5.2.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 (34) hide show
  1. package/dist/auth/NowSDKAuthenticationHandler.js +17 -3
  2. package/dist/auth/NowSDKAuthenticationHandler.js.map +1 -1
  3. package/dist/comm/http/IRequestHandler.d.ts +20 -1
  4. package/dist/comm/http/RequestHandler.d.ts +31 -1
  5. package/dist/comm/http/RequestHandler.js +90 -5
  6. package/dist/comm/http/RequestHandler.js.map +1 -1
  7. package/dist/comm/http/ServiceNowRequest.d.ts +2 -0
  8. package/dist/comm/http/ServiceNowRequest.js +9 -0
  9. package/dist/comm/http/ServiceNowRequest.js.map +1 -1
  10. package/dist/comm/http/SessionManager.d.ts +10 -0
  11. package/dist/comm/http/SessionManager.js +43 -1
  12. package/dist/comm/http/SessionManager.js.map +1 -1
  13. package/dist/exception/StaleInstanceError.d.ts +50 -0
  14. package/dist/exception/StaleInstanceError.js +63 -0
  15. package/dist/exception/StaleInstanceError.js.map +1 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/sn/BackgroundScriptExecutor.js +4 -1
  20. package/dist/sn/BackgroundScriptExecutor.js.map +1 -1
  21. package/dist/sn/IServiceNowInstance.d.ts +10 -0
  22. package/dist/sn/SNRequestBase.d.ts +13 -0
  23. package/dist/sn/SNRequestBase.js +17 -0
  24. package/dist/sn/SNRequestBase.js.map +1 -1
  25. package/dist/sn/ServiceNowInstance.d.ts +9 -0
  26. package/dist/sn/ServiceNowInstance.js +25 -0
  27. package/dist/sn/ServiceNowInstance.js.map +1 -1
  28. package/dist/util/Logger.d.ts +13 -0
  29. package/dist/util/Logger.js +30 -1
  30. package/dist/util/Logger.js.map +1 -1
  31. package/dist/util/redact.d.ts +47 -0
  32. package/dist/util/redact.js +228 -0
  33. package/dist/util/redact.js.map +1 -0
  34. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { Logger } from "../util/Logger.js";
2
2
  import { getSafeUserSession } from "@servicenow/sdk-cli-core/dist/util/sessionToken.js";
3
+ import { stripSecretsFromError } from "../util/redact.js";
3
4
  export class NowSDKAuthenticationHandler {
4
5
  _requestHandler;
5
6
  _isLoggedIn = false;
@@ -20,7 +21,16 @@ export class NowSDKAuthenticationHandler {
20
21
  const auth = { credentials: this._instance.credential };
21
22
  const session = await getSafeUserSession(auth, this._logger);
22
23
  if (session) {
23
- this._requestHandler.setSession(session);
24
+ // Recording WHICH instance this session was minted for is the whole
25
+ // point: RequestHandler compares it against the instance it is bound to
26
+ // before every dispatch, which is where a mismatch is actually caught.
27
+ //
28
+ // There is deliberately no re-check of this._instance across the await.
29
+ // It is assigned once in the constructor and never reassigned, and
30
+ // AuthenticationHandlerFactory builds a fresh handler per instance, so
31
+ // such a check could not fire — it would only imply a protection that
32
+ // does not exist here.
33
+ this._requestHandler.setSession(session, this._instance);
24
34
  this.setLoggedIn(true);
25
35
  }
26
36
  else {
@@ -30,8 +40,12 @@ export class NowSDKAuthenticationHandler {
30
40
  return session;
31
41
  }
32
42
  catch (e) {
33
- this._logger.error("Error during login.", e);
34
- throw e;
43
+ // Of every error in the codebase this is the one most likely to be carrying
44
+ // the credential it just failed to use, and it propagates out to consumers
45
+ // whose loggers have no redaction format of their own.
46
+ const safe = stripSecretsFromError(e);
47
+ this._logger.error("Error during login.", safe);
48
+ throw safe;
35
49
  }
36
50
  return null;
37
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NowSDKAuthenticationHandler.js","sourceRoot":"","sources":["../../src/auth/NowSDKAuthenticationHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAGxF,MAAM,OAAO,2BAA2B;IAE5B,eAAe,CAAiB;IAEhC,WAAW,GAAW,KAAK,CAAC;IAE5B,QAAQ,CAAS;IAEjB,OAAO,CAAQ;IAEf,SAAS,CAAoB;IAErC,YAAmB,QAA2B;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,KAAK;QAEf,IAAG,CAAC;YACA,MAAM,IAAI,GAAG,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAC,CAAC;YACtD,MAAM,OAAO,GAAa,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,IAAG,OAAO,EAAC,CAAC;gBACR,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;iBAAI,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC;QACnB,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,iBAAiB,CAAC,cAA8B;QACnD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IAChC,CAAC;IAEM,QAAQ;QACX,6DAA6D;QAC7D,OAAQ,IAAI,CAAC,QAAgB,CAAC,QAAQ,EAAY,CAAC;IACvD,CAAC;IAEM,UAAU;QACb,kGAAkG;QAClG,OAAQ,IAAI,CAAC,QAAgB,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"NowSDKAuthenticationHandler.js","sourceRoot":"","sources":["../../src/auth/NowSDKAuthenticationHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,OAAO,2BAA2B;IAE5B,eAAe,CAAiB;IAEhC,WAAW,GAAW,KAAK,CAAC;IAE5B,QAAQ,CAAS;IAEjB,OAAO,CAAQ;IAEf,SAAS,CAAoB;IAErC,YAAmB,QAA2B;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,KAAK;QAEf,IAAG,CAAC;YACA,MAAM,IAAI,GAAG,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAC,CAAC;YACtD,MAAM,OAAO,GAAa,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,IAAG,OAAO,EAAC,CAAC;gBACR,oEAAoE;gBACpE,wEAAwE;gBACxE,uEAAuE;gBACvE,EAAE;gBACF,wEAAwE;gBACxE,mEAAmE;gBACnE,uEAAuE;gBACvE,sEAAsE;gBACtE,uBAAuB;gBACvB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;iBAAI,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC;QACnB,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YACN,4EAA4E;YAC5E,2EAA2E;YAC3E,uDAAuD;YACvD,MAAM,IAAI,GAAY,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,iBAAiB,CAAC,cAA8B;QACnD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IAChC,CAAC;IAEM,QAAQ;QACX,6DAA6D;QAC7D,OAAQ,IAAI,CAAC,QAAgB,CAAC,QAAQ,EAAY,CAAC;IACvD,CAAC;IAEM,UAAU;QACb,kGAAkG;QAClG,OAAQ,IAAI,CAAC,QAAgB,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
@@ -1,9 +1,28 @@
1
1
  import { HTTPRequest } from "./HTTPRequest.js";
2
2
  import { IHttpResponse } from "./IHttpResponse.js";
3
+ import { IServiceNowInstance } from "../../sn/IServiceNowInstance.js";
3
4
  export interface IRequestHandler {
4
5
  post<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
5
6
  put<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
6
7
  get<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
7
8
  delete<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
8
- setSession(session: any): any;
9
+ /**
10
+ * Records the session to use for outgoing requests, together with the instance
11
+ * it was minted for.
12
+ *
13
+ * `instance` is optional so existing callers keep compiling, but omitting it
14
+ * disables the cross-instance guard for this handler — pass it wherever the
15
+ * owning instance is known.
16
+ */
17
+ setSession(session: any, instance?: IServiceNowInstance): any;
18
+ /**
19
+ * Declares which instance this handler serves. Set once, at construction.
20
+ * A session recorded for any other instance will be refused at dispatch.
21
+ *
22
+ * Optional so that adding it is not a breaking change for anyone implementing
23
+ * this interface outside the repo. A handler that does not implement it simply
24
+ * has no bound identity, and the dispatch guard stays permissive — the same
25
+ * behaviour as a handler built without an instance.
26
+ */
27
+ bindInstance?(instance: IServiceNowInstance): any;
9
28
  }
@@ -5,18 +5,48 @@ import { Cookie } from 'tough-cookie';
5
5
  import { ICookieStore } from './ICookieStore.js';
6
6
  import { IAuthenticationHandler } from '../../auth/IAuthenticationHandler.js';
7
7
  import { Logger } from '../../util/Logger.js';
8
+ import { IServiceNowInstance } from '../../sn/IServiceNowInstance.js';
8
9
  export declare class RequestHandler implements IRequestHandler {
9
10
  _logger: Logger;
10
11
  _cookies: Cookie[];
11
12
  _cookieStore: ICookieStore;
12
13
  _authHandler: IAuthenticationHandler;
13
14
  _session: any;
15
+ /** Identity of the instance this handler serves. Set once, at construction. */
16
+ private _boundInstanceId;
17
+ /** Identity of the instance the current `_session` was minted for. Written with the session. */
18
+ private _sessionInstanceId;
14
19
  /**
15
20
  * The Singleton's constructor should always be private to prevent direct
16
21
  * construction calls with the `new` operator.
17
22
  */
18
23
  constructor(authHandler: IAuthenticationHandler);
19
- setSession(session: any): void;
24
+ setSession(session: any, instance?: IServiceNowInstance): void;
25
+ bindInstance(instance: IServiceNowInstance): void;
26
+ /**
27
+ * Refuses to build a request whose session belongs to a different instance.
28
+ *
29
+ * Placed immediately before `this._session` is read into the outgoing config,
30
+ * because that is the one point every request passes through — both the
31
+ * SessionManager-managed handlers and the ~21 managers that construct their own
32
+ * ServiceNowRequest and never touch SessionManager at all.
33
+ *
34
+ * Permissive when either side is unknown. A handler built without an instance
35
+ * (ATFTestExecutor does this, then immediately replaces it) or a session set by
36
+ * a caller that predates the second parameter would otherwise start throwing on
37
+ * a path that was never actually unsafe.
38
+ */
39
+ /**
40
+ * Prepares a caught value for rethrowing.
41
+ *
42
+ * The original error is preserved rather than wrapped: `new Error(ex)` stringified
43
+ * the cause, discarded the stack, and flattened typed errors so `instanceof` failed
44
+ * at every call site — which would make StaleInstanceError unidentifiable. Secrets
45
+ * are stripped first, because the consumer's logger has no redaction format of its
46
+ * own.
47
+ */
48
+ private toThrowable;
49
+ private assertSessionMatchesBoundInstance;
20
50
  isValidXmlString(xmlString: any): boolean;
21
51
  private doRequest;
22
52
  post<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
@@ -2,6 +2,8 @@ import { HttpResponse } from './HttpResponse.js';
2
2
  import { Logger } from '../../util/Logger.js';
3
3
  import { makeRequest } from "@servicenow/sdk-cli-core/dist/http/index.js";
4
4
  import { DOMParser } from '@xmldom/xmldom';
5
+ import { StaleInstanceError } from '../../exception/StaleInstanceError.js';
6
+ import { stripSecretsFromError, redactValue } from '../../util/redact.js';
5
7
  //axios.defaults.withCredentials = true;
6
8
  export class RequestHandler {
7
9
  _logger = new Logger("RequestHandler");
@@ -11,6 +13,10 @@ export class RequestHandler {
11
13
  _cookieStore;
12
14
  _authHandler;
13
15
  _session;
16
+ /** Identity of the instance this handler serves. Set once, at construction. */
17
+ _boundInstanceId;
18
+ /** Identity of the instance the current `_session` was minted for. Written with the session. */
19
+ _sessionInstanceId;
14
20
  /**
15
21
  * The Singleton's constructor should always be private to prevent direct
16
22
  * construction calls with the `new` operator.
@@ -27,8 +33,83 @@ export class RequestHandler {
27
33
  // });
28
34
  // this.httpClient.defaults.maxRedirects = 0;
29
35
  }
30
- setSession(session) {
36
+ setSession(session, instance) {
37
+ const previous = this._sessionInstanceId;
31
38
  this._session = session;
39
+ // Deliberately reset to undefined when no instance is supplied: the session
40
+ // changed and we no longer know whose it is, so the guard must go permissive
41
+ // rather than keep asserting against the previous owner's id.
42
+ this._sessionInstanceId = instance?.getInstanceId?.();
43
+ // Going from known to unknown silently disables the cross-instance guard for
44
+ // this handler. `instance` is optional and easy to forget, so say so out loud
45
+ // rather than only at debug level from inside the assertion.
46
+ if (previous !== undefined && this._sessionInstanceId === undefined) {
47
+ this._logger.warn("Session replaced without an owning instance; the cross-instance guard is now inactive for this handler.", { previousSessionInstanceId: previous });
48
+ }
49
+ }
50
+ bindInstance(instance) {
51
+ this._boundInstanceId = instance?.getInstanceId?.();
52
+ }
53
+ /**
54
+ * Refuses to build a request whose session belongs to a different instance.
55
+ *
56
+ * Placed immediately before `this._session` is read into the outgoing config,
57
+ * because that is the one point every request passes through — both the
58
+ * SessionManager-managed handlers and the ~21 managers that construct their own
59
+ * ServiceNowRequest and never touch SessionManager at all.
60
+ *
61
+ * Permissive when either side is unknown. A handler built without an instance
62
+ * (ATFTestExecutor does this, then immediately replaces it) or a session set by
63
+ * a caller that predates the second parameter would otherwise start throwing on
64
+ * a path that was never actually unsafe.
65
+ */
66
+ /**
67
+ * Prepares a caught value for rethrowing.
68
+ *
69
+ * The original error is preserved rather than wrapped: `new Error(ex)` stringified
70
+ * the cause, discarded the stack, and flattened typed errors so `instanceof` failed
71
+ * at every call site — which would make StaleInstanceError unidentifiable. Secrets
72
+ * are stripped first, because the consumer's logger has no redaction format of its
73
+ * own.
74
+ */
75
+ toThrowable(ex) {
76
+ if (ex instanceof Error) {
77
+ return stripSecretsFromError(ex);
78
+ }
79
+ // A thrown non-Error still has to be described, and String() on an object
80
+ // yields "[object Object]" — useless in a log. Redact before serializing,
81
+ // since a thrown plain object can carry credentials just as easily.
82
+ if (typeof ex === "string") {
83
+ return new Error(ex);
84
+ }
85
+ // `Object.prototype.toString.call` is typed as returning `any`; the cast keeps
86
+ // the type-checked lint rules satisfied without loosening anything real.
87
+ const fallback = Object.prototype.toString.call(ex);
88
+ let described;
89
+ try {
90
+ described = JSON.stringify(redactValue(ex)) ?? fallback;
91
+ }
92
+ catch {
93
+ // Cycles and throwing getters are already handled inside redactValue, but
94
+ // a hostile toJSON can still break stringify.
95
+ described = fallback;
96
+ }
97
+ return new Error(described);
98
+ }
99
+ assertSessionMatchesBoundInstance() {
100
+ const bound = this._boundInstanceId;
101
+ const forSession = this._sessionInstanceId;
102
+ if (bound === undefined || forSession === undefined) {
103
+ this._logger.debug("Instance binding not asserted; identity unknown on one side.", {
104
+ boundInstanceId: bound,
105
+ sessionInstanceId: forSession,
106
+ });
107
+ return;
108
+ }
109
+ if (bound !== forSession) {
110
+ throw new StaleInstanceError(`Refusing to send a request for instance #${bound} using a session minted for instance #${forSession}.`, "The connection was replaced while this request was in flight. Retry the operation; " +
111
+ "a fresh session will be established for the correct instance.");
112
+ }
32
113
  }
33
114
  // public async request(config:AxiosRequestConfig):Promise<AxiosResponse<any,any>>{
34
115
  // for(var prop in this._defaultHeaders){
@@ -147,7 +228,7 @@ export class RequestHandler {
147
228
  }
148
229
  catch (ex) {
149
230
  this._logger.error("Error during POST request.", { error: ex, response: response, request: request });
150
- throw new Error(ex);
231
+ throw this.toThrowable(ex);
151
232
  }
152
233
  }
153
234
  async put(request) {
@@ -169,7 +250,7 @@ export class RequestHandler {
169
250
  }
170
251
  catch (ex) {
171
252
  this._logger.error("Error during PUT request.", { error: ex, response: response, request: request });
172
- throw new Error(ex);
253
+ throw this.toThrowable(ex);
173
254
  }
174
255
  }
175
256
  async get(request) {
@@ -191,7 +272,7 @@ export class RequestHandler {
191
272
  }
192
273
  catch (ex) {
193
274
  this._logger.error("Error during GET request.", { error: ex, response: response, request: request });
194
- throw new Error(ex);
275
+ throw this.toThrowable(ex);
195
276
  }
196
277
  }
197
278
  async delete(request) {
@@ -212,10 +293,14 @@ export class RequestHandler {
212
293
  }
213
294
  catch (ex) {
214
295
  this._logger.error("Error during DELETE request.", { error: ex, response: response, request: request });
215
- throw new Error(ex);
296
+ throw this.toThrowable(ex);
216
297
  }
217
298
  }
218
299
  async getRequestConfig(request) {
300
+ // Before the session is bound into the request. makeRequest derives the
301
+ // destination host from auth.instanceUrl, so a mismatch here does not send a
302
+ // bad cookie to the right host — it sends a valid session to the wrong one.
303
+ this.assertSessionMatchesBoundInstance();
219
304
  const config = {
220
305
  auth: this._session,
221
306
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RequestHandler.js","sourceRoot":"","sources":["../../../src/comm/http/RequestHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestHandler.js","sourceRoot":"","sources":["../../../src/comm/http/RequestHandler.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare class ServiceNowRequest {
8
8
  auth: IAuthenticationHandler;
9
9
  private _instance;
10
10
  constructor(instance?: ServiceNowInstance);
11
+ /** The instance this request is bound to. Fixed at construction. */
12
+ getInstance(): ServiceNowInstance;
11
13
  executeRequest<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
12
14
  put<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
13
15
  post<T>(request: HTTPRequest): Promise<IHttpResponse<T>>;
@@ -12,6 +12,15 @@ export class ServiceNowRequest {
12
12
  this.auth = AuthenticationHandlerFactory.createAuthHandler(this._instance);
13
13
  this._requestHandler = RequestHandlerFactory.createRequestHandler(this.auth);
14
14
  this.auth.setRequestHandler(this._requestHandler);
15
+ // Declare which instance this handler serves, so a session minted for any
16
+ // other instance is refused before it reaches the wire.
17
+ if (this._instance) {
18
+ this._requestHandler.bindInstance?.(this._instance);
19
+ }
20
+ }
21
+ /** The instance this request is bound to. Fixed at construction. */
22
+ getInstance() {
23
+ return this._instance;
15
24
  }
16
25
  async executeRequest(request) {
17
26
  let httpMethod = request.method;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceNowRequest.js","sourceRoot":"","sources":["../../../src/comm/http/ServiceNowRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceNowRequest.js","sourceRoot":"","sources":["../../../src/comm/http/ServiceNowRequest.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,16 @@ export declare class SessionManager {
18
18
  * Keyed by alias (falls back to host).
19
19
  */
20
20
  getRequest(instance: ServiceNowInstance): ServiceNowRequest;
21
+ /**
22
+ * True when the cached request was built for exactly this instance.
23
+ *
24
+ * Answers "leave the cache alone" whenever identity cannot be established on
25
+ * either side — a request built without an instance, or a caller passing a
26
+ * duck-typed instance that predates getInstanceId(). Evicting on unknown
27
+ * identity would throw away a good session and force a fresh login on every
28
+ * single lookup, which is a worse failure than the one being guarded against.
29
+ */
30
+ private isBoundTo;
21
31
  /**
22
32
  * Get or create a ServiceNowRequest and ensure it is authenticated.
23
33
  * Uses an in-flight promise guard to prevent duplicate concurrent auth calls.
@@ -27,6 +27,17 @@ export class SessionManager {
27
27
  getRequest(instance) {
28
28
  const key = this.getKey(instance);
29
29
  let request = this._sessions.get(key);
30
+ // The key is alias-or-host, which says nothing about *which* ServiceNowInstance
31
+ // object asked. A consumer that rebuilds its connection — now-sdk-ext-mcp evicts
32
+ // on a 30-minute TTL — passes a new instance under the same alias and would
33
+ // otherwise be handed the previous one's request, still holding the previous
34
+ // session. Recreate instead: this is recoverable, so self-heal rather than throw.
35
+ if (request && !this.isBoundTo(request, instance)) {
36
+ this._logger.debug(`Instance replaced for alias: ${key}; discarding the cached session.`);
37
+ this._sessions.delete(key);
38
+ this._authPromises.delete(key);
39
+ request = undefined;
40
+ }
30
41
  if (!request) {
31
42
  this._logger.debug(`Creating new session for alias: ${key}`);
32
43
  request = new ServiceNowRequest(instance);
@@ -34,6 +45,27 @@ export class SessionManager {
34
45
  }
35
46
  return request;
36
47
  }
48
+ /**
49
+ * True when the cached request was built for exactly this instance.
50
+ *
51
+ * Answers "leave the cache alone" whenever identity cannot be established on
52
+ * either side — a request built without an instance, or a caller passing a
53
+ * duck-typed instance that predates getInstanceId(). Evicting on unknown
54
+ * identity would throw away a good session and force a fresh login on every
55
+ * single lookup, which is a worse failure than the one being guarded against.
56
+ */
57
+ isBoundTo(request, instance) {
58
+ const bound = request.getInstance?.();
59
+ if (!bound) {
60
+ return true;
61
+ }
62
+ const boundId = bound.getInstanceId?.();
63
+ const requestedId = instance?.getInstanceId?.();
64
+ if (boundId === undefined || requestedId === undefined) {
65
+ return true;
66
+ }
67
+ return boundId === requestedId;
68
+ }
37
69
  /**
38
70
  * Get or create a ServiceNowRequest and ensure it is authenticated.
39
71
  * Uses an in-flight promise guard to prevent duplicate concurrent auth calls.
@@ -56,7 +88,13 @@ export class SessionManager {
56
88
  return request;
57
89
  }
58
90
  finally {
59
- this._authPromises.delete(key);
91
+ // Only clear our own entry. An instance swap on this alias evicts the
92
+ // map and a fresh caller can install a NEW promise under the same key
93
+ // while this one is still settling — an unconditional delete would
94
+ // remove theirs, costing a duplicate login.
95
+ if (this._authPromises.get(key) === authPromise) {
96
+ this._authPromises.delete(key);
97
+ }
60
98
  }
61
99
  })();
62
100
  this._authPromises.set(key, authPromise);
@@ -68,6 +106,9 @@ export class SessionManager {
68
106
  clearSession(alias) {
69
107
  this._logger.debug(`Clearing session for alias: ${alias}`);
70
108
  this._sessions.delete(alias);
109
+ // An auth started before the clear would otherwise resolve after it and hand
110
+ // the caller the request we just evicted.
111
+ this._authPromises.delete(alias);
71
112
  }
72
113
  /**
73
114
  * Remove all cached sessions.
@@ -75,6 +116,7 @@ export class SessionManager {
75
116
  clearAll() {
76
117
  this._logger.debug(`Clearing all ${this._sessions.size} sessions`);
77
118
  this._sessions.clear();
119
+ this._authPromises.clear();
78
120
  }
79
121
  /**
80
122
  * Check if a session exists for a given alias.
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/comm/http/SessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/comm/http/SessionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Thrown when a request is about to be dispatched with a session that was minted
3
+ * for a different ServiceNow instance.
4
+ *
5
+ * This is worth failing loudly over, because the consequence is not a rejected
6
+ * request. `makeRequest` derives the destination host from `auth.instanceUrl`, so a
7
+ * mismatched session sends the request *to the wrong instance*, authenticated as
8
+ * that instance's user. A write intended for dev can land on prod and succeed.
9
+ *
10
+ * The shape here — `code`, `remediation`, `cause` — deliberately mirrors the error
11
+ * taxonomy in `@sonisoft/sn-credstore` so that consumers which already read
12
+ * `remediation` off an unknown error (`now-sdk-ext-cli`'s authenticated-command,
13
+ * `now-sdk-ext-mcp`'s credstore-boot) surface it with no change. It does not import
14
+ * that taxonomy: sn-credstore is an *optional* dependency of this package, so a
15
+ * static value import would crash any install that skipped it, and `instanceof`
16
+ * across its dual ESM/CJS build is unreliable regardless.
17
+ */
18
+ export declare class StaleInstanceError extends Error {
19
+ /**
20
+ * The code as a CLASS constant, for comparing against an error you were handed:
21
+ * `err?.code === StaleInstanceError.code`. Prefer this over `instanceof` across
22
+ * module boundaries, where a second copy of the class breaks prototype checks.
23
+ *
24
+ * Distinct from the instance field of the same name below — static and prototype
25
+ * members do not collide, and both spellings are useful: this one at the call
26
+ * site, the instance one on the error itself.
27
+ */
28
+ static readonly code: string;
29
+ /** The code as carried BY an instance. Always equal to the static above. */
30
+ readonly code: string;
31
+ readonly remediation: string;
32
+ constructor(message: string, remediation: string, options?: {
33
+ cause?: unknown;
34
+ });
35
+ toJSON(): {
36
+ name: string;
37
+ message: string;
38
+ code: string;
39
+ remediation: string;
40
+ };
41
+ toString(): string;
42
+ }
43
+ /**
44
+ * Structural guard for {@link StaleInstanceError}.
45
+ *
46
+ * Matches on `code` rather than `instanceof` so it still works when the error has
47
+ * crossed a module boundary, been serialized, or been rebuilt by a consumer that
48
+ * loaded a second copy of this package.
49
+ */
50
+ export declare function isStaleInstanceError(error: unknown): boolean;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Thrown when a request is about to be dispatched with a session that was minted
3
+ * for a different ServiceNow instance.
4
+ *
5
+ * This is worth failing loudly over, because the consequence is not a rejected
6
+ * request. `makeRequest` derives the destination host from `auth.instanceUrl`, so a
7
+ * mismatched session sends the request *to the wrong instance*, authenticated as
8
+ * that instance's user. A write intended for dev can land on prod and succeed.
9
+ *
10
+ * The shape here — `code`, `remediation`, `cause` — deliberately mirrors the error
11
+ * taxonomy in `@sonisoft/sn-credstore` so that consumers which already read
12
+ * `remediation` off an unknown error (`now-sdk-ext-cli`'s authenticated-command,
13
+ * `now-sdk-ext-mcp`'s credstore-boot) surface it with no change. It does not import
14
+ * that taxonomy: sn-credstore is an *optional* dependency of this package, so a
15
+ * static value import would crash any install that skipped it, and `instanceof`
16
+ * across its dual ESM/CJS build is unreliable regardless.
17
+ */
18
+ export class StaleInstanceError extends Error {
19
+ /**
20
+ * The code as a CLASS constant, for comparing against an error you were handed:
21
+ * `err?.code === StaleInstanceError.code`. Prefer this over `instanceof` across
22
+ * module boundaries, where a second copy of the class breaks prototype checks.
23
+ *
24
+ * Distinct from the instance field of the same name below — static and prototype
25
+ * members do not collide, and both spellings are useful: this one at the call
26
+ * site, the instance one on the error itself.
27
+ */
28
+ static code = "INSTANCE_STALE_DURING_REQUEST";
29
+ /** The code as carried BY an instance. Always equal to the static above. */
30
+ code;
31
+ remediation;
32
+ constructor(message, remediation, options = {}) {
33
+ super(message, options.cause !== undefined ? { cause: options.cause } : undefined);
34
+ this.name = new.target.name;
35
+ this.code = StaleInstanceError.code;
36
+ this.remediation = remediation;
37
+ }
38
+ toJSON() {
39
+ return {
40
+ name: this.name,
41
+ message: this.message,
42
+ code: this.code,
43
+ remediation: this.remediation,
44
+ };
45
+ }
46
+ toString() {
47
+ return `${this.name}: ${this.message}\n\nRemediation: ${this.remediation}`;
48
+ }
49
+ }
50
+ /**
51
+ * Structural guard for {@link StaleInstanceError}.
52
+ *
53
+ * Matches on `code` rather than `instanceof` so it still works when the error has
54
+ * crossed a module boundary, been serialized, or been rebuilt by a consumer that
55
+ * loaded a second copy of this package.
56
+ */
57
+ export function isStaleInstanceError(error) {
58
+ if (error instanceof StaleInstanceError) {
59
+ return true;
60
+ }
61
+ return error?.code === StaleInstanceError.code;
62
+ }
63
+ //# sourceMappingURL=StaleInstanceError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaleInstanceError.js","sourceRoot":"","sources":["../../src/exception/StaleInstanceError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzC;;;;;;;;OAQG;IACI,MAAM,CAAU,IAAI,GAAW,+BAA+B,CAAC;IAEtE,4EAA4E;IAC5D,IAAI,CAAS;IAEb,WAAW,CAAS;IAEpC,YAAmB,OAAe,EAAE,WAAmB,EAAE,UAA+B,EAAE;QACtF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEM,MAAM;QACT,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;SAChC,CAAC;IACN,CAAC;IAEM,QAAQ;QACX,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,oBAAoB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC/E,CAAC;;AAGL;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAQ,KAA2B,EAAE,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC;AAC1E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './exception/FileException.js';
8
8
  export * from './exception/FileExistsException.js';
9
9
  export * from './exception/InvalidParameterException.js';
10
10
  export * from './exception/PathException.js';
11
+ export * from './exception/StaleInstanceError.js';
11
12
  export * from './model/types.js';
12
13
  export * from './sn/Application.js';
13
14
  export * from './sn/BackgroundScriptExecutor.js';
@@ -19,6 +20,7 @@ export * from './util/AppUtil.js';
19
20
  export * from './util/CSRFTokenHelper.js';
20
21
  export * from './util/Logger.js';
21
22
  export * from './util/NowStringUtil.js';
23
+ export * from './util/redact.js';
22
24
  export * from './util/utils.js';
23
25
  export * from './comm/http/ActiveSessionRegistry.js';
24
26
  export * from './comm/http/HTTPRequest.js';
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './exception/FileException.js';
8
8
  export * from './exception/FileExistsException.js';
9
9
  export * from './exception/InvalidParameterException.js';
10
10
  export * from './exception/PathException.js';
11
+ export * from './exception/StaleInstanceError.js';
11
12
  export * from './model/types.js';
12
13
  export * from './sn/Application.js';
13
14
  export * from './sn/BackgroundScriptExecutor.js';
@@ -19,6 +20,7 @@ export * from './util/AppUtil.js';
19
20
  export * from './util/CSRFTokenHelper.js';
20
21
  export * from './util/Logger.js';
21
22
  export * from './util/NowStringUtil.js';
23
+ export * from './util/redact.js';
22
24
  export * from './util/utils.js';
23
25
  export * from './comm/http/ActiveSessionRegistry.js';
24
26
  export * from './comm/http/HTTPRequest.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":"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"}
@@ -124,7 +124,10 @@ export class BackgroundScriptExecutor {
124
124
  const isLoggedIn = response.headers["x-is-logged-in"] === "true" ? true : false;
125
125
  if (response.status == 200 && isLoggedIn && !isNil(response.data)) {
126
126
  csrfToken = CSRFTokenHelper.extractCSRFToken(response.data);
127
- this._logger.debug("CSRF Token Received: " + csrfToken, { csrfToken: csrfToken });
127
+ // The token is deliberately not interpolated into the message. Logger's
128
+ // redaction format can scrub a `csrfToken` field but cannot scrub free text,
129
+ // so a secret concatenated into the message string reaches disk verbatim.
130
+ this._logger.debug("CSRF token received.", { received: !isNil(csrfToken) });
128
131
  }
129
132
  else {
130
133
  this._logger.error("getBackgroundScriptCSRFToken: Invalid response. Status not 200, not logged in, or response data is empty.", { response: response });
@@ -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":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,6DAA6D;AAC7D,uDAAuD;AACvD,wDAAwD;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,uCAAuC;AACvC,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,OAAO,wBAAwB;IACjC,SAAS,CAAoB;IAC7B,QAAQ,CAAqB;IAC7B,KAAK,CAAS;IACN,SAAS,CAAkB;IAC3B,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IAErD,OAAO,GAAU,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAExD,YAAoB,QAA2B,EAAE,KAAY;QAErD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,QAAgB,IAAI,CAAC,KAAK,EAAE,WAA8B,IAAI,CAAC,QAAQ;QAC9G,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,YAAY,kBAAkB,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,CAAC;YAEF,MAAM,GAAG,GAAW,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACX,4DAA4D;oBAC5D,+DAA+D;oBAC/D,0DAA0D,CAC7D,CAAC;YACN,CAAC;YACD,2EAA2E;YAC3E,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAE/D,MAAM,EAAE,GAAY,IAAI,QAAQ,EAAE,CAAC;YACnC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,MAAM,CAAC,WAAW,EAAG,YAAY,CAAC,CAAC;YACtC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACxC,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YACxC,EAAE,CAAC,MAAM,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAI7C,iEAAiE;YACjE,MAAM,MAAM,GAAmB,IAAI,eAAe,CAAC,EAAS,CAAE,CAAC;YAC/D,MAAM,OAAO,GAAgB;gBACzB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAC,cAAc,EAAC,mCAAmC,EAAC;gBAC7D,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;aACf,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE,EAAC,CAAC,CAAA;YACxF,MAAM,QAAQ,GAA0B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAS,OAAO,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAU,QAAQ,EAAE,IAAI,CAAC;gBACtC,IAAG,OAAO,EAAC,CAAC;oBACR,MAAM,SAAS,GAAmC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClF,OAAO,SAAS,CAAC;gBACrB,CAAC;qBAAI,CAAC;oBACF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAC3C,CAAC;YAEL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,GAAS,KAAc,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAEM,iBAAiB,CAAC,WAAmB;QACxC,MAAM,OAAO,GAAe;YACxB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;YACtG,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;YACrD,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,CAAC,OAAe,EAAE,QAAa,EAAE,EAAE;gBAClD,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;oBACzC,OAAO,QAAQ,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,OAAO,QAAQ,CAAC;YACpB,CAAC;SACJ,CAAC;QACF,MAAM,MAAM,GAAc,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,mBAAmB,GAAU,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC3E,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,IAAI,GAA4B,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAA6B,CAAC;QAEpG,MAAM,eAAe,GAAmC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,YAAY,GAAmC;YACjD,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,eAAe,CAAC,SAAS;YACjC,aAAa,EAAE,eAAe,CAAC,aAAa;YAC5C,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,aAAa,EAAE,eAAe,CAAC,aAAa;YAC5C,mEAAmE;YACnE,eAAe,EAAE,eAAe;SACnC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;QAEpE,OAAO,YAAY,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,4BAA4B;QACrC,IAAI,SAAS,GAAU,IAAI,CAAC;QAE5B,MAAM,OAAO,GAAgB;YACzB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;SACb,CAAC;QACF,MAAM,QAAQ,GAA0B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,OAAO,CAAC,CAAC;QAClF,MAAM,UAAU,GAAW,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;QACvF,IAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,CAAC;YAC9D,SAAS,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5D,wEAAwE;YACxE,6EAA6E;YAC7E,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;QAC9E,CAAC;aAAI,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2GAA2G,EAAE,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,CAAC;QACzJ,CAAC;QAGD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEH;;;;;;;;;OASG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc,EAAE,WAAoB,EAAE,aAAsB,IAAI;QACjG,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,IAAI,mBAAmB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEnE,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,gFAAgF;QAChF,IAAI,UAAU,EAAE,CAAC;YACb,WAAW;gBACP,iBAAiB;oBACjB,aAAa;oBACb,WAAW,MAAM,IAAI;oBACrB,mBAAmB;oBACnB,oDAAoD;oBACpD,gCAAgC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO;oBACvE,uBAAuB;oBACvB,4BAA4B;oBAC5B,kCAAkC;oBAClC,aAAa;oBACb,SAAS;oBACT,OAAO,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,WAAW,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAE3F,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,GAAG;YACjB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,UAAU;SAC1B,CAAC;QAEF,MAAM,QAAQ,GAAyC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC5E,aAAa,EACb,EAAE,EACF,IAAI,CACP,CAAC;QAEF,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iDAAiD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAEpF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,MAAM,CAAC,MAAM;gBAC3B,WAAW,EAAE,WAAW;gBACxB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,YAAY,WAAW,kDAAkD,UAAU,GAAG;aAClG,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CACX,iCAAiC,WAAW,cAAc,QAAQ,EAAE,MAAM,IAAI,SAAS,EAAE,CAC5F,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,KAAc;QACzD,IAAI,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,GAAU,KAAc,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,CAAC,OAAO,gCAAgC,CAAC,CAAC;YACtG,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACjE,OAAO,aAAa,CAAC;QACzB,CAAC;IACL,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,IAAU;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC5C,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,KAAK,gBAAgB,CAAC,CAAC;QAClE,MAAM,KAAK,GAAoC;YAC3C,aAAa,EAAE,SAAS,KAAK,EAAE;YAC/B,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,mBAAmB;SACtC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAmB,WAAW,EAAE,KAAK,CAAC,CAAC;QAEhF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,eAAe,KAAK,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACxF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CACX,UAAU,KAAK,kCAAkC;YACjD,qFAAqF,CACxF,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,IAAY;QACjC,MAAM,YAAY,GAAG;YACjB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO;YAC1D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;SACpD,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,oBAAoB,CAAC,YAAsC;QAC/D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;QAE/D,MAAM,aAAa,GAA+B,EAAE,CAAC;QAErD,oFAAoF;QACpF,wGAAwG;QACxG,sFAAsF;QACtF,MAAM,GAAG,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QAC1C,MAAM,MAAM,GAAsB,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAuB,CAAC;QAEzG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAoC,CAAC;QACrG,CAAC;QAED,MAAM,GAAG,GAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,KAAY,EAAE,EAAE;YACvC,IAAG,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;iBAClB,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,kFAAkF;gBAClF,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;oBAEnC,aAAa,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC3E,gHAAgH;gBAChH,CAAC;qBAAK,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC;oBAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC;wBAC/B,aAAa,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC1E,CAAC;yBAAI,CAAC;wBACF,aAAa,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;gBACD,oFAAoF;gBACpF,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;QAEL,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAEtD,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAC,aAAa,EAAmC,CAAC;IAC1H,CAAC;IACO,qBAAqB,CAAC,YAAsC;QAChE,OAAO,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;IACxC,CAAC;CACJ;AA4BD,MAAM,OAAO,yBAAyB;IAC1B,KAAK,CAAQ;IACb,QAAQ,GAAW,KAAK,CAAC;IACzB,SAAS,GAAW,KAAK,CAAC;IAC1B,SAAS,GAAW,KAAK,CAAC;IAElC,YAAmB,IAAW;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,IAAI,CAAC,GAAU;QACtB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACrB,CAAC;IAEM,WAAW,CAAC,cAAsB,IAAI;QACzC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAE5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,eAAuB,IAAI;QAC3C,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAE9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,eAAuB,IAAI;QAC3C,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAE9B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -5,4 +5,14 @@ export interface IServiceNowInstance {
5
5
  getAlias(): string;
6
6
  getPassword(): string;
7
7
  get credential(): unknown;
8
+ /**
9
+ * Stable, process-local identity used to bind a session to the instance it was
10
+ * minted for.
11
+ *
12
+ * Optional so that adding it is not a breaking change for anyone implementing
13
+ * this interface outside the repo. An implementation without it has no identity
14
+ * to compare, and every guard treats unknown identity as permissive rather than
15
+ * as a mismatch.
16
+ */
17
+ getInstanceId?(): number;
8
18
  }
@@ -9,5 +9,18 @@ export declare abstract class SNRequestBase {
9
9
  get request(): ServiceNowRequest;
10
10
  set request(value: ServiceNowRequest);
11
11
  get snInstance(): ServiceNowInstance;
12
+ /**
13
+ * Swapping the instance rebuilds the bound request.
14
+ *
15
+ * Without this, the setter changed `_snInstance` while `_req` kept serving the
16
+ * previous instance — and because that handler's bound id and its session id
17
+ * both stayed pointed at the old instance, they still MATCHED each other. So
18
+ * RequestHandler's dispatch guard saw nothing wrong and requests silently kept
19
+ * going to the old instance: exactly the class of bug this guard exists to
20
+ * close, reachable through a public setter on exported API.
21
+ *
22
+ * Rebuilding discards the old session deliberately. A session minted for the
23
+ * previous instance must never be reused, so the next call re-authenticates.
24
+ */
12
25
  set snInstance(value: ServiceNowInstance);
13
26
  }
@@ -17,8 +17,25 @@ export class SNRequestBase {
17
17
  get snInstance() {
18
18
  return this._snInstance;
19
19
  }
20
+ /**
21
+ * Swapping the instance rebuilds the bound request.
22
+ *
23
+ * Without this, the setter changed `_snInstance` while `_req` kept serving the
24
+ * previous instance — and because that handler's bound id and its session id
25
+ * both stayed pointed at the old instance, they still MATCHED each other. So
26
+ * RequestHandler's dispatch guard saw nothing wrong and requests silently kept
27
+ * going to the old instance: exactly the class of bug this guard exists to
28
+ * close, reachable through a public setter on exported API.
29
+ *
30
+ * Rebuilding discards the old session deliberately. A session minted for the
31
+ * previous instance must never be reused, so the next call re-authenticates.
32
+ */
20
33
  set snInstance(value) {
34
+ const changed = this._snInstance?.getInstanceId?.() !== value?.getInstanceId?.();
21
35
  this._snInstance = value;
36
+ if (changed) {
37
+ this._req = new ServiceNowRequest(value);
38
+ }
22
39
  }
23
40
  }
24
41
  //# sourceMappingURL=SNRequestBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SNRequestBase.js","sourceRoot":"","sources":["../../src/sn/SNRequestBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,MAAM,OAAgB,aAAa;IACvB,WAAW,CAAqB;IAGhC,IAAI,CAAoB;IAGhC,OAAO,GAAU,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/C,YAAmB,QAA2B;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAW,OAAO,CAAG,KAAwB;QACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAW,UAAU,CAAG,KAAyB;QAC7C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;CAEJ"}
1
+ {"version":3,"file":"SNRequestBase.js","sourceRoot":"","sources":["../../src/sn/SNRequestBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,MAAM,OAAgB,aAAa;IACvB,WAAW,CAAqB;IAGhC,IAAI,CAAoB;IAGhC,OAAO,GAAU,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/C,YAAmB,QAA2B;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAW,OAAO,CAAG,KAAwB;QACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,IAAW,UAAU,CAAG,KAAyB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,KAAK,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;CAEJ"}
@@ -14,6 +14,7 @@ export declare class ServiceNowInstance implements IServiceNowInstance {
14
14
  private _alias;
15
15
  private _password;
16
16
  private _credential;
17
+ private readonly _instanceId;
17
18
  constructor(snInstanceSettingsObj?: ServiceNowSettingsInstance | null);
18
19
  isDefault(): boolean;
19
20
  getHost(): string;
@@ -21,4 +22,12 @@ export declare class ServiceNowInstance implements IServiceNowInstance {
21
22
  getAlias(): string;
22
23
  getPassword(): string;
23
24
  get credential(): unknown;
25
+ /**
26
+ * Stable identity for this instance object, unique within the process.
27
+ *
28
+ * Used to tie a session to the instance it was minted for, so a request can
29
+ * never be dispatched with another instance's credentials. Not persisted and
30
+ * not meaningful across processes.
31
+ */
32
+ getInstanceId(): number;
24
33
  }
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Monotonic source of instance identity.
3
+ *
4
+ * A ServiceNowInstance is immutable once constructed — every field is private with
5
+ * only a getter — so object identity *is* the generation, and a construction ordinal
6
+ * captures it exactly. Deliberately not a hash of the credential: identity must not
7
+ * require touching credential material.
8
+ *
9
+ * This is what lets a session be tied to the instance it was minted for. A consumer
10
+ * that refreshes a connection (now-sdk-ext-mcp evicts on a 30-minute TTL) constructs
11
+ * a new ServiceNowInstance, which takes a new id, which no longer matches the id
12
+ * recorded against a cached session.
13
+ */
14
+ let nextInstanceId = 1;
1
15
  export class ServiceNowInstance {
2
16
  _isDefault;
3
17
  _host;
@@ -5,6 +19,7 @@ export class ServiceNowInstance {
5
19
  _alias;
6
20
  _password;
7
21
  _credential;
22
+ _instanceId = nextInstanceId++;
8
23
  constructor(snInstanceSettingsObj) {
9
24
  if (typeof snInstanceSettingsObj != 'undefined' && snInstanceSettingsObj != null) {
10
25
  if (snInstanceSettingsObj.host) {
@@ -46,5 +61,15 @@ export class ServiceNowInstance {
46
61
  get credential() {
47
62
  return this._credential;
48
63
  }
64
+ /**
65
+ * Stable identity for this instance object, unique within the process.
66
+ *
67
+ * Used to tie a session to the instance it was minted for, so a request can
68
+ * never be dispatched with another instance's credentials. Not persisted and
69
+ * not meaningful across processes.
70
+ */
71
+ getInstanceId() {
72
+ return this._instanceId;
73
+ }
49
74
  }
50
75
  //# sourceMappingURL=ServiceNowInstance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceNowInstance.js","sourceRoot":"","sources":["../../src/sn/ServiceNowInstance.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,kBAAkB;IACnB,UAAU,CAAS;IACnB,KAAK,CAAQ;IACb,SAAS,CAAQ;IACjB,MAAM,CAAQ;IAEd,SAAS,CAAQ;IAEjB,WAAW,CAAS;IAE5B,YAAY,qBAAwD;QAChE,IAAG,OAAO,qBAAqB,IAAI,WAAW,IAAI,qBAAqB,IAAI,IAAI,EAAC,CAAC;YAC7E,IAAG,qBAAqB,CAAC,IAAI,EAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC;YAC5C,CAAC;YACD,IAAG,qBAAqB,CAAC,KAAK,EAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;YAC9C,CAAC;YACD,IAAG,qBAAqB,CAAC,QAAQ,EAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;YACpD,CAAC;YACD,IAAG,qBAAqB,CAAC,SAAS,EAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC;YACtD,CAAC;YACD,IAAG,qBAAqB,CAAC,QAAQ,EAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;YACpD,CAAC;YAED,IAAG,qBAAqB,CAAC,UAAU,EAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC;YACxD,CAAC;QAEL,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,gIAAgI;IAChI,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ"}
1
+ {"version":3,"file":"ServiceNowInstance.js","sourceRoot":"","sources":["../../src/sn/ServiceNowInstance.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,IAAI,cAAc,GAAG,CAAC,CAAC;AAWvB,MAAM,OAAO,kBAAkB;IACnB,UAAU,CAAS;IACnB,KAAK,CAAQ;IACb,SAAS,CAAQ;IACjB,MAAM,CAAQ;IAEd,SAAS,CAAQ;IAEjB,WAAW,CAAS;IAEX,WAAW,GAAU,cAAc,EAAE,CAAC;IAEvD,YAAY,qBAAwD;QAChE,IAAG,OAAO,qBAAqB,IAAI,WAAW,IAAI,qBAAqB,IAAI,IAAI,EAAC,CAAC;YAC7E,IAAG,qBAAqB,CAAC,IAAI,EAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC;YAC5C,CAAC;YACD,IAAG,qBAAqB,CAAC,KAAK,EAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;YAC9C,CAAC;YACD,IAAG,qBAAqB,CAAC,QAAQ,EAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;YACpD,CAAC;YACD,IAAG,qBAAqB,CAAC,SAAS,EAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC;YACtD,CAAC;YACD,IAAG,qBAAqB,CAAC,QAAQ,EAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;YACpD,CAAC;YAED,IAAG,qBAAqB,CAAC,UAAU,EAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC;YACxD,CAAC;QAEL,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,gIAAgI;IAChI,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ"}
@@ -1,5 +1,18 @@
1
1
  import * as winston from "winston";
2
2
  export declare class Logger {
3
+ /**
4
+ * Strips credential material from every log entry.
5
+ *
6
+ * Applied as a format rather than fixed at each call site on purpose. There are
7
+ * ~40 logging calls across src/, several of which pass whole request configs and
8
+ * session objects, and the set grows. Auditing call sites catches today's leaks
9
+ * and none of tomorrow's; a format in the pipeline catches both.
10
+ *
11
+ * The specific leak that motivated it: RequestHandler built `{auth: this._session}`
12
+ * and logged it at debug on every single request, writing live cookies and tokens
13
+ * to logs/app-debug.log.
14
+ */
15
+ static redactSecrets: winston.Logform.FormatWrap;
3
16
  static errorFilter: winston.Logform.FormatWrap;
4
17
  static infoFilter: winston.Logform.FormatWrap;
5
18
  static debugFilter: winston.Logform.FormatWrap;
@@ -1,7 +1,33 @@
1
1
  import * as winston from "winston";
2
+ import { redactValue, isSecretKey, REDACTED } from "./redact.js";
2
3
  const { combine, timestamp, json, metadata, label } = winston.format;
3
4
  const { format, transports } = winston;
4
5
  export class Logger {
6
+ /**
7
+ * Strips credential material from every log entry.
8
+ *
9
+ * Applied as a format rather than fixed at each call site on purpose. There are
10
+ * ~40 logging calls across src/, several of which pass whole request configs and
11
+ * session objects, and the set grows. Auditing call sites catches today's leaks
12
+ * and none of tomorrow's; a format in the pipeline catches both.
13
+ *
14
+ * The specific leak that motivated it: RequestHandler built `{auth: this._session}`
15
+ * and logged it at debug on every single request, writing live cookies and tokens
16
+ * to logs/app-debug.log.
17
+ */
18
+ static redactSecrets = winston.format((info) => {
19
+ for (const key of Object.keys(info)) {
20
+ if (key === "level" || key === "message" || key === "timestamp" || key === "label") {
21
+ continue;
22
+ }
23
+ if (isSecretKey(key)) {
24
+ info[key] = REDACTED;
25
+ continue;
26
+ }
27
+ info[key] = redactValue(info[key]);
28
+ }
29
+ return info;
30
+ });
5
31
  static errorFilter = winston.format((info) => {
6
32
  return info.level === "error" ? info : false;
7
33
  });
@@ -28,7 +54,10 @@ export class Logger {
28
54
  initLogger() {
29
55
  this._localLogger = winston.createLogger({
30
56
  level: this._logLevel,
31
- format: combine(label({ label: this._labelName }), timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
57
+ format: combine(
58
+ // First in the chain: redact before anything reshapes, nests, or
59
+ // serializes the entry, so no later format can capture a raw value.
60
+ Logger.redactSecrets(), label({ label: this._labelName }), timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
32
61
  // Format the metadata object
33
62
  metadata({ fillExcept: ["message", "level", "timestamp", "label"] })),
34
63
  transports: [
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/util/Logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/util/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Removes credential material from values before they are logged or thrown.
3
+ *
4
+ * The failure this exists for is not hypothetical. `RequestHandler.getRequestConfig`
5
+ * builds `{auth: this._session, ...}` and the next line logs that whole object at
6
+ * debug level, so every request wrote a live session — cookies, user token, or an
7
+ * OAuth access token — into `logs/app-debug.log`. That is what forced the `^logs/`
8
+ * allowlist in `.gitleaks.toml`.
9
+ *
10
+ * Redaction is by KEY, not by value. A value-based approach needs a registry of the
11
+ * secrets currently in play, which does not exist at the point a Winston format runs.
12
+ * Key-based matching costs nothing and catches the shape of the problem: secrets in
13
+ * this codebase always arrive under a recognisable name (`auth`, `cookie`,
14
+ * `access_token`, …) because they come from the SDK's own session objects.
15
+ */
16
+ export declare const REDACTED = "[redacted]";
17
+ export declare function isSecretKey(key: string): boolean;
18
+ /**
19
+ * Returns a copy of `value` with every secret-shaped key replaced by `[redacted]`.
20
+ *
21
+ * Never mutates the input — callers are logging live objects that the rest of the
22
+ * request still depends on. Cycles, depth overruns, and unserializable values all
23
+ * degrade to a placeholder string rather than throwing: a logger that throws is worse
24
+ * than one that omits a field.
25
+ */
26
+ export declare function redactValue(value: unknown, depth?: number, seen?: WeakSet<object>): unknown;
27
+ /**
28
+ * Strips credential material from an error **in place** and returns it.
29
+ *
30
+ * Used before rethrowing, so the error that reaches a consumer carries nothing
31
+ * sensitive. Deliberately mutates rather than returning a replacement: consumers do
32
+ * `instanceof` checks against it (StaleInstanceError, and the CLI's remediation
33
+ * duck-typing), and rebuilding the error would break both and discard the stack.
34
+ *
35
+ * This matters more since sessions stopped being flattened at the throw sites: an
36
+ * error now reaches callers with `config` and `response` intact, and their loggers do
37
+ * not have core's redaction format.
38
+ */
39
+ export declare function stripSecretsFromError<T>(error: T): T;
40
+ /**
41
+ * Returns a plain object describing `error` with credential material removed.
42
+ *
43
+ * Kept structural rather than returning a rebuilt Error: this is for logging and for
44
+ * handing to a consumer, and a plain object cannot be mistaken for something throwable
45
+ * that has lost its prototype.
46
+ */
47
+ export declare function redactError(error: unknown, depth?: number, seen?: WeakSet<object>): Record<string, unknown>;
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Removes credential material from values before they are logged or thrown.
3
+ *
4
+ * The failure this exists for is not hypothetical. `RequestHandler.getRequestConfig`
5
+ * builds `{auth: this._session, ...}` and the next line logs that whole object at
6
+ * debug level, so every request wrote a live session — cookies, user token, or an
7
+ * OAuth access token — into `logs/app-debug.log`. That is what forced the `^logs/`
8
+ * allowlist in `.gitleaks.toml`.
9
+ *
10
+ * Redaction is by KEY, not by value. A value-based approach needs a registry of the
11
+ * secrets currently in play, which does not exist at the point a Winston format runs.
12
+ * Key-based matching costs nothing and catches the shape of the problem: secrets in
13
+ * this codebase always arrive under a recognisable name (`auth`, `cookie`,
14
+ * `access_token`, …) because they come from the SDK's own session objects.
15
+ */
16
+ export const REDACTED = "[redacted]";
17
+ /**
18
+ * Keys whose values must never be logged. Matched case-insensitively against the
19
+ * whole key, plus a substring pass for compound names like `sessionToken`.
20
+ */
21
+ const SECRET_KEYS = [
22
+ "auth",
23
+ "authorization",
24
+ "session",
25
+ "credential",
26
+ "credentials",
27
+ "password",
28
+ "passwd",
29
+ "secret",
30
+ "client_secret",
31
+ "clientsecret",
32
+ "token",
33
+ "access_token",
34
+ "refresh_token",
35
+ "id_token",
36
+ "usertoken",
37
+ "cookie",
38
+ "cookies",
39
+ "set-cookie",
40
+ "csrftoken",
41
+ "sysparm_ck",
42
+ "apikey",
43
+ "api_key",
44
+ ];
45
+ /** Substrings that make a key secret regardless of what surrounds them. */
46
+ const SECRET_FRAGMENTS = [
47
+ "password",
48
+ "secret",
49
+ "token",
50
+ "cookie",
51
+ "credential",
52
+ ];
53
+ /** Depth cap. Session and response graphs are deep; nothing useful lives past this. */
54
+ const MAX_DEPTH = 8;
55
+ export function isSecretKey(key) {
56
+ if (!key) {
57
+ return false;
58
+ }
59
+ const lowered = key.toLowerCase();
60
+ if (SECRET_KEYS.includes(lowered)) {
61
+ return true;
62
+ }
63
+ return SECRET_FRAGMENTS.some((fragment) => lowered.includes(fragment));
64
+ }
65
+ /**
66
+ * Returns a copy of `value` with every secret-shaped key replaced by `[redacted]`.
67
+ *
68
+ * Never mutates the input — callers are logging live objects that the rest of the
69
+ * request still depends on. Cycles, depth overruns, and unserializable values all
70
+ * degrade to a placeholder string rather than throwing: a logger that throws is worse
71
+ * than one that omits a field.
72
+ */
73
+ export function redactValue(value, depth = 0, seen) {
74
+ if (value === null || value === undefined) {
75
+ return value;
76
+ }
77
+ const primitive = typeof value !== "object" && typeof value !== "function";
78
+ if (primitive) {
79
+ return value;
80
+ }
81
+ if (depth >= MAX_DEPTH) {
82
+ return "[truncated]";
83
+ }
84
+ const tracker = seen ?? new WeakSet();
85
+ if (tracker.has(value)) {
86
+ return "[circular]";
87
+ }
88
+ tracker.add(value);
89
+ if (typeof value === "function") {
90
+ return "[function]";
91
+ }
92
+ if (value instanceof Error) {
93
+ return redactError(value, depth, tracker);
94
+ }
95
+ if (value instanceof Date) {
96
+ return value;
97
+ }
98
+ // tough-cookie CookieJar and similar: walking them yields the cookie values we are
99
+ // trying to suppress, and their internals are not useful in a log line anyway.
100
+ const constructorName = value?.constructor?.name ?? "";
101
+ if (/cookiejar|cookie/i.test(constructorName)) {
102
+ return REDACTED;
103
+ }
104
+ if (Array.isArray(value)) {
105
+ return value.map((entry) => redactValue(entry, depth + 1, tracker));
106
+ }
107
+ if (value instanceof Map) {
108
+ const out = {};
109
+ for (const [key, entry] of value.entries()) {
110
+ const name = String(key);
111
+ out[name] = isSecretKey(name) ? REDACTED : redactValue(entry, depth + 1, tracker);
112
+ }
113
+ return out;
114
+ }
115
+ if (value instanceof Set) {
116
+ return [...value].map((entry) => redactValue(entry, depth + 1, tracker));
117
+ }
118
+ const record = value;
119
+ const out = {};
120
+ for (const key of Object.keys(record)) {
121
+ if (isSecretKey(key)) {
122
+ out[key] = REDACTED;
123
+ continue;
124
+ }
125
+ try {
126
+ out[key] = redactValue(record[key], depth + 1, tracker);
127
+ }
128
+ catch {
129
+ // A throwing getter must not take the log line down with it.
130
+ out[key] = "[unreadable]";
131
+ }
132
+ }
133
+ return out;
134
+ }
135
+ /**
136
+ * Strips credential material from an error **in place** and returns it.
137
+ *
138
+ * Used before rethrowing, so the error that reaches a consumer carries nothing
139
+ * sensitive. Deliberately mutates rather than returning a replacement: consumers do
140
+ * `instanceof` checks against it (StaleInstanceError, and the CLI's remediation
141
+ * duck-typing), and rebuilding the error would break both and discard the stack.
142
+ *
143
+ * This matters more since sessions stopped being flattened at the throw sites: an
144
+ * error now reaches callers with `config` and `response` intact, and their loggers do
145
+ * not have core's redaction format.
146
+ */
147
+ export function stripSecretsFromError(error) {
148
+ if (!error || typeof error !== "object") {
149
+ return error;
150
+ }
151
+ const err = error;
152
+ for (const key of Object.keys(err)) {
153
+ if (isSecretKey(key)) {
154
+ err[key] = REDACTED;
155
+ continue;
156
+ }
157
+ const child = err[key];
158
+ if (child && typeof child === "object") {
159
+ try {
160
+ err[key] = redactValue(child);
161
+ }
162
+ catch {
163
+ err[key] = "[unreadable]";
164
+ }
165
+ }
166
+ }
167
+ // `cause` has to be handled by name. `new Error(msg, {cause})` installs it as a
168
+ // NON-ENUMERABLE own property, so the Object.keys loop above never sees it — and
169
+ // a wrapped network or auth failure is exactly the shape that carries a
170
+ // credential-bearing cause. Reassigned through the same descriptor so it stays
171
+ // non-enumerable and does not start showing up in JSON.stringify output.
172
+ if ("cause" in err) {
173
+ try {
174
+ const redactedCause = isSecretKey("cause") ? REDACTED : redactValue(err.cause);
175
+ Object.defineProperty(err, "cause", {
176
+ value: redactedCause,
177
+ writable: true,
178
+ enumerable: false,
179
+ configurable: true,
180
+ });
181
+ }
182
+ catch {
183
+ // A non-configurable cause cannot be replaced; leave it rather than throw
184
+ // from inside a function whose whole job is to make rethrowing safe.
185
+ }
186
+ }
187
+ return error;
188
+ }
189
+ /**
190
+ * Returns a plain object describing `error` with credential material removed.
191
+ *
192
+ * Kept structural rather than returning a rebuilt Error: this is for logging and for
193
+ * handing to a consumer, and a plain object cannot be mistaken for something throwable
194
+ * that has lost its prototype.
195
+ */
196
+ export function redactError(error, depth = 0, seen) {
197
+ const tracker = seen ?? new WeakSet();
198
+ const err = error;
199
+ const out = {
200
+ name: err?.name,
201
+ message: typeof err?.message === "string" ? err.message : String(err?.message ?? ""),
202
+ };
203
+ if (typeof err?.stack === "string") {
204
+ out.stack = err.stack;
205
+ }
206
+ // Everything else an error may be carrying — axios-style `config`, a fetch
207
+ // `request`, a `response`, a `cause` — is where credentials actually hide.
208
+ for (const key of Object.keys(err ?? {})) {
209
+ if (key === "name" || key === "message" || key === "stack") {
210
+ continue;
211
+ }
212
+ if (isSecretKey(key)) {
213
+ out[key] = REDACTED;
214
+ continue;
215
+ }
216
+ try {
217
+ out[key] = redactValue(err[key], depth + 1, tracker);
218
+ }
219
+ catch {
220
+ out[key] = "[unreadable]";
221
+ }
222
+ }
223
+ if (err?.cause !== undefined && out.cause === undefined) {
224
+ out.cause = redactValue(err.cause, depth + 1, tracker);
225
+ }
226
+ return out;
227
+ }
228
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/util/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,GAAsB;IACnC,MAAM;IACN,eAAe;IACf,SAAS;IACT,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,cAAc;IACd,OAAO;IACP,cAAc;IACd,eAAe;IACf,UAAU;IACV,WAAW;IACX,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,SAAS;CACZ,CAAC;AAEF,2EAA2E;AAC3E,MAAM,gBAAgB,GAAsB;IACxC,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,YAAY;CACf,CAAC;AAEF,uFAAuF;AACvF,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC,EAAE,IAAsB;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;IAC3E,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACrB,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,EAAU,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mFAAmF;IACnF,+EAA+E;IAC/E,MAAM,eAAe,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;IACvD,IAAI,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACpB,SAAS;QACb,CAAC;QACD,IAAI,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACL,6DAA6D;YAC7D,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;QAC9B,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAI,KAAQ;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,KAA2C,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACpB,SAAS;QACb,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACL,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,wEAAwE;IACxE,+EAA+E;IAC/E,yEAAyE;IACzE,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;gBAChC,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;aACrB,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,0EAA0E;YAC1E,qEAAqE;QACzE,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACvB,KAAc,EACd,KAAK,GAAG,CAAC,EACT,IAAsB;IAEtB,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,EAAU,CAAC;IAC9C,MAAM,GAAG,GAAG,KAAwC,CAAC;IAErD,MAAM,GAAG,GAA4B;QACjC,IAAI,EAAE,GAAG,EAAE,IAAI;QACf,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC;KACvF,CAAC;IAEF,IAAI,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACzD,SAAS;QACb,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACpB,SAAS;QACb,CAAC;QACD,IAAI,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,IAAI,GAAG,EAAE,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonisoft/now-sdk-ext-core",
3
- "version": "5.1.0",
3
+ "version": "5.2.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",