lemon-core 4.0.7 → 4.1.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.
@@ -31,6 +31,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
32
  });
33
33
  };
34
+ var __rest = (this && this.__rest) || function (s, e) {
35
+ var t = {};
36
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
+ t[p] = s[p];
38
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
+ t[p[i]] = s[p[i]];
42
+ }
43
+ return t;
44
+ };
34
45
  Object.defineProperty(exports, "__esModule", { value: true });
35
46
  exports.DummyDynamoService = exports.DynamoService = void 0;
36
47
  /**
@@ -98,16 +109,26 @@ class DynamoService {
98
109
  * @param region (default as `ap-northeast-2`)
99
110
  */
100
111
  static instance(region) {
112
+ var _a, _b;
101
113
  region = `${region || 'ap-northeast-2'}`;
102
- const cfg = (0, tools_1.awsConfig)(engine_1.default, region);
103
- const dynamo = new client_dynamodb_2.DynamoDBClient(cfg); // Low-level DynamoDB client
104
- const $client = () => __awaiter(this, void 0, void 0, function* () {
105
- const credentials = yield cfg.credentials;
106
- const dynamo = new client_dynamodb_2.DynamoDBClient(Object.assign(Object.assign({}, cfg), { credentials })); // Low-level DynamoDB client
107
- return lib_dynamodb_1.DynamoDBDocumentClient.from(dynamo); // High-level Document client
108
- });
109
- const dynamostr = new client_dynamodb_streams_1.DynamoDBStreamsClient(cfg); // DynamoDB Streams client
110
- return { dynamo, dynamostr, dynamodoc: $client };
114
+ const $cfg = (0, tools_1.awsConfig)(engine_1.default, region);
115
+ const dynamo = (_a = DynamoService._dynamo[region]) !== null && _a !== void 0 ? _a : new client_dynamodb_2.DynamoDBClient($cfg); // Low-level DynamoDB client
116
+ const dynamostr = (_b = DynamoService._dynamostr[region]) !== null && _b !== void 0 ? _b : new client_dynamodb_streams_1.DynamoDBStreamsClient($cfg); // DynamoDB Streams client
117
+ // Create memoized function for dynamodoc
118
+ if (!DynamoService._dynamodoc[region]) {
119
+ const cache = { client: null };
120
+ DynamoService._dynamodoc[region] = () => __awaiter(this, void 0, void 0, function* () {
121
+ if (!cache.client) {
122
+ (0, engine_1._log)(NS, `! creating NEW DynamoDBDocumentClient for region[${region}]`);
123
+ const credentials = $cfg.credentials;
124
+ const dynamo = new client_dynamodb_2.DynamoDBClient(Object.assign(Object.assign({}, $cfg), { credentials }));
125
+ cache.client = lib_dynamodb_1.DynamoDBDocumentClient.from(dynamo);
126
+ }
127
+ return cache.client;
128
+ });
129
+ }
130
+ const dynamodoc = DynamoService._dynamodoc[region]; // High-level Document client
131
+ return { dynamo, dynamostr, dynamodoc };
111
132
  }
112
133
  /**
113
134
  * prepare `CreateTable` payload.
@@ -374,6 +395,111 @@ class DynamoService {
374
395
  });
375
396
  });
376
397
  }
398
+ /**
399
+ * multiple read-item
400
+ * - chunks requests into groups of 100 (DynamoDB BatchGetItem limit)
401
+ *
402
+ * @param list array of items with { id, sort? }
403
+ * @returns BatchResult with success/failed items
404
+ */
405
+ mreadItem(list) {
406
+ var _a, _b;
407
+ return __awaiter(this, void 0, void 0, function* () {
408
+ const { tableName, idName, sortName } = this.options;
409
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
410
+ const result = { success: [], failed: [], total };
411
+ if (!list || total === 0)
412
+ return result;
413
+ const dynamodoc = yield DynamoService.instance().dynamodoc();
414
+ const _convertKeyToSig = (key) => {
415
+ const id = key[idName];
416
+ const sort = sortName ? key[sortName] : undefined;
417
+ return `${id}${sortName ? '/' + sort : ''}`;
418
+ };
419
+ const _convertItemToSig = (item) => {
420
+ const id = item[idName];
421
+ const sort = sortName ? item[sortName] : undefined;
422
+ return `${id}${sortName ? '/' + sort : ''}`;
423
+ };
424
+ //* Maps to preserve original order
425
+ const successMap = new Map();
426
+ const failedMap = new Map();
427
+ //* process in chunks of 100 (DynamoDB BatchGetItem limit)
428
+ const CHUNK_SIZE = 100;
429
+ for (let i = 0; i < total; i += CHUNK_SIZE) {
430
+ const chunk = (_b = list === null || list === void 0 ? void 0 : list.slice(i, i + CHUNK_SIZE)) !== null && _b !== void 0 ? _b : [];
431
+ const chunkKeyMap = new Map();
432
+ const chunkKeys = chunk.map(item => {
433
+ const key = this.prepareItemKey(item.id, item.sort).Key;
434
+ const sig = _convertKeyToSig(key);
435
+ if (!chunkKeyMap.has(sig))
436
+ chunkKeyMap.set(sig, key);
437
+ return key;
438
+ });
439
+ const MAX_RETRIES = 3;
440
+ const _doBatchGet = (keys, attempt, acc) => __awaiter(this, void 0, void 0, function* () {
441
+ var _c, _d, _e, _f, _g;
442
+ const response = yield dynamodoc
443
+ .send(new lib_dynamodb_1.BatchGetCommand({ RequestItems: { [tableName]: { Keys: keys } } }))
444
+ .catch((e) => {
445
+ if (`${e.message}`.includes('ResourceNotFoundException'))
446
+ throw new Error(`404 NOT FOUND - table:${tableName}`);
447
+ throw e;
448
+ });
449
+ const items = ((_d = (_c = response.Responses) === null || _c === void 0 ? void 0 : _c[tableName]) !== null && _d !== void 0 ? _d : []);
450
+ if (items.length > 0)
451
+ acc.push(...items);
452
+ const unprocessed = ((_g = (_f = (_e = response.UnprocessedKeys) === null || _e === void 0 ? void 0 : _e[tableName]) === null || _f === void 0 ? void 0 : _f.Keys) !== null && _g !== void 0 ? _g : []);
453
+ if (unprocessed.length > 0) {
454
+ if (attempt >= MAX_RETRIES)
455
+ return { items: acc, unprocessed };
456
+ //* exponential backoff
457
+ yield new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 100));
458
+ return _doBatchGet(unprocessed, attempt + 1, acc);
459
+ }
460
+ return { items: acc, unprocessed: [] };
461
+ });
462
+ try {
463
+ const { items } = yield _doBatchGet(chunkKeys, 1, []);
464
+ items.forEach(item => {
465
+ const sig = _convertItemToSig(item);
466
+ successMap.set(sig, item);
467
+ });
468
+ const received = new Set(items.map(item => _convertItemToSig(item)));
469
+ const missing = Array.from(chunkKeyMap.entries())
470
+ .filter(([sig]) => !received.has(sig))
471
+ .map(([sig, key]) => {
472
+ failedMap.set(sig, key);
473
+ return key;
474
+ });
475
+ }
476
+ catch (e) {
477
+ Array.from(chunkKeyMap.entries()).forEach(([sig, key]) => {
478
+ failedMap.set(sig, key);
479
+ });
480
+ }
481
+ }
482
+ //* Preserve original order
483
+ list.forEach(item => {
484
+ const key = this.prepareItemKey(item.id, item.sort).Key;
485
+ const sig = _convertKeyToSig(key);
486
+ const successItem = successMap.get(sig);
487
+ const failedItem = failedMap.get(sig);
488
+ if (successItem) {
489
+ result.success.push(successItem);
490
+ }
491
+ else if (failedItem) {
492
+ result.failed.push(failedItem);
493
+ }
494
+ });
495
+ (0, engine_1._log)(NS, `> mreadItem.res =`, {
496
+ success: result.success.length,
497
+ failed: result.failed.length,
498
+ total: result.total,
499
+ });
500
+ return result;
501
+ });
502
+ }
377
503
  /**
378
504
  * save-item
379
505
  * - save whole data with param (use update if partial save)
@@ -403,6 +529,87 @@ class DynamoService {
403
529
  });
404
530
  });
405
531
  }
532
+ /**
533
+ * multiple save-item
534
+ * - chunks requests into groups of 25 (DynamoDB BatchWriteItem limit)
535
+ * - NOTE: This overwrites entire items (no partial update or increment support)
536
+ *
537
+ * @param list array of items with { id, sort?, ...model }
538
+ * @returns BatchResult with success/failed items
539
+ */
540
+ msaveItem(list) {
541
+ var _a, _b;
542
+ return __awaiter(this, void 0, void 0, function* () {
543
+ const { tableName } = this.options;
544
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
545
+ const result = { success: [], failed: [], total };
546
+ if (!list || total === 0)
547
+ return result;
548
+ // _log(NS, `msaveItem(${tableName})[${list.length}]...`);
549
+ const dynamodoc = yield DynamoService.instance().dynamodoc();
550
+ //* process in chunks of 25 (DynamoDB BatchWriteItem limit)
551
+ const CHUNK_SIZE = 25;
552
+ for (let i = 0; i < total; i += CHUNK_SIZE) {
553
+ const chunk = (_b = list === null || list === void 0 ? void 0 : list.slice(i, i + CHUNK_SIZE)) !== null && _b !== void 0 ? _b : [];
554
+ const chunkItems = [];
555
+ //* prepare batch write requests
556
+ const putRequests = chunk.map(item => {
557
+ const { id } = item, rest = __rest(item, ["id"]);
558
+ const payload = this.prepareSaveItem(id, rest);
559
+ chunkItems.push(payload.Item);
560
+ return {
561
+ PutRequest: {
562
+ Item: payload.Item,
563
+ },
564
+ };
565
+ });
566
+ //* execute batch write with retry for unprocessed items
567
+ const MAX_RETRIES = 3;
568
+ const _doBatchWrite = (requests, attempt) => __awaiter(this, void 0, void 0, function* () {
569
+ var _c;
570
+ const response = yield dynamodoc
571
+ .send(new lib_dynamodb_1.BatchWriteCommand({ RequestItems: { [tableName]: requests } }))
572
+ .catch((e) => {
573
+ if (`${e.message}`.includes('ResourceNotFoundException'))
574
+ throw new Error(`404 NOT FOUND - table:${tableName}`);
575
+ throw e;
576
+ });
577
+ //* check for unprocessed items
578
+ const unprocessed = (_c = response.UnprocessedItems) === null || _c === void 0 ? void 0 : _c[tableName];
579
+ if (unprocessed && (unprocessed === null || unprocessed === void 0 ? void 0 : unprocessed.length) > 0) {
580
+ if (attempt >= MAX_RETRIES) {
581
+ return unprocessed;
582
+ }
583
+ //* exponential backoff
584
+ yield new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 100));
585
+ return _doBatchWrite(unprocessed, attempt + 1);
586
+ }
587
+ return [];
588
+ });
589
+ try {
590
+ const unprocessed = yield _doBatchWrite(putRequests, 1);
591
+ if ((unprocessed === null || unprocessed === void 0 ? void 0 : unprocessed.length) > 0) {
592
+ //* partial failure: some items unprocessed after retries
593
+ result.failed.push(...chunkItems);
594
+ }
595
+ else {
596
+ //* all items in chunk succeeded
597
+ result.success.push(...chunkItems);
598
+ }
599
+ }
600
+ catch (e) {
601
+ //* chunk failed completely
602
+ result.failed.push(...chunkItems);
603
+ }
604
+ }
605
+ (0, engine_1._log)(NS, `> msaveItem.res =`, {
606
+ success: result.success.length,
607
+ failed: result.failed.length,
608
+ total: result.total,
609
+ });
610
+ return result;
611
+ });
612
+ }
406
613
  /**
407
614
  * delete-item
408
615
  * - destroy whole data of item.
@@ -458,8 +665,114 @@ class DynamoService {
458
665
  });
459
666
  });
460
667
  }
668
+ /**
669
+ * multiple update-item
670
+ * - chunks requests into groups of 25 (DynamoDB BatchWriteItem limit)
671
+ * - NOTE: This overwrites entire items (no partial update or increment support)
672
+ *
673
+ * @param list array of items with { id, sort?, ...model }
674
+ * @returns BatchResult with success/failed items
675
+ */
676
+ mupdateItem(list) {
677
+ var _a, _b;
678
+ return __awaiter(this, void 0, void 0, function* () {
679
+ const { tableName, idName } = this.options;
680
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
681
+ const result = { success: [], failed: [], total };
682
+ if (!list || total === 0)
683
+ return result;
684
+ // _log(NS, `mupdateItem(${tableName})[${list.length}]...`);
685
+ const dynamodoc = yield DynamoService.instance().dynamodoc();
686
+ //* Maps to preserve original order
687
+ const successMap = new Map();
688
+ const failedMap = new Map();
689
+ //* process in chunks of 25 (DynamoDB BatchWriteItem limit)
690
+ const CHUNK_SIZE = 25;
691
+ for (let i = 0; i < total; i += CHUNK_SIZE) {
692
+ const chunk = (_b = list === null || list === void 0 ? void 0 : list.slice(i, i + CHUNK_SIZE)) !== null && _b !== void 0 ? _b : [];
693
+ const chunkItemMap = new Map();
694
+ //* prepare batch write requests
695
+ const putRequests = chunk.map(item => {
696
+ const { id } = item, rest = __rest(item, ["id"]);
697
+ const payload = this.prepareSaveItem(id, rest);
698
+ chunkItemMap.set(id, payload.Item);
699
+ return {
700
+ PutRequest: {
701
+ Item: payload.Item,
702
+ },
703
+ };
704
+ });
705
+ //* execute batch write with retry for unprocessed items
706
+ const MAX_RETRIES = 3;
707
+ const _doBatchWrite = (requests, attempt) => __awaiter(this, void 0, void 0, function* () {
708
+ var _c;
709
+ const response = yield dynamodoc
710
+ .send(new lib_dynamodb_1.BatchWriteCommand({ RequestItems: { [tableName]: requests } }))
711
+ .catch((e) => {
712
+ if (`${e.message}`.includes('ResourceNotFoundException'))
713
+ throw new Error(`404 NOT FOUND - table:${tableName}`);
714
+ throw e;
715
+ });
716
+ //* check for unprocessed items
717
+ const unprocessed = (_c = response.UnprocessedItems) === null || _c === void 0 ? void 0 : _c[tableName];
718
+ if (unprocessed && (unprocessed === null || unprocessed === void 0 ? void 0 : unprocessed.length) > 0) {
719
+ if (attempt >= MAX_RETRIES) {
720
+ return unprocessed;
721
+ }
722
+ //* exponential backoff
723
+ yield new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 100));
724
+ return _doBatchWrite(unprocessed, attempt + 1);
725
+ }
726
+ return [];
727
+ });
728
+ try {
729
+ const unprocessed = yield _doBatchWrite(putRequests, 1);
730
+ if ((unprocessed === null || unprocessed === void 0 ? void 0 : unprocessed.length) > 0) {
731
+ //* partial failure: some items unprocessed after retries
732
+ chunkItemMap.forEach((item, id) => {
733
+ failedMap.set(id, item);
734
+ });
735
+ }
736
+ else {
737
+ //* all items in chunk succeeded
738
+ chunkItemMap.forEach((item, id) => {
739
+ successMap.set(id, item);
740
+ });
741
+ }
742
+ }
743
+ catch (e) {
744
+ //* chunk failed completely
745
+ chunkItemMap.forEach((item, id) => {
746
+ failedMap.set(id, item);
747
+ });
748
+ }
749
+ }
750
+ //* Preserve original order
751
+ list.forEach(item => {
752
+ const id = item.id;
753
+ const successItem = successMap.get(id);
754
+ const failedItem = failedMap.get(id);
755
+ if (successItem) {
756
+ result.success.push(successItem);
757
+ }
758
+ else if (failedItem) {
759
+ result.failed.push(failedItem);
760
+ }
761
+ });
762
+ (0, engine_1._log)(NS, `> mupdateItem.res =`, {
763
+ success: result.success.length,
764
+ failed: result.failed.length,
765
+ total: result.total,
766
+ });
767
+ return result;
768
+ });
769
+ }
461
770
  }
462
771
  exports.DynamoService = DynamoService;
772
+ DynamoService._dynamo = {};
773
+ DynamoService._dynamostr = {};
774
+ //TODO [Steve] why to use promise here to make DynamoDBDocumentClient? @251212
775
+ DynamoService._dynamodoc = {};
463
776
  /**
464
777
  * export to test..
465
778
  */
@@ -520,6 +833,33 @@ class DummyDynamoService extends DynamoService {
520
833
  return Object.assign({ [idName]: id }, item);
521
834
  });
522
835
  }
836
+ mreadItem(list) {
837
+ var _a;
838
+ return __awaiter(this, void 0, void 0, function* () {
839
+ const { idName, sortName } = this.options;
840
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
841
+ const result = { success: [], failed: [], total };
842
+ if (!list || total === 0)
843
+ return result;
844
+ for (const item of list) {
845
+ const data = this.buffer[item.id];
846
+ if (data === undefined) {
847
+ const key = sortName
848
+ ? { [idName]: item.id, [sortName]: item.sort }
849
+ : { [idName]: item.id };
850
+ result.failed.push(key);
851
+ continue;
852
+ }
853
+ result.success.push(Object.assign({ [idName]: item.id }, data));
854
+ }
855
+ (0, engine_1._log)(NS, `> mreadItem.res =`, {
856
+ success: result.success.length,
857
+ failed: result.failed.length,
858
+ total: result.total,
859
+ });
860
+ return result;
861
+ });
862
+ }
523
863
  saveItem(id, item) {
524
864
  return __awaiter(this, void 0, void 0, function* () {
525
865
  const { idName } = this.options;
@@ -527,6 +867,29 @@ class DummyDynamoService extends DynamoService {
527
867
  return Object.assign({ [idName]: id }, this.buffer[id]);
528
868
  });
529
869
  }
870
+ msaveItem(list) {
871
+ var _a;
872
+ return __awaiter(this, void 0, void 0, function* () {
873
+ const { idName } = this.options;
874
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
875
+ const result = { success: [], failed: [], total };
876
+ if (!list || total === 0)
877
+ return result;
878
+ // _log(NS, `msaveItem(dummy)[${list.length}]...`);
879
+ //* process all saves using the in-memory buffer (overwrites entire items)
880
+ for (const item of list) {
881
+ const { id } = item, rest = __rest(item, ["id"]);
882
+ this.buffer[id] = normalize(rest);
883
+ result.success.push(Object.assign({ [idName]: id }, this.buffer[id]));
884
+ }
885
+ (0, engine_1._log)(NS, `> msaveItem.res =`, {
886
+ success: result.success.length,
887
+ failed: result.failed.length,
888
+ total: result.total,
889
+ });
890
+ return result;
891
+ });
892
+ }
530
893
  deleteItem(id, sort) {
531
894
  return __awaiter(this, void 0, void 0, function* () {
532
895
  delete this.buffer[id];
@@ -543,6 +906,30 @@ class DummyDynamoService extends DynamoService {
543
906
  return Object.assign({ [idName]: id }, this.buffer[id]);
544
907
  });
545
908
  }
909
+ mupdateItem(list) {
910
+ var _a;
911
+ return __awaiter(this, void 0, void 0, function* () {
912
+ const { idName } = this.options;
913
+ const total = (_a = list === null || list === void 0 ? void 0 : list.length) !== null && _a !== void 0 ? _a : 0;
914
+ const result = { success: [], failed: [], total };
915
+ if (!list || total === 0)
916
+ return result;
917
+ // _log(NS, `mupdateItem(dummy)[${list.length}]...`);
918
+ //* process all updates using the in-memory buffer (overwrites entire items)
919
+ for (const item of list) {
920
+ const { id } = item, rest = __rest(item, ["id"]);
921
+ //* overwrite entire item (same as PutItem behavior)
922
+ this.buffer[id] = normalize(rest);
923
+ result.success.push(Object.assign({ [idName]: id }, this.buffer[id]));
924
+ }
925
+ (0, engine_1._log)(NS, `> mupdateItem.res =`, {
926
+ success: result.success.length,
927
+ failed: result.failed.length,
928
+ total: result.total,
929
+ });
930
+ return result;
931
+ });
932
+ }
546
933
  }
547
934
  exports.DummyDynamoService = DummyDynamoService;
548
935
  //# sourceMappingURL=dynamo-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamo-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamo-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-service.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,10 @@ const HEADER_LEMON_IDENTITY = engine_1.$U.env('HEADER_LEMON_IDENTITY', 'x-lemon-
45
45
  const HEADER_COOKIE = engine_1.$U.env('HEADER_COOKIE', 'cookie');
46
46
  const DEFAULT_FAVICON_ICO = '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';
47
47
  const FAVICON_ICO = engine_1.$U.env('FAVICON_ICO', DEFAULT_FAVICON_ICO);
48
+ /**
49
+ * shared KMS service pool
50
+ */
51
+ const $kmsPool = {};
48
52
  /**
49
53
  * build http response body
50
54
  * - if body is string type, then content-type would be text/<some>.
@@ -61,14 +65,17 @@ const buildResponse = (statusCode, body, options) => {
61
65
  const origin = (options === null || options === void 0 ? void 0 : options.origin) === undefined ? '*' : options === null || options === void 0 ? void 0 : options.origin;
62
66
  const credentials = (options === null || options === void 0 ? void 0 : options.credentials) === undefined ? true : options === null || options === void 0 ? void 0 : options.credentials;
63
67
  const isBase64Encoded = contentType && !contentType.startsWith('text/') ? true : false;
68
+ const _isXml = (body) => body.startsWith('<?xml ') && body.trim().endsWith('>');
64
69
  const _isHtml = (body) => body.startsWith('<!DOCTYPE html>') || (body.startsWith('<') && body.endsWith('>'));
65
70
  const _type = () => {
66
71
  if (contentType)
67
72
  return contentType;
68
73
  return typeof body === 'string'
69
- ? _isHtml(body)
70
- ? 'text/html; charset=utf-8'
71
- : 'text/plain; charset=utf-8'
74
+ ? _isXml(body)
75
+ ? 'application/xml; charset=utf-8'
76
+ : _isHtml(body)
77
+ ? 'text/html; charset=utf-8'
78
+ : 'text/plain; charset=utf-8'
72
79
  : 'application/json; charset=utf-8';
73
80
  };
74
81
  const headers = ['origin', HEADER_LEMON_LANGUAGE, HEADER_LEMON_IDENTITY].filter(s => !!s).join(', ');
@@ -284,6 +291,7 @@ class LambdaWEBHandler extends lambda_handler_1.LambdaSubHandler {
284
291
  return __awaiter(this, void 0, void 0, function* () {
285
292
  if (!param)
286
293
  throw new Error(`@param (protocol-param) is required!`);
294
+ //TODO [Steve] id, cmd can (or should) be null or empty! (support for `/{cmd+}` pattern) @251212
287
295
  const TYPE = `${param.type || ''}`;
288
296
  const MODE = `${param.mode || 'GET'}`;
289
297
  const ID = `${param.id || ''}`;
@@ -518,10 +526,11 @@ class MyHttpHeaderTool {
518
526
  * @returns service
519
527
  */
520
528
  findKMSService(keyId) {
521
- // const aws = $engine.module('aws') as AWSModule;
522
- // return aws?.kms;
523
- const kms = new aws_kms_service_1.AWSKMSService(keyId);
524
- return kms;
529
+ const _key = keyId || '#default';
530
+ // use the shared pool.
531
+ if (!$kmsPool[_key])
532
+ $kmsPool[_key] = new aws_kms_service_1.AWSKMSService(keyId);
533
+ return $kmsPool[_key];
525
534
  }
526
535
  /**
527
536
  * encode as JWT string.