lemon-core 4.2.7 → 5.0.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.
Files changed (167) hide show
  1. package/README.md +128 -2
  2. package/dist/common/lemon-error.d.ts +34 -0
  3. package/dist/common/lemon-error.js +52 -0
  4. package/dist/common/lemon-error.js.map +1 -0
  5. package/dist/controllers/general-api-controller.d.ts +7 -0
  6. package/dist/controllers/general-api-controller.js +7 -0
  7. package/dist/controllers/general-api-controller.js.map +1 -1
  8. package/dist/cores/api/api-service.js +10 -43
  9. package/dist/cores/api/api-service.js.map +1 -1
  10. package/dist/cores/aws/aws-kms-service.d.ts +13 -5
  11. package/dist/cores/aws/aws-kms-service.js +23 -9
  12. package/dist/cores/aws/aws-kms-service.js.map +1 -1
  13. package/dist/cores/aws/aws-s3-service.d.ts +30 -4
  14. package/dist/cores/aws/aws-s3-service.js +35 -15
  15. package/dist/cores/aws/aws-s3-service.js.map +1 -1
  16. package/dist/cores/aws/aws-sns-service.js +59 -9
  17. package/dist/cores/aws/aws-sns-service.js.map +1 -1
  18. package/dist/cores/aws/aws-sqs-service.d.ts +1 -1
  19. package/dist/cores/aws/aws-sqs-service.js +54 -12
  20. package/dist/cores/aws/aws-sqs-service.js.map +1 -1
  21. package/dist/cores/cache/cache-service.d.ts +10 -9
  22. package/dist/cores/cache/cache-service.js +9 -346
  23. package/dist/cores/cache/cache-service.js.map +1 -1
  24. package/dist/cores/config/config-service.d.ts +3 -15
  25. package/dist/cores/config/config-service.js +5 -34
  26. package/dist/cores/config/config-service.js.map +1 -1
  27. package/dist/cores/dynamo/dynamo-query-service.js +42 -2
  28. package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
  29. package/dist/cores/dynamo/dynamo-scan-service.js +42 -2
  30. package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
  31. package/dist/cores/dynamo/dynamo-service.d.ts +45 -14
  32. package/dist/cores/dynamo/dynamo-service.js +48 -21
  33. package/dist/cores/dynamo/dynamo-service.js.map +1 -1
  34. package/dist/cores/dynamo/tools/expressions.js +32 -22
  35. package/dist/cores/dynamo/tools/expressions.js.map +1 -1
  36. package/dist/cores/dynamo/tools/lang.d.ts +30 -0
  37. package/dist/cores/dynamo/tools/lang.js +75 -0
  38. package/dist/cores/dynamo/tools/lang.js.map +1 -0
  39. package/dist/cores/dynamo/tools/query.js +20 -21
  40. package/dist/cores/dynamo/tools/query.js.map +1 -1
  41. package/dist/cores/dynamo/tools/scan.js +15 -16
  42. package/dist/cores/dynamo/tools/scan.js.map +1 -1
  43. package/dist/cores/dynamo/tools/serializer.js +40 -38
  44. package/dist/cores/dynamo/tools/serializer.js.map +1 -1
  45. package/dist/cores/dynamo/tools/utils.d.ts +6 -2
  46. package/dist/cores/dynamo/tools/utils.js +11 -8
  47. package/dist/cores/dynamo/tools/utils.js.map +1 -1
  48. package/dist/cores/elastic/elastic6-query-service.d.ts +1 -104
  49. package/dist/cores/elastic/elastic6-query-service.js +15 -489
  50. package/dist/cores/elastic/elastic6-query-service.js.map +1 -1
  51. package/dist/cores/elastic/elastic6-service.d.ts +1 -482
  52. package/dist/cores/elastic/elastic6-service.js +15 -1153
  53. package/dist/cores/elastic/elastic6-service.js.map +1 -1
  54. package/dist/cores/elastic/index.d.ts +2 -2
  55. package/dist/cores/elastic/index.js +3 -2
  56. package/dist/cores/elastic/index.js.map +1 -1
  57. package/dist/cores/elastic/os2-query-service.d.ts +104 -0
  58. package/dist/cores/elastic/os2-query-service.js +495 -0
  59. package/dist/cores/elastic/os2-query-service.js.map +1 -0
  60. package/dist/cores/elastic/os2-service.d.ts +372 -0
  61. package/dist/cores/elastic/os2-service.js +943 -0
  62. package/dist/cores/elastic/os2-service.js.map +1 -0
  63. package/dist/cores/index.d.ts +6 -1
  64. package/dist/cores/index.js +9 -2
  65. package/dist/cores/index.js.map +1 -1
  66. package/dist/cores/lambda/index.js +2 -1
  67. package/dist/cores/lambda/index.js.map +1 -1
  68. package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -0
  69. package/dist/cores/lambda/lambda-cron-handler.js +5 -1
  70. package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
  71. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +5 -4
  72. package/dist/cores/lambda/lambda-dynamo-stream-handler.js +18 -5
  73. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  74. package/dist/cores/lambda/lambda-handler.d.ts +22 -2
  75. package/dist/cores/lambda/lambda-handler.js +85 -23
  76. package/dist/cores/lambda/lambda-handler.js.map +1 -1
  77. package/dist/cores/lambda/lambda-sns-handler.d.ts +1 -0
  78. package/dist/cores/lambda/lambda-sns-handler.js +5 -0
  79. package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
  80. package/dist/cores/lambda/lambda-sqs-handler.d.ts +1 -0
  81. package/dist/cores/lambda/lambda-sqs-handler.js +20 -5
  82. package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
  83. package/dist/cores/lambda/lambda-web-handler.d.ts +10 -0
  84. package/dist/cores/lambda/lambda-web-handler.js +107 -41
  85. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  86. package/dist/cores/protocol/aws-lambda-helper.js +58 -11
  87. package/dist/cores/protocol/aws-lambda-helper.js.map +1 -1
  88. package/dist/cores/protocol/index.js +3 -0
  89. package/dist/cores/protocol/index.js.map +1 -1
  90. package/dist/cores/protocol/protocol-service.d.ts +26 -5
  91. package/dist/cores/protocol/protocol-service.js +42 -12
  92. package/dist/cores/protocol/protocol-service.js.map +1 -1
  93. package/dist/cores/protocol/protocol-sign.d.ts +72 -0
  94. package/dist/cores/protocol/protocol-sign.js +194 -0
  95. package/dist/cores/protocol/protocol-sign.js.map +1 -0
  96. package/dist/cores/storage/index.d.ts +0 -1
  97. package/dist/cores/storage/index.js +0 -1
  98. package/dist/cores/storage/index.js.map +1 -1
  99. package/dist/cores/storage/model-fields.d.ts +7 -0
  100. package/dist/cores/storage/model-fields.js +21 -0
  101. package/dist/cores/storage/model-fields.js.map +1 -0
  102. package/dist/cores/storage/model-manager.d.ts +3 -2
  103. package/dist/cores/storage/model-manager.js +7 -3
  104. package/dist/cores/storage/model-manager.js.map +1 -1
  105. package/dist/engine/builder.js +20 -2
  106. package/dist/engine/builder.js.map +1 -1
  107. package/dist/engine/engine.d.ts +2 -2
  108. package/dist/engine/engine.js +4 -4
  109. package/dist/engine/engine.js.map +1 -1
  110. package/dist/engine/utilities.d.ts +11 -12
  111. package/dist/engine/utilities.js +30 -82
  112. package/dist/engine/utilities.js.map +1 -1
  113. package/dist/environ.d.ts +0 -6
  114. package/dist/environ.js +1 -12
  115. package/dist/environ.js.map +1 -1
  116. package/dist/esm/index.mjs +140 -0
  117. package/dist/esm/testing.mjs +12 -0
  118. package/dist/extended/abstract-service.d.ts +48 -139
  119. package/dist/extended/abstract-service.js +46 -382
  120. package/dist/extended/abstract-service.js.map +1 -1
  121. package/dist/extended/cores/abstract-controllers.d.ts +170 -0
  122. package/dist/extended/cores/abstract-controllers.js +533 -0
  123. package/dist/extended/cores/abstract-controllers.js.map +1 -0
  124. package/dist/extended/cores/abstract-rest-apis.d.ts +142 -0
  125. package/dist/extended/cores/abstract-rest-apis.js +203 -0
  126. package/dist/extended/cores/abstract-rest-apis.js.map +1 -0
  127. package/dist/extended/cores/abstract-services.d.ts +771 -0
  128. package/dist/extended/cores/abstract-services.js +2042 -0
  129. package/dist/extended/cores/abstract-services.js.map +1 -0
  130. package/dist/extended/cores/browser-cache.d.ts +2 -0
  131. package/dist/extended/cores/browser-cache.js +34 -0
  132. package/dist/extended/cores/browser-cache.js.map +1 -0
  133. package/dist/extended/cores/commons.d.ts +20 -0
  134. package/dist/extended/cores/commons.js +31 -0
  135. package/dist/extended/cores/commons.js.map +1 -0
  136. package/dist/extended/cores/index.d.ts +15 -0
  137. package/dist/extended/cores/index.js +32 -0
  138. package/dist/extended/cores/index.js.map +1 -0
  139. package/dist/extended/cores/types.d.ts +14 -0
  140. package/dist/extended/cores/types.js +31 -0
  141. package/dist/extended/cores/types.js.map +1 -0
  142. package/dist/helpers/helpers.d.ts +10 -5
  143. package/dist/helpers/helpers.js +46 -58
  144. package/dist/helpers/helpers.js.map +1 -1
  145. package/dist/helpers/types.d.ts +22 -10
  146. package/dist/index.d.ts +4 -0
  147. package/dist/index.js +12 -1
  148. package/dist/index.js.map +1 -1
  149. package/dist/lib/http-fetch.d.ts +54 -0
  150. package/dist/lib/http-fetch.js +133 -0
  151. package/dist/lib/http-fetch.js.map +1 -0
  152. package/dist/lib/lazy.d.ts +22 -0
  153. package/dist/lib/lazy.js +54 -0
  154. package/dist/lib/lazy.js.map +1 -0
  155. package/dist/lib/perf.d.ts +35 -0
  156. package/dist/lib/perf.js +52 -0
  157. package/dist/lib/perf.js.map +1 -0
  158. package/dist/tools/tools.d.ts +15 -3
  159. package/dist/tools/tools.js +21 -4
  160. package/dist/tools/tools.js.map +1 -1
  161. package/package.json +96 -39
  162. package/dist/cores/storage/redis-storage-service.d.ts +0 -183
  163. package/dist/cores/storage/redis-storage-service.js +0 -377
  164. package/dist/cores/storage/redis-storage-service.js.map +0 -1
  165. package/dist/generated/field-registry.d.ts +0 -10
  166. package/dist/generated/field-registry.js +0 -17
  167. package/dist/generated/field-registry.js.map +0 -1
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /**
3
+ * `lib/perf.ts`
4
+ * - (internal) performance checkpoint helpers for the `PERF` log lines (v5 B2-c, D40).
5
+ * - not exported by the `lib` barrel.
6
+ * - imports nothing from `engine/`: the caller passes its logger and namespace,
7
+ * so `tools/` and other engine-free files can use it too.
8
+ *
9
+ * line format: `log(ns, '>', label, '<ms> ms')` with one decimal, e.g. `PERF: > lazy-load <package> 12.3 ms`.
10
+ *
11
+ * @author Steve Jung <steve@lemoncloud.io>
12
+ * @date 2026-10-27 v5 B2-c (D40)
13
+ *
14
+ * @copyright (C) 2026 LemonCloud Co Ltd. - All Rights Reserved.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.measureAsync = exports.measure = exports.nowMs = void 0;
18
+ /**
19
+ * current monotonic time in ms (from `process.hrtime.bigint()`).
20
+ */
21
+ const nowMs = () => Number(process.hrtime.bigint()) / 1e6;
22
+ exports.nowMs = nowMs;
23
+ // format the elapsed ms with one decimal.
24
+ const asMs = (t0) => `${((0, exports.nowMs)() - t0).toFixed(1)} ms`;
25
+ /**
26
+ * run `fn` and print one line with its elapsed ms; returns the result.
27
+ * - an exception is thrown as is, and no line is printed.
28
+ *
29
+ * @param log logger (e.g. `_inf`)
30
+ * @param ns namespace (e.g. `$U.NS('PERF', 'cyan')`)
31
+ * @param label checkpoint label (no values, no hosts)
32
+ * @param fn the work to measure
33
+ */
34
+ const measure = (log, ns, label, fn) => {
35
+ const t0 = (0, exports.nowMs)();
36
+ const res = fn();
37
+ log(ns, '>', label, asMs(t0));
38
+ return res;
39
+ };
40
+ exports.measure = measure;
41
+ /**
42
+ * the async version of `measure()`: the line is printed after `fn()` resolves.
43
+ * - a rejection is passed through, and no line is printed.
44
+ */
45
+ const measureAsync = async (log, ns, label, fn) => {
46
+ const t0 = (0, exports.nowMs)();
47
+ const res = await fn();
48
+ log(ns, '>', label, asMs(t0));
49
+ return res;
50
+ };
51
+ exports.measureAsync = measureAsync;
52
+ //# sourceMappingURL=perf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.js","sourceRoot":"","sources":["../../src/lib/perf.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAKH;;GAEG;AACI,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC;AAA5D,QAAA,KAAK,SAAuD;AAEzE,0CAA0C;AAC1C,MAAM,IAAI,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,GAAG,CAAC,IAAA,aAAK,GAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAEvE;;;;;;;;GAQG;AACI,MAAM,OAAO,GAAG,CAAI,GAAe,EAAE,EAAU,EAAE,KAAa,EAAE,EAAW,EAAK,EAAE;IACrF,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,EAAK,GAAe,EAAE,EAAU,EAAE,KAAa,EAAE,EAAoB,EAAc,EAAE;IAClH,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB"}
@@ -1,6 +1,17 @@
1
1
  import { CrendentialForAWS } from '../environ';
2
- import { RuntimeConfigAwsCredentialIdentityProvider } from '@aws-sdk/types/dist-types/identity/AwsCredentialIdentity';
3
2
  import { LemonEngine } from '../engine/types';
3
+ /**
4
+ * type: `AwsCredentialProvider`
5
+ * - the credentials provider (an async function) for the AWS SDK clients.
6
+ * - local structural type (v5 B2-c): no AWS SDK type in the published `.d.ts`.
7
+ * - not exported (no new root name); it shows in `.d.ts` through `AwsConfigParams.credentials`.
8
+ */
9
+ type AwsCredentialProvider = (props?: Record<string, any>) => Promise<{
10
+ accessKeyId: string;
11
+ secretAccessKey: string;
12
+ sessionToken?: string;
13
+ expiration?: Date;
14
+ }>;
4
15
  /**
5
16
  * Check if the current environment is AWS Lambda
6
17
  * @returns {boolean} - true if running in AWS Lambda environment
@@ -31,7 +42,7 @@ export interface AwsConfigParams {
31
42
  /** AWS profile */
32
43
  profile?: string;
33
44
  /** AWS credentials provider */
34
- credentials?: RuntimeConfigAwsCredentialIdentityProvider;
45
+ credentials?: AwsCredentialProvider;
35
46
  }
36
47
  /**
37
48
  * load config for aws sdk
@@ -48,5 +59,6 @@ export interface AwsConfigParams {
48
59
  export declare const awsConfig: <T extends AwsConfigParams>($engine: LemonEngine,
49
60
  /** params or region */
50
61
  params?: T | string | (() => string)) => T & {
51
- credentials?: RuntimeConfigAwsCredentialIdentityProvider;
62
+ credentials?: AwsCredentialProvider;
52
63
  };
64
+ export {};
@@ -23,8 +23,24 @@ exports.awsConfig = exports.asyncCredentials = exports.loadDataYml = exports.loa
23
23
  */
24
24
  const fs_1 = __importDefault(require("fs"));
25
25
  const js_yaml_1 = __importDefault(require("js-yaml"));
26
- const credential_providers_1 = require("@aws-sdk/credential-providers");
27
26
  const test_helper_1 = require("../common/test-helper");
27
+ const perf_1 = require("../lib/perf");
28
+ /**
29
+ * `@aws-sdk/credential-providers`, required on the first use (not at import; v5 B2-c, K6).
30
+ */
31
+ let $credentialProviders = null;
32
+ // memoized sync loader; prints `PERF > lazy-load ...` only when an engine logger is given (`awsConfig`).
33
+ const loadCredentialProviders = ($engine) => {
34
+ if (!$credentialProviders) {
35
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
36
+ const load = () => require('@aws-sdk/credential-providers');
37
+ $credentialProviders =
38
+ $engine?.inf && $engine?.U
39
+ ? (0, perf_1.measure)($engine.inf, $engine.U.NS('PERF', 'cyan'), 'lazy-load @aws-sdk/credential-providers', load)
40
+ : load();
41
+ }
42
+ return $credentialProviders;
43
+ };
28
44
  /**
29
45
  * Check if the current environment is AWS Lambda
30
46
  * @returns {boolean} - true if running in AWS Lambda environment
@@ -66,7 +82,8 @@ exports.loadDataYml = loadDataYml;
66
82
  * @returns {Promise<CrendentialForAWS>} - AWS credentials
67
83
  */
68
84
  const asyncCredentials = async (profile) => {
69
- const provider = (0, credential_providers_1.fromIni)({ profile });
85
+ //* no logger here: `PERF` is printed only when `awsConfig()` loads the package first.
86
+ const provider = loadCredentialProviders().fromIni({ profile });
70
87
  const $res = await provider();
71
88
  return { ...$res, profile };
72
89
  };
@@ -107,11 +124,11 @@ params) => {
107
124
  });
108
125
  if (typeof $conf.region === 'string' && !$conf.region)
109
126
  throw new Error(`.region[${$conf.region}] is invalid (empty) - ${errScope}`);
110
- //! load the credentials provider(async function).
127
+ //! load the credentials provider(async function); the package is loaded only when a profile is set.
111
128
  const credentials = typeof $conf.credentials === 'function'
112
129
  ? $conf.credentials
113
130
  : $conf.profile
114
- ? (0, credential_providers_1.fromIni)({ profile: $conf.profile })
131
+ ? loadCredentialProviders($engine).fromIni({ profile: $conf.profile })
115
132
  : undefined;
116
133
  return (0, test_helper_1.onlyDefined)({ ...$conf, credentials });
117
134
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,58 @@
1
1
  {
2
2
  "name": "lemon-core",
3
- "version": "4.2.7",
3
+ "version": "5.0.0",
4
4
  "description": "Lemon Serverless Micro-Service Platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/esm/index.mjs",
11
+ "require": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./testing": {
15
+ "types": "./dist/common/test-helper.d.ts",
16
+ "import": "./dist/esm/testing.mjs",
17
+ "require": "./dist/common/test-helper.js",
18
+ "default": "./dist/common/test-helper.js"
19
+ },
20
+ "./dist/environ": {
21
+ "types": "./dist/environ.d.ts",
22
+ "import": "./dist/environ.js",
23
+ "require": "./dist/environ.js",
24
+ "default": "./dist/environ.js"
25
+ },
26
+ "./dist/cores/lambda/lambda-web-handler": {
27
+ "types": "./dist/cores/lambda/lambda-web-handler.d.ts",
28
+ "import": "./dist/cores/lambda/lambda-web-handler.js",
29
+ "require": "./dist/cores/lambda/lambda-web-handler.js",
30
+ "default": "./dist/cores/lambda/lambda-web-handler.js"
31
+ },
32
+ "./dist/extended/cores": {
33
+ "types": "./dist/extended/cores/index.d.ts",
34
+ "import": "./dist/extended/cores/index.js",
35
+ "require": "./dist/extended/cores/index.js",
36
+ "default": "./dist/extended/cores/index.js"
37
+ },
38
+ "./dist/*": {
39
+ "types": "./dist/*.d.ts",
40
+ "import": "./dist/*.js",
41
+ "require": "./dist/*.js",
42
+ "default": "./dist/*.js"
43
+ },
44
+ "./package.json": "./package.json"
45
+ },
7
46
  "scripts": {
8
- "build": "npm run fields:gen && npm run build-ts",
47
+ "build": "npm run build-ts && node scripts/gen-esm-wrapper.cjs",
9
48
  "build-ts": "tsc -v && tsc",
10
- "fields:migrate": "lemon-fields migrate --report --update-tsconfig",
11
- "fields:gen": "lemon-fields gen --report",
12
- "fields:check": "lemon-fields --check",
13
- "fields:guard-common": "lemon-fields guard-common --report",
49
+ "!v5": "------- v5 packaging gates -----",
50
+ "esm:smoke": "LS=1 node scripts/esm-smoke.mjs",
51
+ "api:names": "node scripts/api-names.cjs --out -",
52
+ "api:check": "node scripts/api-check.cjs",
53
+ "dup:check": "node scripts/dup-decls.cjs",
54
+ "l1l2:probe": "node scripts/l1l2-probe.cjs",
14
55
  "watch-ts": "tsc -w",
15
- "doc": "npm run doc:html && open dist/docs/index.html",
16
- "doc:html": "typedoc src/ --exclude **/*.spec.ts --out dist/docs",
17
- "doc:publish": "npm run doc:html && gh-pages -m \"docs(gh-pages): publish gh-pages via typedoc\" -d dist/docs",
18
56
  "lint": "tsc --noEmit && eslint '*/**/*.{js,ts,jsx,tsx}' --fix",
19
57
  "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
20
58
  "!test": "------- run self-test with vitest -----",
@@ -22,7 +60,7 @@
22
60
  "test.lemon": "ENV=lemon npm run test",
23
61
  "test:dev": "LS=1 vitest",
24
62
  "!test:watch": "---- custom test with profile -----",
25
- "test:watch": "lemon-fields guard-common && LS=1 vitest",
63
+ "test:watch": "LS=1 vitest",
26
64
  "test:watch.lemon": "ENV=lemon npm run test:watch",
27
65
  "!prepare": "------- run self-test with vitest -----",
28
66
  "prepare": "npm run build",
@@ -52,72 +90,91 @@
52
90
  "license": "MIT",
53
91
  "dependencies": {
54
92
  "@aws-sdk/client-dynamodb": "^3.971.0",
55
- "@aws-sdk/client-dynamodb-streams": "^3.971.0",
56
- "@aws-sdk/client-iam": "^3.971.0",
57
- "@aws-sdk/client-kms": "^3.971.0",
58
- "@aws-sdk/client-lambda": "^3.971.0",
59
- "@aws-sdk/client-s3": "^3.971.0",
60
- "@aws-sdk/client-sns": "^3.971.0",
61
- "@aws-sdk/client-sqs": "^3.971.0",
62
- "@aws-sdk/client-sts": "^3.971.0",
63
- "@aws-sdk/credential-providers": "^3.971.0",
64
93
  "@aws-sdk/lib-dynamodb": "^3.971.0",
65
- "@elastic/elasticsearch": "7.12",
94
+ "@opensearch-project/opensearch": "^3.9.0",
66
95
  "@types/aws-lambda": "^8.10.62",
67
- "@types/ioredis": "^4.28.10",
68
96
  "@types/jsonwebtoken": "^8.5.9",
69
97
  "async": "^3.2.4",
70
98
  "crypto-js": "^4.2.0",
71
- "ioredis": "^5.2.3",
72
99
  "js-yaml": "^4.1.1",
73
100
  "jsonwebtoken": "^9.0.3",
74
- "lemon-model": "^1.1.1",
75
- "lodash": "^4.17.21",
76
- "memcached": "^2.2.2",
101
+ "lemon-model": "^5.0.0",
77
102
  "mime-types": "^3.0.2",
78
103
  "node-cache": "^5.1.2",
79
104
  "qs": "^6.15.1",
80
105
  "query-string": "^7.1.3",
81
- "request": "^2.88.2",
82
106
  "source-map-support": "^0.5.21",
83
107
  "uuid": "^9.0.1"
84
108
  },
85
109
  "devDependencies": {
86
- "@aws-sdk/types": "^3.972.0",
87
- "@smithy/util-stream": "^3.3.4",
110
+ "@aws-sdk/client-iam": "^3.971.0",
111
+ "@aws-sdk/client-kms": "^3.971.0",
112
+ "@aws-sdk/client-lambda": "^3.971.0",
113
+ "@aws-sdk/client-s3": "^3.971.0",
114
+ "@aws-sdk/client-sns": "^3.971.0",
115
+ "@aws-sdk/client-sqs": "^3.971.0",
116
+ "@aws-sdk/client-sts": "^3.971.0",
117
+ "@aws-sdk/credential-providers": "^3.971.0",
88
118
  "@types/async": "^3.2.15",
89
119
  "@types/crypto-js": "^4.2.2",
90
120
  "@types/js-yaml": "^3.12.5",
91
- "@types/lodash": "^4.17.16",
92
- "@types/memcached": "^2.2.6",
93
121
  "@types/mime-types": "^2.1.0",
94
122
  "@types/node": "^24.12.2",
95
123
  "@types/qs": "^6.14.0",
96
- "@types/request": "^2.48.8",
97
124
  "@types/supertest": "^2.0.10",
98
125
  "@types/uuid": "^8.3.4",
99
126
  "@typescript-eslint/eslint-plugin": "^5.15.0",
100
127
  "@typescript-eslint/parser": "^5.15.0",
101
128
  "@vitest/coverage-v8": "^4.1.4",
102
- "codecov": "^3.7.2",
103
129
  "concurrently": "^5.3.0",
104
- "dotenv": "^8.2.0",
105
130
  "eslint": "^8.23.1",
106
131
  "eslint-config-prettier": "^8.5.0",
107
132
  "eslint-plugin-prettier": "^4.0.0",
108
133
  "faker": "^4.1.0",
109
- "gh-pages": "^5.0.0",
110
- "husky": "^8.0.3",
111
- "lemon-devkit": "^0.0.11",
134
+ "lemon-devkit": "^0.2.1",
112
135
  "lint-staged": "^13.1.0",
113
136
  "prettier": "^2.7.1",
114
- "superagent": "^5.3.1",
115
- "supertest": "^4.0.2",
137
+ "supertest": "^7.3.1",
116
138
  "ts-node": "^8.10.2",
117
- "typedoc": "^0.28.19",
118
139
  "typescript": "^5.9.3",
119
140
  "vitest": "^4.1.4"
120
141
  },
142
+ "peerDependencies": {
143
+ "@aws-sdk/client-iam": "^3.971.0",
144
+ "@aws-sdk/client-kms": "^3.971.0",
145
+ "@aws-sdk/client-lambda": "^3.971.0",
146
+ "@aws-sdk/client-s3": "^3.971.0",
147
+ "@aws-sdk/client-sns": "^3.971.0",
148
+ "@aws-sdk/client-sqs": "^3.971.0",
149
+ "@aws-sdk/client-sts": "^3.971.0",
150
+ "@aws-sdk/credential-providers": "^3.971.0"
151
+ },
152
+ "peerDependenciesMeta": {
153
+ "@aws-sdk/client-iam": {
154
+ "optional": true
155
+ },
156
+ "@aws-sdk/client-kms": {
157
+ "optional": true
158
+ },
159
+ "@aws-sdk/client-lambda": {
160
+ "optional": true
161
+ },
162
+ "@aws-sdk/client-s3": {
163
+ "optional": true
164
+ },
165
+ "@aws-sdk/client-sns": {
166
+ "optional": true
167
+ },
168
+ "@aws-sdk/client-sqs": {
169
+ "optional": true
170
+ },
171
+ "@aws-sdk/client-sts": {
172
+ "optional": true
173
+ },
174
+ "@aws-sdk/credential-providers": {
175
+ "optional": true
176
+ }
177
+ },
121
178
  "private": false,
122
179
  "repository": {
123
180
  "type": "git",
@@ -1,183 +0,0 @@
1
- /**
2
- * `redis-storage-services.ts`
3
- * - storage implementation on redis backend
4
- *
5
- * @author Tim Hong <tim@lemoncloud.io>
6
- * @date 2020-12-08 initial version
7
- *
8
- * @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
9
- */
10
- import { Redis } from 'ioredis';
11
- import { StorageService, StorageModel } from './storage-service';
12
- /** ********************************************************************************************************************
13
- * Exported Types
14
- ** ********************************************************************************************************************/
15
- /**
16
- * type `RedisOptions`
17
- */
18
- export interface RedisOptions {
19
- /**
20
- * (optional) cache server endpoint
21
- */
22
- endpoint?: string;
23
- /**
24
- * (optional) virtual table name used as key prefix
25
- */
26
- tableName: string | number;
27
- /**
28
- * (optional) default time to live of a model in seconds. 0 for unlimited (default: 0)
29
- */
30
- defTimeout?: number;
31
- }
32
- /** ********************************************************************************************************************
33
- * Exported Class
34
- ** ********************************************************************************************************************/
35
- /**
36
- * class `RedisStorageService`
37
- */
38
- export declare class RedisStorageService<T extends StorageModel> implements StorageService<T> {
39
- /**
40
- * Environment variable name for redis server endpoint
41
- * @static
42
- */
43
- static readonly ENV_REDIS_ENDPOINT = "MY_REDIS_ENDPOINT";
44
- /**
45
- * Maximum retry count of check-and-save behavior
46
- * @static
47
- */
48
- static readonly CAS_MAX_RETRIES = 5;
49
- /**
50
- * ioredis client
51
- * @protected
52
- */
53
- protected readonly redis: Redis;
54
- /**
55
- * Virtual table name
56
- * @private
57
- */
58
- readonly tableName: string;
59
- /**
60
- * Default time to live of a model
61
- * @private
62
- */
63
- readonly ttl: number;
64
- /**
65
- * Public constructor
66
- *
67
- * @options redis options
68
- */
69
- constructor(options: RedisOptions);
70
- /**
71
- * Say hello
72
- */
73
- hello(): string;
74
- /**
75
- * Disconnect from redis
76
- */
77
- quit(): Promise<void>;
78
- /**
79
- * Read model by id
80
- *
81
- * @param id
82
- */
83
- read(id: string): Promise<T>;
84
- /**
85
- * Read model or create if id does not exist
86
- *
87
- * @param id
88
- * @param model
89
- */
90
- readOrCreate(id: string, model: T): Promise<T>;
91
- /**
92
- * Create model and overwrite if id exists
93
- *
94
- * @param id
95
- * @param model
96
- */
97
- save(id: string, model: T): Promise<T>;
98
- /**
99
- * Update existing model and create if id does not exist
100
- * @param id
101
- * @param update model to update
102
- * @param increment (optional) model to increment
103
- */
104
- update(id: string, update: T, increment?: T): Promise<T>;
105
- /**
106
- * Increment the integer value of a key
107
- *
108
- * @param id
109
- * @param increment model to increment
110
- * @param update (optional) model to update
111
- */
112
- increment(id: string, increment: T, update?: T): Promise<T>;
113
- /**
114
- * Delete a key
115
- *
116
- * @param id
117
- * @return true on success
118
- */
119
- delete(id: string): Promise<T>;
120
- /**
121
- * Get redis key from id
122
- * @param id
123
- * @protected
124
- */
125
- asKey(id: string): string;
126
- /**
127
- * Serialize model into internal data
128
- * @param model
129
- * @protected
130
- */
131
- serialize(model: T): Record<string, string>;
132
- /**
133
- * Deserialize internal data into model
134
- * @param data
135
- * @protected
136
- */
137
- deserialize(data: Record<string, string>): T;
138
- /**
139
- * Update key w/ check-and-save behavior and retries
140
- * @param id
141
- * @param update (optional) model to update
142
- * @param increment (optional) model to increment
143
- * @private
144
- */
145
- private updateCAS;
146
- /**
147
- * Prepare new model - original model + update + increment
148
- * @param orig
149
- * @param update
150
- * @param increment
151
- * @private
152
- */
153
- private prepareUpdatedModel;
154
- /**
155
- * Check transaction results and throw if error occurred
156
- * @param results transaction pipeline execution results
157
- * @private
158
- */
159
- private static throwIfTransactionError;
160
- }
161
- /**
162
- * class `DummyRedisStorageService`
163
- * - Use local redis server and non-default logical database
164
- */
165
- export declare class DummyRedisStorageService<T extends StorageModel> extends RedisStorageService<T> {
166
- /**
167
- * Database index. Each DummyRedisStorageService uses different logical database.
168
- * @private
169
- */
170
- private static dbIndex;
171
- /**
172
- * Public constructor
173
- */
174
- constructor();
175
- /**
176
- * Say hello
177
- */
178
- hello(): string;
179
- /**
180
- * Delete all data in database
181
- */
182
- truncate(): Promise<void>;
183
- }