@ama-sdk/core 11.2.0-prerelease.9 → 11.3.0-prerelease.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.
@@ -16,6 +16,7 @@ _export_star(require("./fetch-cache/index"), exports);
16
16
  _export_star(require("./fetch-credentials/index"), exports);
17
17
  _export_star(require("./json-token/index"), exports);
18
18
  _export_star(require("./keepalive/index"), exports);
19
+ _export_star(require("./mgw-mdw-auth/index"), exports);
19
20
  _export_star(require("./mock-intercept/index"), exports);
20
21
  _export_star(require("./perf-metric/index"), exports);
21
22
  _export_star(require("./pii-tokenizer/index"), exports);
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Computes the SHA256 digest of the given string
3
+ * @param value Value to hash
4
+ */ "use strict";
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ function _export(target, all) {
9
+ for(var name in all)Object.defineProperty(target, name, {
10
+ enumerable: true,
11
+ get: all[name]
12
+ });
13
+ }
14
+ _export(exports, {
15
+ hmacSHA256: function() {
16
+ return hmacSHA256;
17
+ },
18
+ sha256: function() {
19
+ return sha256;
20
+ }
21
+ });
22
+ function _array_like_to_array(arr, len) {
23
+ if (len == null || len > arr.length) len = arr.length;
24
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
25
+ return arr2;
26
+ }
27
+ function _array_without_holes(arr) {
28
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
29
+ }
30
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
31
+ try {
32
+ var info = gen[key](arg);
33
+ var value = info.value;
34
+ } catch (error) {
35
+ reject(error);
36
+ return;
37
+ }
38
+ if (info.done) {
39
+ resolve(value);
40
+ } else {
41
+ Promise.resolve(value).then(_next, _throw);
42
+ }
43
+ }
44
+ function _async_to_generator(fn) {
45
+ return function() {
46
+ var self = this, args = arguments;
47
+ return new Promise(function(resolve, reject) {
48
+ var gen = fn.apply(self, args);
49
+ function _next(value) {
50
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
51
+ }
52
+ function _throw(err) {
53
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
54
+ }
55
+ _next(undefined);
56
+ });
57
+ };
58
+ }
59
+ function _iterable_to_array(iter) {
60
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
61
+ }
62
+ function _non_iterable_spread() {
63
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
64
+ }
65
+ function _to_consumable_array(arr) {
66
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
67
+ }
68
+ function _unsupported_iterable_to_array(o, minLen) {
69
+ if (!o) return;
70
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
71
+ var n = Object.prototype.toString.call(o).slice(8, -1);
72
+ if (n === "Object" && o.constructor) n = o.constructor.name;
73
+ if (n === "Map" || n === "Set") return Array.from(n);
74
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
75
+ }
76
+ function _ts_generator(thisArg, body) {
77
+ var f, y, t, g, _ = {
78
+ label: 0,
79
+ sent: function() {
80
+ if (t[0] & 1) throw t[1];
81
+ return t[1];
82
+ },
83
+ trys: [],
84
+ ops: []
85
+ };
86
+ return g = {
87
+ next: verb(0),
88
+ "throw": verb(1),
89
+ "return": verb(2)
90
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
91
+ return this;
92
+ }), g;
93
+ function verb(n) {
94
+ return function(v) {
95
+ return step([
96
+ n,
97
+ v
98
+ ]);
99
+ };
100
+ }
101
+ function step(op) {
102
+ if (f) throw new TypeError("Generator is already executing.");
103
+ while(_)try {
104
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
105
+ if (y = 0, t) op = [
106
+ op[0] & 2,
107
+ t.value
108
+ ];
109
+ switch(op[0]){
110
+ case 0:
111
+ case 1:
112
+ t = op;
113
+ break;
114
+ case 4:
115
+ _.label++;
116
+ return {
117
+ value: op[1],
118
+ done: false
119
+ };
120
+ case 5:
121
+ _.label++;
122
+ y = op[1];
123
+ op = [
124
+ 0
125
+ ];
126
+ continue;
127
+ case 7:
128
+ op = _.ops.pop();
129
+ _.trys.pop();
130
+ continue;
131
+ default:
132
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
133
+ _ = 0;
134
+ continue;
135
+ }
136
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
137
+ _.label = op[1];
138
+ break;
139
+ }
140
+ if (op[0] === 6 && _.label < t[1]) {
141
+ _.label = t[1];
142
+ t = op;
143
+ break;
144
+ }
145
+ if (t && _.label < t[2]) {
146
+ _.label = t[2];
147
+ _.ops.push(op);
148
+ break;
149
+ }
150
+ if (t[2]) _.ops.pop();
151
+ _.trys.pop();
152
+ continue;
153
+ }
154
+ op = body.call(thisArg, _);
155
+ } catch (e) {
156
+ op = [
157
+ 6,
158
+ e
159
+ ];
160
+ y = 0;
161
+ } finally{
162
+ f = t = 0;
163
+ }
164
+ if (op[0] & 5) throw op[1];
165
+ return {
166
+ value: op[0] ? op[1] : void 0,
167
+ done: true
168
+ };
169
+ }
170
+ }
171
+ function sha256(value) {
172
+ return _sha256.apply(this, arguments);
173
+ }
174
+ function _sha256() {
175
+ _sha256 = _async_to_generator(function(value) {
176
+ var utf8, hashBuffer, hashArray, hashHex;
177
+ return _ts_generator(this, function(_state) {
178
+ switch(_state.label){
179
+ case 0:
180
+ utf8 = new TextEncoder().encode(value);
181
+ return [
182
+ 4,
183
+ crypto.subtle.digest('SHA-256', utf8)
184
+ ];
185
+ case 1:
186
+ hashBuffer = _state.sent();
187
+ hashArray = Array.from(new Uint8Array(hashBuffer));
188
+ hashHex = hashArray.map(function(bytes) {
189
+ return bytes.toString(16).padStart(2, '0');
190
+ }).join('');
191
+ return [
192
+ 2,
193
+ hashHex
194
+ ];
195
+ }
196
+ });
197
+ });
198
+ return _sha256.apply(this, arguments);
199
+ }
200
+ function hmacSHA256(value, secretKey) {
201
+ return _hmacSHA256.apply(this, arguments);
202
+ }
203
+ function _hmacSHA256() {
204
+ _hmacSHA256 = _async_to_generator(function(value, secretKey) {
205
+ var _String, enc, algorithm, key, signature, digest;
206
+ return _ts_generator(this, function(_state) {
207
+ switch(_state.label){
208
+ case 0:
209
+ enc = new TextEncoder();
210
+ algorithm = {
211
+ name: 'HMAC',
212
+ hash: 'SHA-256'
213
+ };
214
+ return [
215
+ 4,
216
+ crypto.subtle.importKey('raw', enc.encode(secretKey), algorithm, false, [
217
+ 'sign',
218
+ 'verify'
219
+ ])
220
+ ];
221
+ case 1:
222
+ key = _state.sent();
223
+ return [
224
+ 4,
225
+ crypto.subtle.sign(algorithm.name, key, enc.encode(value))
226
+ ];
227
+ case 2:
228
+ signature = _state.sent();
229
+ digest = btoa((_String = String).fromCharCode.apply(_String, _to_consumable_array(new Uint8Array(signature))));
230
+ return [
231
+ 2,
232
+ digest
233
+ ];
234
+ }
235
+ });
236
+ });
237
+ return _hmacSHA256.apply(this, arguments);
238
+ }
@@ -2,25 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- MicroGatewayMiddlewareAuthenticationRequest: function() {
5
+ Object.defineProperty(exports, "MicroGatewayMiddlewareAuthenticationRequest", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return MicroGatewayMiddlewareAuthenticationRequest;
14
- },
15
- hmacSHA256: function() {
16
- return hmacSHA256;
17
- },
18
- sha256: function() {
19
- return sha256;
20
9
  }
21
10
  });
22
11
  var _uuid = require("uuid");
23
12
  var _jsontoken = require("../../utils/json-token");
13
+ var _mgwmdwauthhelpers = require("./mgw-mdw-auth.helpers");
24
14
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
25
15
  try {
26
16
  var info = gen[key](arg);
@@ -177,43 +167,6 @@ function _ts_generator(thisArg, body) {
177
167
  };
178
168
  }
179
169
  }
180
- function sha256(value) {
181
- return _sha256.apply(this, arguments);
182
- }
183
- function _sha256() {
184
- _sha256 = _async_to_generator(function(value) {
185
- var utf8, hashBuffer, hashArray, hashHex;
186
- return _ts_generator(this, function(_state) {
187
- switch(_state.label){
188
- case 0:
189
- utf8 = new TextEncoder().encode(value);
190
- return [
191
- 4,
192
- (globalThis.crypto || require('node:crypto').webcrypto).subtle.digest('SHA-256', utf8)
193
- ];
194
- case 1:
195
- hashBuffer = _state.sent();
196
- hashArray = Array.from(new Uint8Array(hashBuffer));
197
- hashHex = hashArray.map(function(bytes) {
198
- return bytes.toString(16).padStart(2, '0');
199
- }).join('');
200
- return [
201
- 2,
202
- hashHex
203
- ];
204
- }
205
- });
206
- });
207
- return _sha256.apply(this, arguments);
208
- }
209
- function hmacSHA256(value, secretKey) {
210
- try {
211
- var createHmac = require('node:crypto').createHmac;
212
- return createHmac('sha256', secretKey).update(value, 'latin1').digest('base64');
213
- } catch (err) {
214
- throw new Error('Crypto module is not available.');
215
- }
216
- }
217
170
  /**
218
171
  * Header definition of the JWS used for the API Manager authentication
219
172
  */ var jwsHeader = {
@@ -300,13 +253,13 @@ var MicroGatewayMiddlewareAuthenticationRequest = /*#__PURE__*/ function() {
300
253
  _ = _this.apiKey;
301
254
  return [
302
255
  4,
303
- sha256(subKeyString)
256
+ (0, _mgwmdwauthhelpers.sha256)(subKeyString)
304
257
  ];
305
258
  case 1:
306
259
  keyString = _ + _state.sent();
307
260
  return [
308
261
  2,
309
- sha256(keyString)
262
+ (0, _mgwmdwauthhelpers.sha256)(keyString)
310
263
  ];
311
264
  }
312
265
  });
@@ -320,10 +273,27 @@ var MicroGatewayMiddlewareAuthenticationRequest = /*#__PURE__*/ function() {
320
273
  * @param payload JWT payload
321
274
  * @param secretKey secret key used to generate the signature
322
275
  */ function sign(payload, secretKey) {
323
- var message = "".concat(this.base64UrlEncoder(JSON.stringify(jwsHeader)), ".").concat(this.base64UrlEncoder(JSON.stringify(payload)));
324
- var signature = hmacSHA256(message, secretKey);
325
- var encodedSignature = (0, _jsontoken.base64EncodeUrl)(signature);
326
- return "".concat(message, ".").concat(encodedSignature);
276
+ var _this = this;
277
+ return _async_to_generator(function() {
278
+ var message, signature, encodedSignature;
279
+ return _ts_generator(this, function(_state) {
280
+ switch(_state.label){
281
+ case 0:
282
+ message = "".concat(_this.base64UrlEncoder(JSON.stringify(jwsHeader)), ".").concat(_this.base64UrlEncoder(JSON.stringify(payload)));
283
+ return [
284
+ 4,
285
+ (0, _mgwmdwauthhelpers.hmacSHA256)(message, secretKey)
286
+ ];
287
+ case 1:
288
+ signature = _state.sent();
289
+ encodedSignature = (0, _jsontoken.base64EncodeUrl)(signature);
290
+ return [
291
+ 2,
292
+ "".concat(message, ".").concat(encodedSignature)
293
+ ];
294
+ }
295
+ });
296
+ })();
327
297
  }
328
298
  },
329
299
  {
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  var _jsontoken = require("../../utils/json-token");
6
+ var _mgwmdwauthhelpers = require("./mgw-mdw-auth.helpers");
6
7
  var _mgwmdwauthrequest = require("./mgw-mdw-auth.request");
7
8
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
8
9
  try {
@@ -175,6 +176,10 @@ var jsonAuthTokenOptions = {
175
176
  oid: 'NCE1A0955'
176
177
  }
177
178
  };
179
+ var hmacSHA256NodeImplementation = function(value, secretKey) {
180
+ var createHmac = require('node:crypto').createHmac;
181
+ return createHmac('sha256', secretKey).update(value, 'latin1').digest('base64');
182
+ };
178
183
  describe('JSON auth token request plugin', function() {
179
184
  beforeEach(function() {
180
185
  options = {
@@ -310,12 +315,12 @@ describe('JSON auth token request plugin', function() {
310
315
  _ = jsonAuthTokenOptions.apiKey;
311
316
  return [
312
317
  4,
313
- (0, _mgwmdwauthrequest.sha256)(jsonAuthTokenOptions.secret + payload.jti + payload.iat + routePath)
318
+ (0, _mgwmdwauthhelpers.sha256)(jsonAuthTokenOptions.secret + payload.jti + payload.iat + routePath)
314
319
  ];
315
320
  case 2:
316
321
  return [
317
322
  4,
318
- _mgwmdwauthrequest.sha256.apply(void 0, [
323
+ _mgwmdwauthhelpers.sha256.apply(void 0, [
319
324
  _ + _state.sent()
320
325
  ])
321
326
  ];
@@ -323,7 +328,14 @@ describe('JSON auth token request plugin', function() {
323
328
  secretKey = _state.sent();
324
329
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
325
330
  message = "".concat(base64UrlEncoder(JSON.stringify(header)), ".").concat(base64UrlEncoder(JSON.stringify(payload)));
326
- signCheck = (0, _jsontoken.base64EncodeUrl)((0, _mgwmdwauthrequest.hmacSHA256)(message, secretKey));
331
+ return [
332
+ 4,
333
+ (0, _mgwmdwauthhelpers.hmacSHA256)(message, secretKey)
334
+ ];
335
+ case 4:
336
+ signCheck = _jsontoken.base64EncodeUrl.apply(void 0, [
337
+ _state.sent()
338
+ ]);
327
339
  expect(signature).toEqual(signCheck);
328
340
  return [
329
341
  2
@@ -331,4 +343,50 @@ describe('JSON auth token request plugin', function() {
331
343
  }
332
344
  });
333
345
  }));
346
+ it('should have same hmacSHA256 of node implementation', /*#__PURE__*/ _async_to_generator(function() {
347
+ var base64URLDecoder, base64UrlEncoder, plugin, result, token, tokenParts, header, payload, secretKey, _, message;
348
+ return _ts_generator(this, function(_state) {
349
+ switch(_state.label){
350
+ case 0:
351
+ base64URLDecoder = (0, _jsontoken.createBase64UrlDecoder)();
352
+ base64UrlEncoder = (0, _jsontoken.createBase64UrlEncoder)();
353
+ plugin = new _mgwmdwauthrequest.MicroGatewayMiddlewareAuthenticationRequest(jsonAuthTokenOptions);
354
+ return [
355
+ 4,
356
+ plugin.load().transform(options)
357
+ ];
358
+ case 1:
359
+ result = _state.sent();
360
+ token = result.headers.get(authHeaderKey).replace(authHeaderPrefix, '');
361
+ tokenParts = token.split('.');
362
+ header = JSON.parse(base64URLDecoder(tokenParts[0]));
363
+ payload = JSON.parse(base64URLDecoder(tokenParts[1]));
364
+ _ = jsonAuthTokenOptions.apiKey;
365
+ return [
366
+ 4,
367
+ (0, _mgwmdwauthhelpers.sha256)(jsonAuthTokenOptions.secret + payload.jti + payload.iat + routePath)
368
+ ];
369
+ case 2:
370
+ return [
371
+ 4,
372
+ _mgwmdwauthhelpers.sha256.apply(void 0, [
373
+ _ + _state.sent()
374
+ ])
375
+ ];
376
+ case 3:
377
+ secretKey = _state.sent();
378
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
379
+ message = "".concat(base64UrlEncoder(JSON.stringify(header)), ".").concat(base64UrlEncoder(JSON.stringify(payload)));
380
+ return [
381
+ 4,
382
+ expect((0, _mgwmdwauthhelpers.hmacSHA256)(message, secretKey)).resolves.toBe(hmacSHA256NodeImplementation(message, secretKey))
383
+ ];
384
+ case 4:
385
+ _state.sent();
386
+ return [
387
+ 2
388
+ ];
389
+ }
390
+ });
391
+ }));
334
392
  });
@@ -220,7 +220,6 @@ var WaitForFetch = /*#__PURE__*/ function() {
220
220
  value: /** @inheritDoc */ function load(context) {
221
221
  var data;
222
222
  var _this = this;
223
- var _this1 = this;
224
223
  return {
225
224
  // eslint-disable-next-line no-async-promise-executor
226
225
  canStart: function() {
@@ -299,7 +298,7 @@ var WaitForFetch = /*#__PURE__*/ function() {
299
298
  return _ts_generator(this, function(_state) {
300
299
  switch(_state.label){
301
300
  case 0:
302
- if (!_this1.callback) {
301
+ if (!_this.callback) {
303
302
  return [
304
303
  2,
305
304
  fetchCall
@@ -319,7 +318,7 @@ var WaitForFetch = /*#__PURE__*/ function() {
319
318
  ];
320
319
  case 2:
321
320
  response = _state.sent();
322
- _this1.callback(_object_spread_props(_object_spread({}, context), {
321
+ _this.callback(_object_spread_props(_object_spread({}, context), {
323
322
  data: data
324
323
  }), fetchCall, response);
325
324
  return [
@@ -328,7 +327,7 @@ var WaitForFetch = /*#__PURE__*/ function() {
328
327
  ];
329
328
  case 3:
330
329
  e = _state.sent();
331
- _this1.callback(_object_spread_props(_object_spread({}, context), {
330
+ _this.callback(_object_spread_props(_object_spread({}, context), {
332
331
  data: data
333
332
  }), fetchCall, response);
334
333
  throw e;
@@ -12,6 +12,7 @@ export * from './fetch-cache/index';
12
12
  export * from './fetch-credentials/index';
13
13
  export * from './json-token/index';
14
14
  export * from './keepalive/index';
15
+ export * from './mgw-mdw-auth/index';
15
16
  export * from './mock-intercept/index';
16
17
  export * from './perf-metric/index';
17
18
  export * from './pii-tokenizer/index';
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Computes the SHA256 digest of the given string
3
+ * @param value Value to hash
4
+ */ function _array_like_to_array(arr, len) {
5
+ if (len == null || len > arr.length) len = arr.length;
6
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
7
+ return arr2;
8
+ }
9
+ function _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
+ try {
14
+ var info = gen[key](arg);
15
+ var value = info.value;
16
+ } catch (error) {
17
+ reject(error);
18
+ return;
19
+ }
20
+ if (info.done) {
21
+ resolve(value);
22
+ } else {
23
+ Promise.resolve(value).then(_next, _throw);
24
+ }
25
+ }
26
+ function _async_to_generator(fn) {
27
+ return function() {
28
+ var self = this, args = arguments;
29
+ return new Promise(function(resolve, reject) {
30
+ var gen = fn.apply(self, args);
31
+ function _next(value) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
33
+ }
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+ _next(undefined);
38
+ });
39
+ };
40
+ }
41
+ function _iterable_to_array(iter) {
42
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
43
+ }
44
+ function _non_iterable_spread() {
45
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
46
+ }
47
+ function _to_consumable_array(arr) {
48
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
49
+ }
50
+ function _unsupported_iterable_to_array(o, minLen) {
51
+ if (!o) return;
52
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
53
+ var n = Object.prototype.toString.call(o).slice(8, -1);
54
+ if (n === "Object" && o.constructor) n = o.constructor.name;
55
+ if (n === "Map" || n === "Set") return Array.from(n);
56
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
57
+ }
58
+ function _ts_generator(thisArg, body) {
59
+ var f, y, t, g, _ = {
60
+ label: 0,
61
+ sent: function() {
62
+ if (t[0] & 1) throw t[1];
63
+ return t[1];
64
+ },
65
+ trys: [],
66
+ ops: []
67
+ };
68
+ return g = {
69
+ next: verb(0),
70
+ "throw": verb(1),
71
+ "return": verb(2)
72
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
73
+ return this;
74
+ }), g;
75
+ function verb(n) {
76
+ return function(v) {
77
+ return step([
78
+ n,
79
+ v
80
+ ]);
81
+ };
82
+ }
83
+ function step(op) {
84
+ if (f) throw new TypeError("Generator is already executing.");
85
+ while(_)try {
86
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
87
+ if (y = 0, t) op = [
88
+ op[0] & 2,
89
+ t.value
90
+ ];
91
+ switch(op[0]){
92
+ case 0:
93
+ case 1:
94
+ t = op;
95
+ break;
96
+ case 4:
97
+ _.label++;
98
+ return {
99
+ value: op[1],
100
+ done: false
101
+ };
102
+ case 5:
103
+ _.label++;
104
+ y = op[1];
105
+ op = [
106
+ 0
107
+ ];
108
+ continue;
109
+ case 7:
110
+ op = _.ops.pop();
111
+ _.trys.pop();
112
+ continue;
113
+ default:
114
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
115
+ _ = 0;
116
+ continue;
117
+ }
118
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
119
+ _.label = op[1];
120
+ break;
121
+ }
122
+ if (op[0] === 6 && _.label < t[1]) {
123
+ _.label = t[1];
124
+ t = op;
125
+ break;
126
+ }
127
+ if (t && _.label < t[2]) {
128
+ _.label = t[2];
129
+ _.ops.push(op);
130
+ break;
131
+ }
132
+ if (t[2]) _.ops.pop();
133
+ _.trys.pop();
134
+ continue;
135
+ }
136
+ op = body.call(thisArg, _);
137
+ } catch (e) {
138
+ op = [
139
+ 6,
140
+ e
141
+ ];
142
+ y = 0;
143
+ } finally{
144
+ f = t = 0;
145
+ }
146
+ if (op[0] & 5) throw op[1];
147
+ return {
148
+ value: op[0] ? op[1] : void 0,
149
+ done: true
150
+ };
151
+ }
152
+ }
153
+ export function sha256(value) {
154
+ return _sha256.apply(this, arguments);
155
+ }
156
+ function _sha256() {
157
+ _sha256 = _async_to_generator(function(value) {
158
+ var utf8, hashBuffer, hashArray, hashHex;
159
+ return _ts_generator(this, function(_state) {
160
+ switch(_state.label){
161
+ case 0:
162
+ utf8 = new TextEncoder().encode(value);
163
+ return [
164
+ 4,
165
+ crypto.subtle.digest('SHA-256', utf8)
166
+ ];
167
+ case 1:
168
+ hashBuffer = _state.sent();
169
+ hashArray = Array.from(new Uint8Array(hashBuffer));
170
+ hashHex = hashArray.map(function(bytes) {
171
+ return bytes.toString(16).padStart(2, '0');
172
+ }).join('');
173
+ return [
174
+ 2,
175
+ hashHex
176
+ ];
177
+ }
178
+ });
179
+ });
180
+ return _sha256.apply(this, arguments);
181
+ }
182
+ /**
183
+ * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
184
+ * secret key
185
+ * Should only be in a NodeJS MDW context
186
+ * @param value Value to hash
187
+ * @param secretKey Secret cryptographic key
188
+ */ export function hmacSHA256(value, secretKey) {
189
+ return _hmacSHA256.apply(this, arguments);
190
+ }
191
+ function _hmacSHA256() {
192
+ _hmacSHA256 = _async_to_generator(function(value, secretKey) {
193
+ var _String, enc, algorithm, key, signature, digest;
194
+ return _ts_generator(this, function(_state) {
195
+ switch(_state.label){
196
+ case 0:
197
+ enc = new TextEncoder();
198
+ algorithm = {
199
+ name: 'HMAC',
200
+ hash: 'SHA-256'
201
+ };
202
+ return [
203
+ 4,
204
+ crypto.subtle.importKey('raw', enc.encode(secretKey), algorithm, false, [
205
+ 'sign',
206
+ 'verify'
207
+ ])
208
+ ];
209
+ case 1:
210
+ key = _state.sent();
211
+ return [
212
+ 4,
213
+ crypto.subtle.sign(algorithm.name, key, enc.encode(value))
214
+ ];
215
+ case 2:
216
+ signature = _state.sent();
217
+ digest = btoa((_String = String).fromCharCode.apply(_String, _to_consumable_array(new Uint8Array(signature))));
218
+ return [
219
+ 2,
220
+ digest
221
+ ];
222
+ }
223
+ });
224
+ });
225
+ return _hmacSHA256.apply(this, arguments);
226
+ }
@@ -156,52 +156,7 @@ function _ts_generator(thisArg, body) {
156
156
  }
157
157
  import { v4 } from 'uuid';
158
158
  import { base64EncodeUrl, createBase64Encoder, createBase64UrlEncoder } from '../../utils/json-token';
159
- /**
160
- * Computes the SHA256 digest of the given string
161
- * @param value Value to hash
162
- */ export function sha256(value) {
163
- return _sha256.apply(this, arguments);
164
- }
165
- function _sha256() {
166
- _sha256 = _async_to_generator(function(value) {
167
- var utf8, hashBuffer, hashArray, hashHex;
168
- return _ts_generator(this, function(_state) {
169
- switch(_state.label){
170
- case 0:
171
- utf8 = new TextEncoder().encode(value);
172
- return [
173
- 4,
174
- (globalThis.crypto || require('node:crypto').webcrypto).subtle.digest('SHA-256', utf8)
175
- ];
176
- case 1:
177
- hashBuffer = _state.sent();
178
- hashArray = Array.from(new Uint8Array(hashBuffer));
179
- hashHex = hashArray.map(function(bytes) {
180
- return bytes.toString(16).padStart(2, '0');
181
- }).join('');
182
- return [
183
- 2,
184
- hashHex
185
- ];
186
- }
187
- });
188
- });
189
- return _sha256.apply(this, arguments);
190
- }
191
- /**
192
- * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
193
- * secret key
194
- * Should only be in a NodeJS MDW context
195
- * @param value Value to hash
196
- * @param secretKey Secret cryptographic key
197
- */ export function hmacSHA256(value, secretKey) {
198
- try {
199
- var createHmac = require('node:crypto').createHmac;
200
- return createHmac('sha256', secretKey).update(value, 'latin1').digest('base64');
201
- } catch (err) {
202
- throw new Error('Crypto module is not available.');
203
- }
204
- }
159
+ import { hmacSHA256, sha256 } from './mgw-mdw-auth.helpers';
205
160
  /**
206
161
  * Header definition of the JWS used for the API Manager authentication
207
162
  */ var jwsHeader = {
@@ -311,10 +266,27 @@ function _sha256() {
311
266
  * @param payload JWT payload
312
267
  * @param secretKey secret key used to generate the signature
313
268
  */ function sign(payload, secretKey) {
314
- var message = "".concat(this.base64UrlEncoder(JSON.stringify(jwsHeader)), ".").concat(this.base64UrlEncoder(JSON.stringify(payload)));
315
- var signature = hmacSHA256(message, secretKey);
316
- var encodedSignature = base64EncodeUrl(signature);
317
- return "".concat(message, ".").concat(encodedSignature);
269
+ var _this = this;
270
+ return _async_to_generator(function() {
271
+ var message, signature, encodedSignature;
272
+ return _ts_generator(this, function(_state) {
273
+ switch(_state.label){
274
+ case 0:
275
+ message = "".concat(_this.base64UrlEncoder(JSON.stringify(jwsHeader)), ".").concat(_this.base64UrlEncoder(JSON.stringify(payload)));
276
+ return [
277
+ 4,
278
+ hmacSHA256(message, secretKey)
279
+ ];
280
+ case 1:
281
+ signature = _state.sent();
282
+ encodedSignature = base64EncodeUrl(signature);
283
+ return [
284
+ 2,
285
+ "".concat(message, ".").concat(encodedSignature)
286
+ ];
287
+ }
288
+ });
289
+ })();
318
290
  }
319
291
  },
320
292
  {
@@ -141,7 +141,8 @@ function _ts_generator(thisArg, body) {
141
141
  }
142
142
  }
143
143
  import { base64EncodeUrl, createBase64Decoder, createBase64UrlDecoder, createBase64UrlEncoder } from '../../utils/json-token';
144
- import { hmacSHA256, MicroGatewayMiddlewareAuthenticationRequest, sha256 } from './mgw-mdw-auth.request';
144
+ import { hmacSHA256, sha256 } from './mgw-mdw-auth.helpers';
145
+ import { MicroGatewayMiddlewareAuthenticationRequest } from './mgw-mdw-auth.request';
145
146
  var authHeaderKey = 'Authorization';
146
147
  var authHeaderPrefix = 'Bearer ';
147
148
  var baseUrl = 'https://domain.com';
@@ -171,6 +172,10 @@ var jsonAuthTokenOptions = {
171
172
  oid: 'NCE1A0955'
172
173
  }
173
174
  };
175
+ var hmacSHA256NodeImplementation = function(value, secretKey) {
176
+ var createHmac = require('node:crypto').createHmac;
177
+ return createHmac('sha256', secretKey).update(value, 'latin1').digest('base64');
178
+ };
174
179
  describe('JSON auth token request plugin', function() {
175
180
  beforeEach(function() {
176
181
  options = {
@@ -319,7 +324,14 @@ describe('JSON auth token request plugin', function() {
319
324
  secretKey = _state.sent();
320
325
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
321
326
  message = "".concat(base64UrlEncoder(JSON.stringify(header)), ".").concat(base64UrlEncoder(JSON.stringify(payload)));
322
- signCheck = base64EncodeUrl(hmacSHA256(message, secretKey));
327
+ return [
328
+ 4,
329
+ hmacSHA256(message, secretKey)
330
+ ];
331
+ case 4:
332
+ signCheck = base64EncodeUrl.apply(void 0, [
333
+ _state.sent()
334
+ ]);
323
335
  expect(signature).toEqual(signCheck);
324
336
  return [
325
337
  2
@@ -327,4 +339,50 @@ describe('JSON auth token request plugin', function() {
327
339
  }
328
340
  });
329
341
  }));
342
+ it('should have same hmacSHA256 of node implementation', /*#__PURE__*/ _async_to_generator(function() {
343
+ var base64URLDecoder, base64UrlEncoder, plugin, result, token, tokenParts, header, payload, secretKey, _, message;
344
+ return _ts_generator(this, function(_state) {
345
+ switch(_state.label){
346
+ case 0:
347
+ base64URLDecoder = createBase64UrlDecoder();
348
+ base64UrlEncoder = createBase64UrlEncoder();
349
+ plugin = new MicroGatewayMiddlewareAuthenticationRequest(jsonAuthTokenOptions);
350
+ return [
351
+ 4,
352
+ plugin.load().transform(options)
353
+ ];
354
+ case 1:
355
+ result = _state.sent();
356
+ token = result.headers.get(authHeaderKey).replace(authHeaderPrefix, '');
357
+ tokenParts = token.split('.');
358
+ header = JSON.parse(base64URLDecoder(tokenParts[0]));
359
+ payload = JSON.parse(base64URLDecoder(tokenParts[1]));
360
+ _ = jsonAuthTokenOptions.apiKey;
361
+ return [
362
+ 4,
363
+ sha256(jsonAuthTokenOptions.secret + payload.jti + payload.iat + routePath)
364
+ ];
365
+ case 2:
366
+ return [
367
+ 4,
368
+ sha256.apply(void 0, [
369
+ _ + _state.sent()
370
+ ])
371
+ ];
372
+ case 3:
373
+ secretKey = _state.sent();
374
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
375
+ message = "".concat(base64UrlEncoder(JSON.stringify(header)), ".").concat(base64UrlEncoder(JSON.stringify(payload)));
376
+ return [
377
+ 4,
378
+ expect(hmacSHA256(message, secretKey)).resolves.toBe(hmacSHA256NodeImplementation(message, secretKey))
379
+ ];
380
+ case 4:
381
+ _state.sent();
382
+ return [
383
+ 2
384
+ ];
385
+ }
386
+ });
387
+ }));
330
388
  });
@@ -249,7 +249,6 @@ function _ts_generator(thisArg, body) {
249
249
  value: /** @inheritDoc */ function load(context) {
250
250
  var data;
251
251
  var _this = this;
252
- var _this1 = this;
253
252
  return {
254
253
  // eslint-disable-next-line no-async-promise-executor
255
254
  canStart: function() {
@@ -328,7 +327,7 @@ function _ts_generator(thisArg, body) {
328
327
  return _ts_generator(this, function(_state) {
329
328
  switch(_state.label){
330
329
  case 0:
331
- if (!_this1.callback) {
330
+ if (!_this.callback) {
332
331
  return [
333
332
  2,
334
333
  fetchCall
@@ -348,7 +347,7 @@ function _ts_generator(thisArg, body) {
348
347
  ];
349
348
  case 2:
350
349
  response = _state.sent();
351
- _this1.callback(_object_spread_props(_object_spread({}, context), {
350
+ _this.callback(_object_spread_props(_object_spread({}, context), {
352
351
  data: data
353
352
  }), fetchCall, response);
354
353
  return [
@@ -357,7 +356,7 @@ function _ts_generator(thisArg, body) {
357
356
  ];
358
357
  case 3:
359
358
  e = _state.sent();
360
- _this1.callback(_object_spread_props(_object_spread({}, context), {
359
+ _this.callback(_object_spread_props(_object_spread({}, context), {
361
360
  data: data
362
361
  }), fetchCall, response);
363
362
  throw e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ama-sdk/core",
3
- "version": "11.2.0-prerelease.9",
3
+ "version": "11.3.0-prerelease.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -76,11 +76,11 @@
76
76
  "uuid": "^10.0.0"
77
77
  },
78
78
  "peerDependencies": {
79
- "@angular-devkit/schematics": "~18.1.0",
80
- "@angular/cli": "~18.1.0",
81
- "@angular/common": "~18.1.0",
82
- "@o3r/schematics": "^11.2.0-prerelease.9",
83
- "@schematics/angular": "~18.1.0",
79
+ "@angular-devkit/schematics": "~18.2.0",
80
+ "@angular/cli": "~18.2.0",
81
+ "@angular/common": "~18.2.0",
82
+ "@o3r/schematics": "^11.3.0-prerelease.0",
83
+ "@schematics/angular": "~18.2.0",
84
84
  "isomorphic-fetch": "^3.0.0",
85
85
  "rxjs": "^7.8.1",
86
86
  "typescript": "~5.5.4"
@@ -112,17 +112,17 @@
112
112
  }
113
113
  },
114
114
  "devDependencies": {
115
- "@angular-devkit/core": "~18.1.0",
116
- "@angular-devkit/schematics": "~18.1.0",
117
- "@angular-eslint/eslint-plugin": "~18.1.0",
118
- "@angular/common": "~18.1.0",
119
- "@angular/core": "~18.1.0",
115
+ "@angular-devkit/core": "~18.2.0",
116
+ "@angular-devkit/schematics": "~18.2.0",
117
+ "@angular-eslint/eslint-plugin": "~18.3.0",
118
+ "@angular/common": "~18.2.0",
119
+ "@angular/core": "~18.2.0",
120
120
  "@nx/eslint-plugin": "~19.5.0",
121
121
  "@nx/jest": "~19.5.0",
122
- "@o3r/build-helpers": "^11.2.0-prerelease.9",
123
- "@o3r/eslint-plugin": "^11.2.0-prerelease.9",
124
- "@o3r/test-helpers": "^11.2.0-prerelease.9",
125
- "@schematics/angular": "~18.1.0",
122
+ "@o3r/build-helpers": "^11.3.0-prerelease.0",
123
+ "@o3r/eslint-plugin": "^11.3.0-prerelease.0",
124
+ "@o3r/test-helpers": "^11.3.0-prerelease.0",
125
+ "@schematics/angular": "~18.2.0",
126
126
  "@stylistic/eslint-plugin-ts": "~2.4.0",
127
127
  "@swc/cli": "~0.4.0",
128
128
  "@swc/core": "~1.7.0",
@@ -136,7 +136,7 @@
136
136
  "cpy-cli": "^5.0.0",
137
137
  "eslint": "^8.57.0",
138
138
  "eslint-import-resolver-node": "^0.3.9",
139
- "eslint-plugin-jest": "~28.7.0",
139
+ "eslint-plugin-jest": "~28.8.0",
140
140
  "eslint-plugin-jsdoc": "~48.11.0",
141
141
  "eslint-plugin-prefer-arrow": "~1.2.3",
142
142
  "eslint-plugin-unicorn": "^54.0.0",
@@ -6,6 +6,20 @@ export interface ReviverOptions {
6
6
  * @default console
7
7
  */
8
8
  logger?: Logger;
9
+ /**
10
+ * Determine if the fields from dictionary should be removed from the given object.
11
+ * This options affects dictionary fields only if no dictionary is provided to the reviver function
12
+ * @default false
13
+ * @example Clear Dictionary fields from Data object
14
+ * ```typescript
15
+ * // Revived Data:
16
+ * const revivedData = reviveMyModel<MyModel>(data, myDictionary);
17
+ *
18
+ * // Remove dictionary from revived data :
19
+ * reviveMyModel(revivedData, undefined, { clearDictionaryFields: true });
20
+ * ```
21
+ */
22
+ clearDictionaryFields?: boolean;
9
23
  }
10
24
  /** Reviver type */
11
25
  export type ReviverType<T, V extends {
@@ -1 +1 @@
1
- {"version":3,"file":"Reviver.d.ts","sourceRoot":"","sources":["../../../src/fwk/Reviver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mBAAmB;AACnB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,IAC7I,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,CAAC,GAAG,SAAS,CAAC;AAEvE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,YAAY,EAAE,GAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;;cAYrI;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,GAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,mBAMtH;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;;cAM7H"}
1
+ {"version":3,"file":"Reviver.d.ts","sourceRoot":"","sources":["../../../src/fwk/Reviver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,mBAAmB;AACnB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,IAC7I,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,CAAC,GAAG,SAAS,CAAC;AAEvE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,YAAY,EAAE,GAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;;cAYrI;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,GAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,mBAMtH;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;;cAM7H"}
@@ -1 +1 @@
1
- {"version":3,"file":"Reviver.js","sourceRoot":"","sources":["../../../src/fwk/Reviver.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAI,IAA4B,EAAE,eAAoB,IAAI,EAAE,OAAuB,EAAE,OAAwB;IACpI,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAEhC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,iDAAiD;QACjD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAI,IAAW,EAAE,eAAoB,IAAI,EAAE,OAAuB,EAAE,OAAwB;IACrH,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAI,GAAa,EAAE,UAAe,EAAE,OAAwB,EAAE,OAAwB;IAC5H,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAiC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5D,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"Reviver.js","sourceRoot":"","sources":["../../../src/fwk/Reviver.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAI,IAA4B,EAAE,eAAoB,IAAI,EAAE,OAAuB,EAAE,OAAwB;IACpI,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAEhC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,iDAAiD;QACjD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAI,IAAW,EAAE,eAAoB,IAAI,EAAE,OAAuB,EAAE,OAAwB;IACrH,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAI,GAAa,EAAE,UAAe,EAAE,OAAwB,EAAE,OAAwB;IAC5H,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAiC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5D,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
@@ -12,6 +12,7 @@ export * from './fetch-cache/index';
12
12
  export * from './fetch-credentials/index';
13
13
  export * from './json-token/index';
14
14
  export * from './keepalive/index';
15
+ export * from './mgw-mdw-auth/index';
15
16
  export * from './mock-intercept/index';
16
17
  export * from './perf-metric/index';
17
18
  export * from './pii-tokenizer/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -12,6 +12,7 @@ export * from './fetch-cache/index';
12
12
  export * from './fetch-credentials/index';
13
13
  export * from './json-token/index';
14
14
  export * from './keepalive/index';
15
+ export * from './mgw-mdw-auth/index';
15
16
  export * from './mock-intercept/index';
16
17
  export * from './perf-metric/index';
17
18
  export * from './pii-tokenizer/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Computes the SHA256 digest of the given string
3
+ * @param value Value to hash
4
+ */
5
+ export declare function sha256(value: string): Promise<string>;
6
+ /**
7
+ * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
8
+ * secret key
9
+ * Should only be in a NodeJS MDW context
10
+ * @param value Value to hash
11
+ * @param secretKey Secret cryptographic key
12
+ */
13
+ export declare function hmacSHA256(value: string, secretKey: string): Promise<string>;
14
+ //# sourceMappingURL=mgw-mdw-auth.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mgw-mdw-auth.helpers.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,mBAQzC;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAQhE"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Computes the SHA256 digest of the given string
3
+ * @param value Value to hash
4
+ */
5
+ export async function sha256(value) {
6
+ const utf8 = new TextEncoder().encode(value);
7
+ const hashBuffer = await crypto.subtle.digest('SHA-256', utf8);
8
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
9
+ const hashHex = hashArray
10
+ .map((bytes) => bytes.toString(16).padStart(2, '0'))
11
+ .join('');
12
+ return hashHex;
13
+ }
14
+ /**
15
+ * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
16
+ * secret key
17
+ * Should only be in a NodeJS MDW context
18
+ * @param value Value to hash
19
+ * @param secretKey Secret cryptographic key
20
+ */
21
+ export async function hmacSHA256(value, secretKey) {
22
+ const enc = new TextEncoder();
23
+ const algorithm = { name: 'HMAC', hash: 'SHA-256' };
24
+ const key = await crypto.subtle.importKey('raw', enc.encode(secretKey), algorithm, false, ['sign', 'verify']);
25
+ const signature = await crypto.subtle.sign(algorithm.name, key, enc.encode(value));
26
+ const digest = btoa(String.fromCharCode(...new Uint8Array(signature)));
27
+ return digest;
28
+ }
29
+ //# sourceMappingURL=mgw-mdw-auth.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mgw-mdw-auth.helpers.js","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa;IACxC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,SAAS;SACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,SAAiB;IAC/D,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,17 +1,4 @@
1
1
  import { PluginRunner, RequestOptions, RequestPlugin } from '../core';
2
- /**
3
- * Computes the SHA256 digest of the given string
4
- * @param value Value to hash
5
- */
6
- export declare function sha256(value: string): Promise<string>;
7
- /**
8
- * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
9
- * secret key
10
- * Should only be in a NodeJS MDW context
11
- * @param value Value to hash
12
- * @param secretKey Secret cryptographic key
13
- */
14
- export declare function hmacSHA256(value: string, secretKey: string): string;
15
2
  /**
16
3
  * Type that represents context data.
17
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mgw-mdw-auth.request.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAItE;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,mBAQzC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAS1D;AAED;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAU/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;;;OAUG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sDAAsD;IACrE;;;;;;;;;;OAUG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,2CAA4C,YAAW,aAAa;IAE/E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE/B;;;OAGG;gBACS,OAAO,EAAE,sDAAsD;IAa3E;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;YACW,8CAA8C;IAM5D;;;;OAIG;IACH,OAAO,CAAC,IAAI;IAOZ;;;OAGG;YACW,WAAW;IAOlB,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC;CAW5D"}
1
+ {"version":3,"file":"mgw-mdw-auth.request.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGtE;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAU/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;;;OAUG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sDAAsD;IACrE;;;;;;;;;;OAUG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,2CAA4C,YAAW,aAAa;IAE/E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE/B;;;OAGG;gBACS,OAAO,EAAE,sDAAsD;IAa3E;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;YACW,8CAA8C;IAM5D;;;;OAIG;YACW,IAAI;IAOlB;;;OAGG;YACW,WAAW;IAOlB,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC;CAW5D"}
@@ -1,36 +1,6 @@
1
1
  import { v4 } from 'uuid';
2
2
  import { base64EncodeUrl, createBase64Encoder, createBase64UrlEncoder } from '../../utils/json-token';
3
- /**
4
- * Computes the SHA256 digest of the given string
5
- * @param value Value to hash
6
- */
7
- export async function sha256(value) {
8
- const utf8 = new TextEncoder().encode(value);
9
- const hashBuffer = await (globalThis.crypto || require('node:crypto').webcrypto).subtle.digest('SHA-256', utf8);
10
- const hashArray = Array.from(new Uint8Array(hashBuffer));
11
- const hashHex = hashArray
12
- .map((bytes) => bytes.toString(16).padStart(2, '0'))
13
- .join('');
14
- return hashHex;
15
- }
16
- /**
17
- * Generates hash-based message authentication code using cryptographic hash function HmacSHA256 and the provided
18
- * secret key
19
- * Should only be in a NodeJS MDW context
20
- * @param value Value to hash
21
- * @param secretKey Secret cryptographic key
22
- */
23
- export function hmacSHA256(value, secretKey) {
24
- try {
25
- const { createHmac } = require('node:crypto');
26
- return createHmac('sha256', secretKey)
27
- .update(value, 'latin1')
28
- .digest('base64');
29
- }
30
- catch (err) {
31
- throw new Error('Crypto module is not available.');
32
- }
33
- }
3
+ import { hmacSHA256, sha256 } from './mgw-mdw-auth.helpers';
34
4
  /**
35
5
  * Header definition of the JWS used for the API Manager authentication
36
6
  */
@@ -90,9 +60,9 @@ export class MicroGatewayMiddlewareAuthenticationRequest {
90
60
  * @param payload JWT payload
91
61
  * @param secretKey secret key used to generate the signature
92
62
  */
93
- sign(payload, secretKey) {
63
+ async sign(payload, secretKey) {
94
64
  const message = `${this.base64UrlEncoder(JSON.stringify(jwsHeader))}.${this.base64UrlEncoder(JSON.stringify(payload))}`;
95
- const signature = hmacSHA256(message, secretKey);
65
+ const signature = await hmacSHA256(message, secretKey);
96
66
  const encodedSignature = base64EncodeUrl(signature);
97
67
  return `${message}.${encodedSignature}`;
98
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mgw-mdw-auth.request.js","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAKtG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa;IACxC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAK,OAAO,CAAC,aAAa,CAAC,CAAC,SAA8B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtI,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,SAAS;SACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,SAAiB;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAA0C,OAAO,CAAC,aAAa,CAAC,CAAC;QACrF,OAAO,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;aACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;aACvB,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAOD;;GAEG;AACH,MAAM,SAAS,GAAG;IAChB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,KAAK;CACX,CAAC;AAgFF;;;GAGG;AACH,MAAM,OAAO,2CAA2C;IA6CtD;;;OAGG;IACH,YAAY,OAA+D;QACzE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,aAAa;YACvB,GAAG,EAAE,GAAG,OAAO,EAAE;YACjB,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG,YAAY,EAAE;YACtB,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,8CAA8C,CAAC,OAAyB,EAAE,QAAgB;QACtG,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACK,IAAI,CAAC,OAAyB,EAAE,SAAiB;QACvD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACxH,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,WAAW,CAAC,IAAY;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,4CAA4C;QAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,8CAA8C,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAEM,IAAI;QACT,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;gBACxC,8BAA8B;gBAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"mgw-mdw-auth.request.js","sourceRoot":"","sources":["../../../../src/plugins/mgw-mdw-auth/mgw-mdw-auth.request.ts"],"names":[],"mappings":"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"}