@contrail/flexplm 1.7.7-alpha.1ad98c2 → 1.7.7-alpha.24a6b7d

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.
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FlexPLMConnect = void 0;
4
4
  const app_framework_1 = require("@contrail/app-framework");
5
- // Module-level on purpose: a new FlexPLMConnect is constructed for every event. Declaring for Session resuing use case.
5
+ // Module-level on purpose: a new FlexPLMConnect is constructed for every event. Declaring for Session reusing use case.
6
6
  const sessionCache = new Map();
7
7
  // Added for Session reuse - ET-390 - Ends
8
8
  class FlexPLMConnect {
@@ -41,7 +41,6 @@ class FlexPLMConnect {
41
41
  const cfg = this.config ?? {};
42
42
  const sessReuseEntries = (name) => cfg[`flexplmConnect.sessionReuse.${name}`];
43
43
  const enabled = sessReuseEntries('enabled');
44
- console.info('sessionReuse.enabled value is --> ' + enabled);
45
44
  return {
46
45
  enabled: enabled === true || String(enabled).toLowerCase() === 'true',
47
46
  ttlMs: (sessReuseEntries('ttlSeconds') ?? 900) * 1000,
@@ -63,12 +62,10 @@ class FlexPLMConnect {
63
62
  sessionCache.delete(key);
64
63
  return undefined;
65
64
  }
66
- console.info('cachedSessValue.cookie: ' + cachedSessValue.cookie);
67
65
  return cachedSessValue.cookie;
68
66
  }
69
67
  storeSession(cookie) {
70
68
  // sliding expiry: Windchill's session timeout is also sliding
71
- console.info('cookie: ' + cookie);
72
69
  sessionCache.set(this.getSessionKey(), { cookie, expiresAt: Date.now() + this.sessionOptions.ttlMs });
73
70
  }
74
71
  clearSession() {
@@ -77,7 +74,6 @@ class FlexPLMConnect {
77
74
  /** Returns the session cookie value Windchill issued on this response, if any (last one wins). */
78
75
  extractSessionCookie(response) {
79
76
  const respHeader = response?.headers;
80
- console.info('respHeader: ' + respHeader);
81
77
  if (!respHeader)
82
78
  return undefined;
83
79
  let raw = [];
@@ -97,7 +93,6 @@ class FlexPLMConnect {
97
93
  cookieNameMatcher = regexFilter.exec(line);
98
94
  }
99
95
  }
100
- console.info('jSession: ' + jSession);
101
96
  return jSession;
102
97
  }
103
98
  cookieHeader(sessionCookie) {
@@ -124,7 +119,6 @@ class FlexPLMConnect {
124
119
  }
125
120
  // Added for Session reuse - ET-390 - Starts
126
121
  const cookie = this.cookieHeader(sessionCookie);
127
- console.info('sessionReuse--cookie --> ' + cookie);
128
122
  if (cookie) {
129
123
  csrfOptions.headers['Cookie'] = cookie;
130
124
  }
@@ -138,7 +132,6 @@ class FlexPLMConnect {
138
132
  // Added for Session reuse - ET-390 - Ends
139
133
  console.info('csrfOptions: ' + JSON.stringify(logOptions));
140
134
  }
141
- console.info('csrfOptions --> ' + csrfOptions);
142
135
  return csrfOptions;
143
136
  }
144
137
  /////////////////////////////////////////////////////////////////////////////
@@ -159,7 +152,6 @@ class FlexPLMConnect {
159
152
  const csrfOptions = this.getRequestOptions('GET', sentCookie);
160
153
  // Added for Session reuse - ET-390 - Ends
161
154
  let response = await fetch(csrfURL, csrfOptions);
162
- console.info('response.status: ' + response.status);
163
155
  // Added for Session reuse - ET-390 - Starts
164
156
  // if the response status is 401 or 403, then get a new session id
165
157
  if (sentCookie && this.sessionOptions.retryStatuses.includes(response.status)) {
@@ -190,9 +182,7 @@ class FlexPLMConnect {
190
182
  const body = await response.json();
191
183
  const nonce_key = body.items[0].attributes.nonce_key;
192
184
  const nonce = body.items[0].attributes.nonce;
193
- console.info('nonce_key: ' + nonce_key);
194
- console.info('sessionCookie: ' + sessionCookie);
195
- //ET-390 - adding sessionCookie to the return
185
+ // ET-390 - adding sessionCookie to the return
196
186
  return {
197
187
  nonce_key,
198
188
  nonce,
@@ -321,8 +311,6 @@ class FlexPLMConnect {
321
311
  this.storeSession(cachedCookie);
322
312
  }
323
313
  // Added for Session reuse - ET-390 - Ends
324
- console.info('if loop entry 1: ' + this.sessionOptions.retryStatuses.includes(response.status));
325
- console.info('response.status1: ' + response.status);
326
314
  if (response.status >= 300) {
327
315
  const message = 'Error connecting to FlexPLM:status: ' + response.status;
328
316
  console.error(message);
@@ -39,7 +39,12 @@ const resp = (status, setCookie = [], json = csrfBody) => ({
39
39
  });
40
40
  let userCounter = 0;
41
41
  const uniqueUser = () => 'sess-user-' + (++userCounter);
42
- const sessionConfig = (user, sessionReuse = { enabled: true }) => createConfig({ userName: () => user, flexplmConnect: { sessionReuse } });
42
+ // The connector config is flat: keys look like 'flexplmConnect.sessionReuse.enabled'
43
+ const sessionConfig = (user, sessionReuse = { enabled: true }) => {
44
+ const flat = {};
45
+ Object.entries(sessionReuse).forEach(([k, v]) => { flat[`flexplmConnect.sessionReuse.${k}`] = v; });
46
+ return createConfig({ userName: () => user, ...flat });
47
+ };
43
48
  const fetchMock = () => global.fetch;
44
49
  const callHeaders = (i) => fetchMock().mock.calls[i][1].headers;
45
50
  const callMethod = (i) => fetchMock().mock.calls[i][1].method;
@@ -140,7 +145,7 @@ describe('FlexPLMConnect.sendRequest', () => {
140
145
  // Added for Session reuse - ET-390 - Starts
141
146
  describe('FlexPLMConnect session reuse', () => {
142
147
  const payload = { id: '123' };
143
- it('captures JSESSIONID from the csrf GET and sends it on the POST', async () => {
148
+ it('should capture JSESSIONID from the CSRF GET and send it on the POST', async () => {
144
149
  const u = uniqueUser();
145
150
  fetchMock()
146
151
  .mockResolvedValueOnce(resp(200, ['JSESSIONID=abc.tomcat1; Path=/; HttpOnly']))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/flexplm",
3
- "version": "1.7.7-alpha.1ad98c2",
3
+ "version": "1.7.7-alpha.24a6b7d",
4
4
  "description": "Library used for integration with flexplm.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",