lemon-core 4.3.0 → 5.0.1
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.
- package/README.md +127 -2
- package/dist/common/lemon-error.d.ts +34 -0
- package/dist/common/lemon-error.js +52 -0
- package/dist/common/lemon-error.js.map +1 -0
- package/dist/controllers/general-api-controller.d.ts +7 -0
- package/dist/controllers/general-api-controller.js +7 -0
- package/dist/controllers/general-api-controller.js.map +1 -1
- package/dist/cores/api/api-service.js +10 -43
- package/dist/cores/api/api-service.js.map +1 -1
- package/dist/cores/aws/aws-kms-service.d.ts +13 -5
- package/dist/cores/aws/aws-kms-service.js +23 -9
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.d.ts +30 -4
- package/dist/cores/aws/aws-s3-service.js +35 -15
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.js +59 -9
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.d.ts +1 -1
- package/dist/cores/aws/aws-sqs-service.js +54 -12
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/cache/cache-service.d.ts +10 -9
- package/dist/cores/cache/cache-service.js +9 -346
- package/dist/cores/cache/cache-service.js.map +1 -1
- package/dist/cores/config/config-service.d.ts +3 -15
- package/dist/cores/config/config-service.js +5 -34
- package/dist/cores/config/config-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js +42 -2
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.js +42 -2
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +45 -14
- package/dist/cores/dynamo/dynamo-service.js +48 -21
- package/dist/cores/dynamo/dynamo-service.js.map +1 -1
- package/dist/cores/dynamo/tools/expressions.js +32 -22
- package/dist/cores/dynamo/tools/expressions.js.map +1 -1
- package/dist/cores/dynamo/tools/lang.d.ts +30 -0
- package/dist/cores/dynamo/tools/lang.js +75 -0
- package/dist/cores/dynamo/tools/lang.js.map +1 -0
- package/dist/cores/dynamo/tools/query.js +20 -21
- package/dist/cores/dynamo/tools/query.js.map +1 -1
- package/dist/cores/dynamo/tools/scan.js +15 -16
- package/dist/cores/dynamo/tools/scan.js.map +1 -1
- package/dist/cores/dynamo/tools/serializer.js +40 -38
- package/dist/cores/dynamo/tools/serializer.js.map +1 -1
- package/dist/cores/dynamo/tools/utils.d.ts +6 -2
- package/dist/cores/dynamo/tools/utils.js +11 -8
- package/dist/cores/dynamo/tools/utils.js.map +1 -1
- package/dist/cores/elastic/elastic6-query-service.d.ts +1 -104
- package/dist/cores/elastic/elastic6-query-service.js +15 -489
- package/dist/cores/elastic/elastic6-query-service.js.map +1 -1
- package/dist/cores/elastic/elastic6-service.d.ts +1 -482
- package/dist/cores/elastic/elastic6-service.js +15 -1153
- package/dist/cores/elastic/elastic6-service.js.map +1 -1
- package/dist/cores/elastic/index.d.ts +2 -2
- package/dist/cores/elastic/index.js +3 -2
- package/dist/cores/elastic/index.js.map +1 -1
- package/dist/cores/elastic/os2-query-service.d.ts +104 -0
- package/dist/cores/elastic/os2-query-service.js +495 -0
- package/dist/cores/elastic/os2-query-service.js.map +1 -0
- package/dist/cores/elastic/os2-service.d.ts +372 -0
- package/dist/cores/elastic/os2-service.js +943 -0
- package/dist/cores/elastic/os2-service.js.map +1 -0
- package/dist/cores/index.d.ts +6 -1
- package/dist/cores/index.js +9 -2
- package/dist/cores/index.js.map +1 -1
- package/dist/cores/lambda/index.js +2 -1
- package/dist/cores/lambda/index.js.map +1 -1
- package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -0
- package/dist/cores/lambda/lambda-cron-handler.js +5 -1
- package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +5 -4
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js +18 -5
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.d.ts +22 -2
- package/dist/cores/lambda/lambda-handler.js +85 -23
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sns-handler.d.ts +1 -0
- package/dist/cores/lambda/lambda-sns-handler.js +5 -0
- package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sqs-handler.d.ts +1 -0
- package/dist/cores/lambda/lambda-sqs-handler.js +20 -5
- package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +10 -0
- package/dist/cores/lambda/lambda-web-handler.js +107 -41
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/protocol/aws-lambda-helper.js +58 -11
- package/dist/cores/protocol/aws-lambda-helper.js.map +1 -1
- package/dist/cores/protocol/index.js +3 -0
- package/dist/cores/protocol/index.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +26 -5
- package/dist/cores/protocol/protocol-service.js +42 -12
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/cores/protocol/protocol-sign.d.ts +72 -0
- package/dist/cores/protocol/protocol-sign.js +194 -0
- package/dist/cores/protocol/protocol-sign.js.map +1 -0
- package/dist/cores/storage/index.d.ts +0 -1
- package/dist/cores/storage/index.js +0 -1
- package/dist/cores/storage/index.js.map +1 -1
- package/dist/cores/storage/model-fields.d.ts +7 -0
- package/dist/cores/storage/model-fields.js +21 -0
- package/dist/cores/storage/model-fields.js.map +1 -0
- package/dist/cores/storage/model-manager.d.ts +5 -2
- package/dist/cores/storage/model-manager.js +11 -3
- package/dist/cores/storage/model-manager.js.map +1 -1
- package/dist/engine/builder.js +20 -2
- package/dist/engine/builder.js.map +1 -1
- package/dist/engine/engine.d.ts +2 -2
- package/dist/engine/engine.js +5 -5
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/utilities.d.ts +20 -12
- package/dist/engine/utilities.js +57 -86
- package/dist/engine/utilities.js.map +1 -1
- package/dist/environ.d.ts +0 -6
- package/dist/environ.js +1 -12
- package/dist/environ.js.map +1 -1
- package/dist/esm/index.mjs +141 -0
- package/dist/esm/testing.mjs +12 -0
- package/dist/extended/abstract-service.d.ts +48 -139
- package/dist/extended/abstract-service.js +46 -382
- package/dist/extended/abstract-service.js.map +1 -1
- package/dist/extended/cores/abstract-controllers.d.ts +25 -0
- package/dist/extended/cores/abstract-controllers.js +77 -7
- package/dist/extended/cores/abstract-controllers.js.map +1 -1
- package/dist/extended/cores/abstract-rest-apis.d.ts +2 -1
- package/dist/extended/cores/abstract-rest-apis.js +2 -1
- package/dist/extended/cores/abstract-rest-apis.js.map +1 -1
- package/dist/extended/cores/abstract-services.d.ts +48 -87
- package/dist/extended/cores/abstract-services.js +121 -248
- package/dist/extended/cores/abstract-services.js.map +1 -1
- package/dist/extended/cores/commons.d.ts +4 -113
- package/dist/extended/cores/commons.js +26 -180
- package/dist/extended/cores/commons.js.map +1 -1
- package/dist/extended/cores/fields-admin.d.ts +91 -0
- package/dist/extended/cores/fields-admin.js +142 -0
- package/dist/extended/cores/fields-admin.js.map +1 -0
- package/dist/extended/cores/index.d.ts +2 -0
- package/dist/extended/cores/index.js +2 -0
- package/dist/extended/cores/index.js.map +1 -1
- package/dist/extended/cores/types.d.ts +3 -225
- package/dist/extended/cores/types.js +28 -0
- package/dist/extended/cores/types.js.map +1 -1
- package/dist/helpers/helpers.d.ts +10 -5
- package/dist/helpers/helpers.js +46 -58
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/types.d.ts +22 -10
- package/dist/index.d.ts +1 -5
- package/dist/index.js +8 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/http-fetch.d.ts +54 -0
- package/dist/lib/http-fetch.js +133 -0
- package/dist/lib/http-fetch.js.map +1 -0
- package/dist/lib/lazy.d.ts +22 -0
- package/dist/lib/lazy.js +54 -0
- package/dist/lib/lazy.js.map +1 -0
- package/dist/lib/perf.d.ts +35 -0
- package/dist/lib/perf.js +52 -0
- package/dist/lib/perf.js.map +1 -0
- package/dist/tools/tools.d.ts +15 -3
- package/dist/tools/tools.js +21 -4
- package/dist/tools/tools.js.map +1 -1
- package/package.json +96 -39
- package/dist/cores/storage/redis-storage-service.d.ts +0 -183
- package/dist/cores/storage/redis-storage-service.js +0 -377
- package/dist/cores/storage/redis-storage-service.js.map +0 -1
- package/dist/generated/field-registry.d.ts +0 -12
- package/dist/generated/field-registry.js +0 -21
- package/dist/generated/field-registry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-service.js","sourceRoot":"","sources":["../../../src/cores/config/config-service.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"config-service.js","sourceRoot":"","sources":["../../../src/cores/config/config-service.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,6DAA6D;AAC7D,0CAAqD;AAErD,wCAA4C;AAC5C,0GAA0G;AAC1G,0DAA2D;AAOlD,wFAPQ,qBAAO,OAOR;AANhB,MAAM,EAAE,GAAG,WAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;AAQ5D;;;GAGG;AACH,MAAa,eAAe;IACxB;;OAEG;IACO,SAAS,GAA8B,EAAE,CAAC;IAC1C,IAAI,CAAM;IACV,IAAI,CAAM;IAEpB,uBAAuB;IAChB,GAAG,CAAiB;IAE3B;;OAEG;IACH,YAAmB,IAAa,EAAE,GAAoB;QAClD,IAAA,aAAI,EAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,KAAK,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC;IAEtC;;OAEG;IACI,GAAG;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,GAAG,CAAC,GAAW;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;IACpD,CAAC;IAED,kCAAkC;IAC1B,QAAQ,GAAQ,IAAI,CAAC;IACrB,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,CAAC,oBAAY,IAAI,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAA,aAAI,EAAC,EAAE,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEM,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAC5C,CAAC;IAEM,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9E,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACjF,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAClF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;QACb,4BAA4B;QAC5B,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,GAAQ,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;QAE7C,+DAA+D;QAC/D,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE;YAC7B,OAAO,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAC;QAEF,2BAA2B;QAC3B,MAAM,MAAM,GAAsC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,qBAAO,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEnC,6BAA6B;QAC7B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAC9D,IAAA,aAAI,EAAC,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5B,OAAO,WAAW,CAAC,CAAC,OAAO,IAAI,WAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,CAAC,CAAC,CAAC;gBACH,IAAA,aAAI,EAAC,EAAE,EAAE,YAAY,GAAG,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YAC9B,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;QACF,gCAAgC;QAEhC,4BAA4B;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1B,IAAI,GAAG;gBAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,yBAAyB;YACrD,OAAO,CAAC,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,6CAA6C;QAC7C,wCAAwC;QACxC,IAAA,aAAI,EAAC,EAAE,EAAE,0BAA0B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnD,iBAAiB;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnID,0CAmIC"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -17,8 +50,14 @@ exports.DynamoQueryService = void 0;
|
|
|
17
50
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
51
|
const engine_1 = require("../../engine/");
|
|
19
52
|
const dynamo_service_1 = require("./dynamo-service");
|
|
20
|
-
const
|
|
53
|
+
const perf_1 = require("../../lib/perf");
|
|
21
54
|
const NS = engine_1.$U.NS('DYQR', 'green'); // NAMESPACE TO BE PRINTED.
|
|
55
|
+
/**
|
|
56
|
+
* `@aws-sdk/lib-dynamodb`, imported on the first use (not at import; v5 B2-c, K6). This file keeps its own loader.
|
|
57
|
+
*/
|
|
58
|
+
let $dynamoDoc;
|
|
59
|
+
// memoized loader (the first call prints one `PERF` line; near 0 ms if `dynamo-service` loaded it first).
|
|
60
|
+
const loadDynamoDoc = () => ($dynamoDoc ??= (0, perf_1.measureAsync)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'lazy-load @aws-sdk/lib-dynamodb', () => Promise.resolve().then(() => __importStar(require('@aws-sdk/lib-dynamodb')))));
|
|
22
61
|
const query_1 = __importDefault(require("./tools/query"));
|
|
23
62
|
const serializer_1 = __importDefault(require("./tools/serializer"));
|
|
24
63
|
/**
|
|
@@ -56,7 +95,8 @@ class DynamoQueryService {
|
|
|
56
95
|
const payload = this.buildQuery(pkey, from, to, limit, last, isDesc);
|
|
57
96
|
//* get instance of dynamodoc, and execute query().
|
|
58
97
|
const dynamodoc = await dynamo_service_1.DynamoService.instance().dynamodoc();
|
|
59
|
-
const
|
|
98
|
+
const { QueryCommand } = await loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
99
|
+
const res = await dynamodoc.send(new QueryCommand(payload));
|
|
60
100
|
if (res) {
|
|
61
101
|
// _log(NS, `> query[${pkey}].res =`, $U.json(res)); // `startKey`
|
|
62
102
|
const items = res.Items || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamo-query-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-query-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamo-query-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-query-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -17,8 +50,14 @@ exports.DynamoScanService = void 0;
|
|
|
17
50
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
51
|
const engine_1 = require("../../engine/");
|
|
19
52
|
const dynamo_service_1 = require("./dynamo-service");
|
|
20
|
-
const
|
|
53
|
+
const perf_1 = require("../../lib/perf");
|
|
21
54
|
const NS = engine_1.$U.NS('DSCN', 'green'); // NAMESPACE TO BE PRINTED.
|
|
55
|
+
/**
|
|
56
|
+
* `@aws-sdk/lib-dynamodb`, imported on the first use (not at import; v5 B2-c, K6). This file keeps its own loader.
|
|
57
|
+
*/
|
|
58
|
+
let $dynamoDoc;
|
|
59
|
+
// memoized loader (the first call prints one `PERF` line; near 0 ms if `dynamo-service` loaded it first).
|
|
60
|
+
const loadDynamoDoc = () => ($dynamoDoc ??= (0, perf_1.measureAsync)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'lazy-load @aws-sdk/lib-dynamodb', () => Promise.resolve().then(() => __importStar(require('@aws-sdk/lib-dynamodb')))));
|
|
22
61
|
function isComparisonCondition(c) {
|
|
23
62
|
return 'comparator' in c;
|
|
24
63
|
}
|
|
@@ -62,7 +101,8 @@ class DynamoScanService {
|
|
|
62
101
|
(0, engine_1._log)(NS, `> payload =`, engine_1.$U.json(payload));
|
|
63
102
|
//* get instance of dynamodoc, and execute query().
|
|
64
103
|
const dynamodoc = await dynamo_service_1.DynamoService.instance().dynamodoc();
|
|
65
|
-
const
|
|
104
|
+
const { ScanCommand } = await loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
105
|
+
const res = await dynamodoc.send(new ScanCommand(payload));
|
|
66
106
|
(0, engine_1._log)(NS, `> scan.res =`, engine_1.$U.json({ ...res, Items: undefined }));
|
|
67
107
|
res?.Items && (0, engine_1._log)(NS, `> scan[0] =`, engine_1.$U.json(res?.Items?.[0]));
|
|
68
108
|
const items = res.Items || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamo-scan-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-scan-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamo-scan-service.js","sourceRoot":"","sources":["../../../src/cores/dynamo/dynamo-scan-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,38 @@
|
|
|
1
1
|
import { GeneralItem, Incrementable } from 'lemon-model';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* the low-level client as this service uses it (local structural type, no SDK type in `.d.ts`; v5 B2-c).
|
|
4
|
+
*/
|
|
5
|
+
type DynamoClientLike = {
|
|
6
|
+
send: (command: any) => Promise<any>;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* the document client as this service uses it (local structural type; v5 B2-c).
|
|
10
|
+
*/
|
|
11
|
+
type DynamoDocClientLike = {
|
|
12
|
+
send: (command: any) => Promise<any>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* a key-schema element of `prepareCreateTable()` (local structural type = SDK `KeySchemaElement`; v5 B2-c).
|
|
16
|
+
*/
|
|
17
|
+
interface KeySchemaElementLike {
|
|
18
|
+
AttributeName: string;
|
|
19
|
+
KeyType: 'HASH' | 'RANGE';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* the output of `createTable()` / `deleteTable()` (local minimal structure; v5 B2-c).
|
|
23
|
+
*/
|
|
24
|
+
interface TableCommandOutput {
|
|
25
|
+
TableDescription?: {
|
|
26
|
+
TableName?: string;
|
|
27
|
+
TableStatus?: string;
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
};
|
|
30
|
+
$metadata?: {
|
|
31
|
+
httpStatusCode?: number;
|
|
32
|
+
requestId?: string;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
6
36
|
export type KEY_TYPE = 'number' | 'string';
|
|
7
37
|
export interface DynamoOption {
|
|
8
38
|
tableName: string;
|
|
@@ -52,17 +82,17 @@ export declare class DynamoService<T extends GeneralItem> {
|
|
|
52
82
|
* say hello of identity.
|
|
53
83
|
*/
|
|
54
84
|
hello: () => string;
|
|
55
|
-
|
|
56
|
-
protected static
|
|
57
|
-
protected static _dynamodoc: Record<string, () => Promise<
|
|
85
|
+
/** low-level clients per region (v5 B2-c: now actually written, one per region) */
|
|
86
|
+
protected static _dynamo: Record<string, DynamoClientLike>;
|
|
87
|
+
protected static _dynamodoc: Record<string, () => Promise<DynamoDocClientLike>>;
|
|
58
88
|
/**
|
|
59
|
-
* simple instance maker.
|
|
89
|
+
* simple instance maker (sync; the SDK packages are loaded on the first call).
|
|
90
|
+
* - v5 B2-c: one low-level client per region (cached), and no `dynamostr` (streams client) any more.
|
|
60
91
|
* @param region (default as `ap-northeast-2`)
|
|
61
92
|
*/
|
|
62
93
|
static instance(region?: string): {
|
|
63
|
-
dynamo:
|
|
64
|
-
|
|
65
|
-
dynamodoc: () => Promise<DynamoDBDocumentClient>;
|
|
94
|
+
dynamo: DynamoClientLike;
|
|
95
|
+
dynamodoc: () => Promise<DynamoDocClientLike>;
|
|
66
96
|
};
|
|
67
97
|
/**
|
|
68
98
|
* export to test..
|
|
@@ -77,7 +107,7 @@ export declare class DynamoService<T extends GeneralItem> {
|
|
|
77
107
|
*/
|
|
78
108
|
prepareCreateTable(ReadCapacityUnits?: number, WriteCapacityUnits?: number, StreamEnabled?: boolean): {
|
|
79
109
|
TableName: string;
|
|
80
|
-
KeySchema:
|
|
110
|
+
KeySchema: KeySchemaElementLike[];
|
|
81
111
|
AttributeDefinitions: {
|
|
82
112
|
AttributeName: string;
|
|
83
113
|
AttributeType: any;
|
|
@@ -134,12 +164,12 @@ export declare class DynamoService<T extends GeneralItem> {
|
|
|
134
164
|
* @param ReadCapacityUnits
|
|
135
165
|
* @param WriteCapacityUnits
|
|
136
166
|
*/
|
|
137
|
-
createTable(ReadCapacityUnits?: number, WriteCapacityUnits?: number): Promise<
|
|
167
|
+
createTable(ReadCapacityUnits?: number, WriteCapacityUnits?: number): Promise<TableCommandOutput>;
|
|
138
168
|
/**
|
|
139
169
|
* delete-table
|
|
140
170
|
*
|
|
141
171
|
*/
|
|
142
|
-
deleteTable(): Promise<
|
|
172
|
+
deleteTable(): Promise<TableCommandOutput>;
|
|
143
173
|
/**
|
|
144
174
|
* read-item
|
|
145
175
|
* - read whole data of item.
|
|
@@ -257,3 +287,4 @@ export declare class DummyDynamoService<T extends GeneralItem> extends DynamoSer
|
|
|
257
287
|
sort?: string | number;
|
|
258
288
|
}>): Promise<BatchResult<T>>;
|
|
259
289
|
}
|
|
290
|
+
export {};
|
|
@@ -49,11 +49,22 @@ exports.DummyDynamoService = exports.DynamoService = void 0;
|
|
|
49
49
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
50
50
|
const engine_1 = __importStar(require("../../engine/"));
|
|
51
51
|
const tools_1 = require("../../tools/");
|
|
52
|
-
const
|
|
53
|
-
const client_dynamodb_2 = require("@aws-sdk/client-dynamodb");
|
|
54
|
-
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
55
|
-
const client_dynamodb_streams_1 = require("@aws-sdk/client-dynamodb-streams");
|
|
52
|
+
const perf_1 = require("../../lib/perf");
|
|
56
53
|
const NS = engine_1.$U.NS('DYNA', 'green'); // NAMESPACE TO BE PRINTED.
|
|
54
|
+
/**
|
|
55
|
+
* SDK packages, required on the first use (not at import; v5 B2-c, K6).
|
|
56
|
+
* - sync loaders: `DynamoService.instance()` stays sync. Each first call prints one `PERF` line.
|
|
57
|
+
*/
|
|
58
|
+
let $dynamo;
|
|
59
|
+
let $dynamoDoc;
|
|
60
|
+
// loader of `@aws-sdk/client-dynamodb`.
|
|
61
|
+
const loadDynamo = () => ($dynamo ??= (0, perf_1.measure)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'lazy-load @aws-sdk/client-dynamodb', () =>
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
63
|
+
require('@aws-sdk/client-dynamodb')));
|
|
64
|
+
// loader of `@aws-sdk/lib-dynamodb`.
|
|
65
|
+
const loadDynamoDoc = () => ($dynamoDoc ??= (0, perf_1.measure)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'lazy-load @aws-sdk/lib-dynamodb', () =>
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
67
|
+
require('@aws-sdk/lib-dynamodb')));
|
|
57
68
|
//* Batch operation constants
|
|
58
69
|
const BATCH_GET_CHUNK = 100; // DynamoDB BatchGetItem limit
|
|
59
70
|
const BATCH_WRITE_CHUNK = 25; // DynamoDB BatchWriteItem limit
|
|
@@ -99,19 +110,24 @@ class DynamoService {
|
|
|
99
110
|
* say hello of identity.
|
|
100
111
|
*/
|
|
101
112
|
hello = () => `dynamo-service:${this.options.tableName}`;
|
|
113
|
+
/** low-level clients per region (v5 B2-c: now actually written, one per region) */
|
|
102
114
|
static _dynamo = {};
|
|
103
|
-
static _dynamostr = {};
|
|
104
115
|
//TODO [Steve] why to use promise here to make DynamoDBDocumentClient? @251212
|
|
105
116
|
static _dynamodoc = {};
|
|
106
117
|
/**
|
|
107
|
-
* simple instance maker.
|
|
118
|
+
* simple instance maker (sync; the SDK packages are loaded on the first call).
|
|
119
|
+
* - v5 B2-c: one low-level client per region (cached), and no `dynamostr` (streams client) any more.
|
|
108
120
|
* @param region (default as `ap-northeast-2`)
|
|
109
121
|
*/
|
|
110
122
|
static instance(region) {
|
|
111
123
|
region = `${region || 'ap-northeast-2'}`;
|
|
112
124
|
const $cfg = (0, tools_1.awsConfig)(engine_1.default, region);
|
|
113
|
-
|
|
114
|
-
|
|
125
|
+
//* low-level client: built once per region (`PERF > client DYNAMO` once per region).
|
|
126
|
+
if (!DynamoService._dynamo[region]) {
|
|
127
|
+
const { DynamoDBClient } = loadDynamo();
|
|
128
|
+
DynamoService._dynamo[region] = (0, perf_1.measure)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'client DYNAMO', () => new DynamoDBClient($cfg));
|
|
129
|
+
}
|
|
130
|
+
const dynamo = DynamoService._dynamo[region]; // Low-level DynamoDB client
|
|
115
131
|
// Create memoized function for dynamodoc
|
|
116
132
|
if (!DynamoService._dynamodoc[region]) {
|
|
117
133
|
const cache = { client: null };
|
|
@@ -119,14 +135,16 @@ class DynamoService {
|
|
|
119
135
|
if (!cache.client) {
|
|
120
136
|
(0, engine_1._log)(NS, `! creating NEW DynamoDBDocumentClient for region[${region}]`);
|
|
121
137
|
const credentials = $cfg.credentials;
|
|
122
|
-
const
|
|
123
|
-
|
|
138
|
+
const { DynamoDBClient } = loadDynamo();
|
|
139
|
+
const { DynamoDBDocumentClient } = loadDynamoDoc();
|
|
140
|
+
//* `PERF > client DYNAMO-DOC`: once per region (this memo).
|
|
141
|
+
cache.client = (0, perf_1.measure)(engine_1._inf, engine_1.$U.NS('PERF', 'cyan'), 'client DYNAMO-DOC', () => DynamoDBDocumentClient.from(new DynamoDBClient({ ...$cfg, credentials })));
|
|
124
142
|
}
|
|
125
143
|
return cache.client;
|
|
126
144
|
};
|
|
127
145
|
}
|
|
128
146
|
const dynamodoc = DynamoService._dynamodoc[region]; // High-level Document client
|
|
129
|
-
return { dynamo,
|
|
147
|
+
return { dynamo, dynamodoc };
|
|
130
148
|
}
|
|
131
149
|
/**
|
|
132
150
|
* export to test..
|
|
@@ -170,7 +188,7 @@ class DynamoService {
|
|
|
170
188
|
},
|
|
171
189
|
],
|
|
172
190
|
ProvisionedThroughput: { ReadCapacityUnits, WriteCapacityUnits },
|
|
173
|
-
StreamSpecification: { StreamEnabled, StreamViewType:
|
|
191
|
+
StreamSpecification: { StreamEnabled, StreamViewType: 'NEW_AND_OLD_IMAGES' }, // the SDK enum value (a string)
|
|
174
192
|
};
|
|
175
193
|
//* set sort-key.
|
|
176
194
|
if (sortName) {
|
|
@@ -348,8 +366,9 @@ class DynamoService {
|
|
|
348
366
|
async createTable(ReadCapacityUnits = 1, WriteCapacityUnits = 1) {
|
|
349
367
|
(0, engine_1._log)(NS, `createTable(${ReadCapacityUnits}, ${WriteCapacityUnits})...`);
|
|
350
368
|
const payload = this.prepareCreateTable(ReadCapacityUnits, WriteCapacityUnits);
|
|
369
|
+
const { CreateTableCommand } = loadDynamo(); // command class from the lazy-loaded package.
|
|
351
370
|
return instance()
|
|
352
|
-
.dynamo.send(new
|
|
371
|
+
.dynamo.send(new CreateTableCommand(payload))
|
|
353
372
|
.then(res => {
|
|
354
373
|
(0, engine_1._log)(NS, '> createTable.res =', res);
|
|
355
374
|
return res;
|
|
@@ -362,8 +381,9 @@ class DynamoService {
|
|
|
362
381
|
async deleteTable() {
|
|
363
382
|
(0, engine_1._log)(NS, `deleteTable()...`);
|
|
364
383
|
const payload = this.prepareDeleteTable();
|
|
384
|
+
const { DeleteTableCommand } = loadDynamo(); // command class from the lazy-loaded package.
|
|
365
385
|
return instance()
|
|
366
|
-
.dynamo.send(new
|
|
386
|
+
.dynamo.send(new DeleteTableCommand(payload))
|
|
367
387
|
.then(res => {
|
|
368
388
|
(0, engine_1._log)(NS, '> deleteTable.res =', res);
|
|
369
389
|
return res;
|
|
@@ -382,8 +402,9 @@ class DynamoService {
|
|
|
382
402
|
const itemKey = this.prepareItemKey(id, sort);
|
|
383
403
|
// _log(NS, `> pkey[${id}${sort ? '/' : ''}${sort || ''}] =`, $U.json(itemKey));
|
|
384
404
|
const dynamodoc = await instance().dynamodoc();
|
|
405
|
+
const { GetCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
385
406
|
return dynamodoc
|
|
386
|
-
.send(new
|
|
407
|
+
.send(new GetCommand(itemKey))
|
|
387
408
|
.then(res => {
|
|
388
409
|
// _log(NS, '> readItem.res =', $U.json(res));
|
|
389
410
|
if (!res.Item)
|
|
@@ -434,8 +455,9 @@ class DynamoService {
|
|
|
434
455
|
return key;
|
|
435
456
|
});
|
|
436
457
|
const _doBatchGet = async (keys, attempt, acc) => {
|
|
458
|
+
const { BatchGetCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
437
459
|
const response = await dynamodoc
|
|
438
|
-
.send(new
|
|
460
|
+
.send(new BatchGetCommand({ RequestItems: { [tableName]: { Keys: keys } } }))
|
|
439
461
|
.catch((e) => {
|
|
440
462
|
if (`${e.message}`.includes('ResourceNotFoundException'))
|
|
441
463
|
throw new Error(`404 NOT FOUND - table:${tableName}`);
|
|
@@ -536,8 +558,9 @@ class DynamoService {
|
|
|
536
558
|
const payload = this.prepareSaveItem(id, item);
|
|
537
559
|
// _log(NS, '> payload :=', payload);
|
|
538
560
|
const dynamodoc = await DynamoService.instance().dynamodoc();
|
|
561
|
+
const { PutCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
539
562
|
return dynamodoc
|
|
540
|
-
.send(new
|
|
563
|
+
.send(new PutCommand(payload))
|
|
541
564
|
.then(res => {
|
|
542
565
|
(0, engine_1._log)(NS, '> saveItem.res =', engine_1.$U.json(res));
|
|
543
566
|
return payload.Item;
|
|
@@ -579,8 +602,9 @@ class DynamoService {
|
|
|
579
602
|
});
|
|
580
603
|
//* execute batch write with retry for unprocessed items
|
|
581
604
|
const _doBatchWrite = async (requests, attempt) => {
|
|
605
|
+
const { BatchWriteCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
582
606
|
const response = await dynamodoc
|
|
583
|
-
.send(new
|
|
607
|
+
.send(new BatchWriteCommand({ RequestItems: { [tableName]: requests } }))
|
|
584
608
|
.catch((e) => {
|
|
585
609
|
if (`${e.message}`.includes('ResourceNotFoundException'))
|
|
586
610
|
throw new Error(`404 NOT FOUND - table:${tableName}`);
|
|
@@ -666,8 +690,9 @@ class DynamoService {
|
|
|
666
690
|
// _log(NS, `deleteItem(${id})...`);
|
|
667
691
|
const payload = this.prepareItemKey(id, sort);
|
|
668
692
|
const dynamodoc = await DynamoService.instance().dynamodoc();
|
|
693
|
+
const { DeleteCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
669
694
|
return dynamodoc
|
|
670
|
-
.send(new
|
|
695
|
+
.send(new DeleteCommand(payload))
|
|
671
696
|
.then(res => {
|
|
672
697
|
(0, engine_1._log)(NS, '> deleteItem.res =', engine_1.$U.json(res));
|
|
673
698
|
return null;
|
|
@@ -692,8 +717,9 @@ class DynamoService {
|
|
|
692
717
|
// _log(NS, `updateItem(${id})...`);
|
|
693
718
|
const payload = this.prepareUpdateItem(id, sort, updates, increments);
|
|
694
719
|
const dynamodoc = await DynamoService.instance().dynamodoc();
|
|
720
|
+
const { UpdateCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
695
721
|
return dynamodoc
|
|
696
|
-
.send(new
|
|
722
|
+
.send(new UpdateCommand(payload))
|
|
697
723
|
.then(res => {
|
|
698
724
|
(0, engine_1._log)(NS, `> updateItem[${id}].res =`, engine_1.$U.json(res));
|
|
699
725
|
const attr = res.Attributes;
|
|
@@ -742,8 +768,9 @@ class DynamoService {
|
|
|
742
768
|
});
|
|
743
769
|
//* execute batch write with retry for unprocessed items
|
|
744
770
|
const _doBatchWrite = async (requests, attempt) => {
|
|
771
|
+
const { BatchWriteCommand } = loadDynamoDoc(); // command class from the lazy-loaded package.
|
|
745
772
|
const response = await dynamodoc
|
|
746
|
-
.send(new
|
|
773
|
+
.send(new BatchWriteCommand({ RequestItems: { [tableName]: requests } }))
|
|
747
774
|
.catch((e) => {
|
|
748
775
|
if (`${e.message}`.includes('ResourceNotFoundException'))
|
|
749
776
|
throw new Error(`404 NOT FOUND - table:${tableName}`);
|