lemon-core 4.0.8 → 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,25 @@ class DynamoService {
98
109
  * @param region (default as `ap-northeast-2`)
99
110
  */
100
111
  static instance(region) {
101
- var _a, _b, _c;
112
+ var _a, _b;
102
113
  region = `${region || 'ap-northeast-2'}`;
103
114
  const $cfg = (0, tools_1.awsConfig)(engine_1.default, region);
104
115
  const dynamo = (_a = DynamoService._dynamo[region]) !== null && _a !== void 0 ? _a : new client_dynamodb_2.DynamoDBClient($cfg); // Low-level DynamoDB client
105
116
  const dynamostr = (_b = DynamoService._dynamostr[region]) !== null && _b !== void 0 ? _b : new client_dynamodb_streams_1.DynamoDBStreamsClient($cfg); // DynamoDB Streams client
106
- const dynamodoc = (_c = DynamoService._dynamodoc[region]) !== null && _c !== void 0 ? _c : (() => __awaiter(this, void 0, void 0, function* () {
107
- const credentials = $cfg.credentials;
108
- const dynamo = new client_dynamodb_2.DynamoDBClient(Object.assign(Object.assign({}, $cfg), { credentials })); // Low-level DynamoDB client
109
- return lib_dynamodb_1.DynamoDBDocumentClient.from(dynamo); // High-level Document client
110
- }));
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
111
131
  return { dynamo, dynamostr, dynamodoc };
112
132
  }
113
133
  /**
@@ -375,6 +395,111 @@ class DynamoService {
375
395
  });
376
396
  });
377
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
+ }
378
503
  /**
379
504
  * save-item
380
505
  * - save whole data with param (use update if partial save)
@@ -404,6 +529,87 @@ class DynamoService {
404
529
  });
405
530
  });
406
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
+ }
407
613
  /**
408
614
  * delete-item
409
615
  * - destroy whole data of item.
@@ -459,10 +665,113 @@ class DynamoService {
459
665
  });
460
666
  });
461
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
+ }
462
770
  }
463
771
  exports.DynamoService = DynamoService;
464
772
  DynamoService._dynamo = {};
465
773
  DynamoService._dynamostr = {};
774
+ //TODO [Steve] why to use promise here to make DynamoDBDocumentClient? @251212
466
775
  DynamoService._dynamodoc = {};
467
776
  /**
468
777
  * export to test..
@@ -524,6 +833,33 @@ class DummyDynamoService extends DynamoService {
524
833
  return Object.assign({ [idName]: id }, item);
525
834
  });
526
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
+ }
527
863
  saveItem(id, item) {
528
864
  return __awaiter(this, void 0, void 0, function* () {
529
865
  const { idName } = this.options;
@@ -531,6 +867,29 @@ class DummyDynamoService extends DynamoService {
531
867
  return Object.assign({ [idName]: id }, this.buffer[id]);
532
868
  });
533
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
+ }
534
893
  deleteItem(id, sort) {
535
894
  return __awaiter(this, void 0, void 0, function* () {
536
895
  delete this.buffer[id];
@@ -547,6 +906,30 @@ class DummyDynamoService extends DynamoService {
547
906
  return Object.assign({ [idName]: id }, this.buffer[id]);
548
907
  });
549
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
+ }
550
933
  }
551
934
  exports.DummyDynamoService = DummyDynamoService;
552
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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"}
@@ -65,14 +65,17 @@ const buildResponse = (statusCode, body, options) => {
65
65
  const origin = (options === null || options === void 0 ? void 0 : options.origin) === undefined ? '*' : options === null || options === void 0 ? void 0 : options.origin;
66
66
  const credentials = (options === null || options === void 0 ? void 0 : options.credentials) === undefined ? true : options === null || options === void 0 ? void 0 : options.credentials;
67
67
  const isBase64Encoded = contentType && !contentType.startsWith('text/') ? true : false;
68
+ const _isXml = (body) => body.startsWith('<?xml ') && body.trim().endsWith('>');
68
69
  const _isHtml = (body) => body.startsWith('<!DOCTYPE html>') || (body.startsWith('<') && body.endsWith('>'));
69
70
  const _type = () => {
70
71
  if (contentType)
71
72
  return contentType;
72
73
  return typeof body === 'string'
73
- ? _isHtml(body)
74
- ? 'text/html; charset=utf-8'
75
- : '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'
76
79
  : 'application/json; charset=utf-8';
77
80
  };
78
81
  const headers = ['origin', HEADER_LEMON_LANGUAGE, HEADER_LEMON_IDENTITY].filter(s => !!s).join(', ');
@@ -288,6 +291,7 @@ class LambdaWEBHandler extends lambda_handler_1.LambdaSubHandler {
288
291
  return __awaiter(this, void 0, void 0, function* () {
289
292
  if (!param)
290
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
291
295
  const TYPE = `${param.type || ''}`;
292
296
  const MODE = `${param.mode || 'GET'}`;
293
297
  const ID = `${param.id || ''}`;