lemon-core 5.0.9 → 5.0.11

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 CHANGED
@@ -1,4 +1,3 @@
1
- [![codecov](https://codecov.io/gh/lemoncloud-io/lemon-core/branch/master/graph/badge.svg)](https://codecov.io/gh/lemoncloud-io/lemon-core)
2
1
  [![npm version](https://badge.fury.io/js/lemon-core.svg)](https://badge.fury.io/js/lemon-core)
3
2
  [![GitHub version](https://badge.fury.io/gh/lemoncloud-io%2Flemon-core.svg)](https://badge.fury.io/gh/lemoncloud-io%2Flemon-core)
4
3
 
@@ -6,8 +5,8 @@
6
5
 
7
6
  Bootloader for serverless micro-services on AWS Lambda: one function, several event sources, an engine with modules, a protocol service.
8
7
  This README is the entry point for people and AI agents; every path and command below is in this repo. `§` refers to `HOW_TO_UPGRADE_V5.md`.
9
- v5 status: npm `latest` is `5.0.8` (2026-10-30; B15 + lemon-model 5.0.2). The `v5` branch holds all 5.x work; `develop` is the default branch.
10
- `CONTRIBUTING.md` describes the `develop` flow; 5.x changes are merged into `v5` until it lands on `develop`.
8
+ v5 status: npm `latest` is `5.0.10` (2026-10-30; B16-b shims + lemon-model `5.0.2` exact pin). The `v5` branch holds all 5.x work; `develop` is the default branch.
9
+ `CONTRIBUTING.md` § Branching describes both flows: `develop` for 4.x, `v5` for 5.x (merged into `v5` until it lands on `develop`).
11
10
 
12
11
  ## At a glance
13
12
 
@@ -16,7 +15,7 @@ v5 status: npm `latest` is `5.0.8` (2026-10-30; B15 + lemon-model 5.0.2). The `v
16
15
  | Runtime | Node `>=24.0.0` (`engines.node`), `.nvmrc` `24.15.0` |
17
16
  | Build | TypeScript `^5.9.3`. `npm run build` = `build-ts` (`tsc`) + `scripts/gen-esm-wrapper.cjs` |
18
17
  | Tests | vitest `^4.1.4`: `src/**/*.spec.ts`, `bin/**/*.spec.mjs` (`vitest.config.ts`) |
19
- | Formats | CJS `dist/` + ESM `dist/esm/*.mjs`. `exports`: `.`, `./testing`, `./model` (unreleased, B16), `./dist/environ`, `./dist/cores/lambda/lambda-web-handler`, `./dist/extended/cores`, `./dist/*` (until v6), `./package.json` |
18
+ | Formats | CJS `dist/` + ESM `dist/esm/*.mjs`. `exports`: `.`, `./testing`, `./model` (5.0.9; shim folders for moduleResolution=node/Jest 27 unreleased), `./dist/environ`, `./dist/cores/lambda/lambda-web-handler`, `./dist/extended/cores`, `./dist/*` (until v6), `./package.json` |
20
19
  | Dependencies | `@aws-sdk/client-dynamodb, @aws-sdk/lib-dynamodb, @opensearch-project/opensearch, @smithy/signature-v4, @types/aws-lambda, @types/jsonwebtoken, async, crypto-js, js-yaml, jsonwebtoken, lemon-model, mime-types, node-cache, qs, source-map-support` |
21
20
  | Optional peers | 8 AWS SDK packages `^3.1159.0`, loaded on first use. `typescript` `>=4.7` (CLI) |
22
21
  | Published | `files`: `dist/**/*`, `bin/lemon-fields-types.mjs`, `bin/lib/fields-types.mjs`. CLI `lemon-fields-types` (since 5.0.5; see § 13.5) |
@@ -33,14 +32,14 @@ v5 status: npm `latest` is `5.0.8` (2026-10-30; B15 + lemon-model 5.0.2). The `v
33
32
  | `src/extended/` | `CoreService`, `ManagerProxy`; `cores/`: template layer (`MyCoreService`, `checkFieldsAdmin()`) | Developer |
34
33
  | `src/controllers/`, `tools/`, `helpers/` | Controllers, `express`, `$T`, `$protocol()` | Developer |
35
34
  | `src/lib/` | Internal: `safe-json`, `log-mask`, `qs-compat`, `http-fetch`, `lazy`, `perf`. `lib` barrel: `dynamodb-value` only | Developer. Internal; never re-exported from a barrel |
36
- | `src/common/test-helper.ts`, `src/environ.ts`, `src/model.ts` | Sub-paths `lemon-core/testing`, `lemon-core/dist/environ`, `lemon-core/model` (B16) | Rarely; all are published sub-paths |
35
+ | `src/common/test-helper.ts`, `src/environ.ts`, `src/model.ts`, `model/`, `testing/` shim folders | Sub-paths `lemon-core/testing`, `lemon-core/dist/environ`, `lemon-core/model` (B16) | Rarely; all are published sub-paths |
37
36
  | `bin/` | `lemon-fields-types` CLI, `lib/` logic, spec, fixtures | Developer |
38
37
  | `scripts/` | Build and API gates, lazy-load probes | Developer |
39
38
  | `etc/api-names.v4.txt`, `etc/api-names.allow.txt` | v4 public-name baseline; allowed `+Name`/`-Name` | The baseline stays; add lines to the allow list only |
40
39
  | `env/` | Configuration profiles | **Agents do not open it** |
41
40
  | `docs/v5/`, `docs/specs/` | v5 design record (B0–B14); `$T`/`$U` specs | Updated with the change they describe |
42
41
  | `dist/`, `coverage/` | Build and test output, ignored by git | **Never edited by hand** |
43
- | `.github/workflows/` | `docgen.yaml`: typedoc on push to `develop`. No test job | A person |
42
+ | `.github/workflows/` | None since B17 (`docgen.yaml` and the old CI config removed). No CI job; the gates run locally | A person |
44
43
 
45
44
  ## Request flow
46
45
 
@@ -204,10 +203,11 @@ npm audit --omit=dev # found 0 vulnerabilities
204
203
  | [B14-relay-context-impl.md](docs/v5/B14-relay-context-impl.md) | B14 implementation record (WP1–WP3): lemon-model `channel`/`trace`, `protocol-relay.ts`, entry changes (Korean) |
205
204
  | [B15-security.md](docs/v5/B15-security.md) | B15: cross-cloud `cid`, list `view`, internal admin, policy keys `internal`/`cross` |
206
205
  | [B16-model-subpath.md](docs/v5/B16-model-subpath.md) | B16: sub-path `lemon-core/model` (all of lemon-model), exact lemon-model pin, consumer rule |
206
+ | [B17-repo-hygiene.md](docs/v5/B17-repo-hygiene.md) | B17: the old CI config and the typedoc workflow removed (token rotation by the owner), `CONTRIBUTING.md` `v5` flow |
207
207
  | [docs/specs/](docs/specs/) | `$T`, `$U` characterization specs |
208
208
  | [docs/header-identity-token.md](docs/header-identity-token.md) | Identity token header |
209
209
  | [CONTRIBUTING](CONTRIBUTING.md), [SECURITY](SECURITY.md), [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) | PR process; supported versions; conduct |
210
- | [CHANGELOG.md](CHANGELOG.md) | 5.0.5–5.0.8 entries (B10, B13, B14, B15), then stops at 1.2.0 (2019); see VERSION INFO |
210
+ | [CHANGELOG.md](CHANGELOG.md) | 5.0.5–5.0.10 entries (B10, B13, B14, B15, B16), then stops at 1.2.0 (2019); see VERSION INFO |
211
211
 
212
212
  ## Contribution
213
213
 
@@ -225,6 +225,8 @@ See [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)
225
225
 
226
226
  | Version | Description
227
227
  |-- |--
228
+ | 5.0.10 | B16-b resolution shims `model/`·`testing/` for `moduleResolution: node` and Jest 27 (§ 16).
229
+ | 5.0.9 | B16 sub-path `lemon-core/model` (`export * from 'lemon-model'`), lemon-model pinned exact `5.0.2` (D73).
228
230
  | 5.0.8 | B15 security follow-up (§ 11.7, § 15.2); lemon-model `^5.0.2`.
229
231
  | 5.0.7 | Re-publish of 5.0.6 (same source).
230
232
  | 5.0.6 | B13 default data-access policy of `AbstractCRUDController` (§ 11.7); B14 `context.channel`, signed relay `x-lemon-relay`, `TRACE` line, `x-protocol-context` deprecated (§ 15); README rewritten as the v5 entry point; lemon-model `^5.0.1`.
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "lemon-core-model",
3
+ "private": true,
4
+ "description": "v5 B16-b: resolution shim for `lemon-core/model` under moduleResolution=node / Jest 27 (Node itself uses the exports map).",
5
+ "main": "../dist/model.js",
6
+ "types": "../dist/model.d.ts"
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lemon-core",
3
- "version": "5.0.9",
3
+ "version": "5.0.11",
4
4
  "description": "Lemon Serverless Micro-Service Platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -93,7 +93,9 @@
93
93
  "files": [
94
94
  "dist/**/*",
95
95
  "bin/lemon-fields-types.mjs",
96
- "bin/lib/fields-types.mjs"
96
+ "bin/lib/fields-types.mjs",
97
+ "model/package.json",
98
+ "testing/package.json"
97
99
  ],
98
100
  "engines": {
99
101
  "node": ">=24.0.0"
@@ -111,7 +113,7 @@
111
113
  "crypto-js": "^4.2.0",
112
114
  "js-yaml": "^4.1.1",
113
115
  "jsonwebtoken": "^9.0.3",
114
- "lemon-model": "5.0.2",
116
+ "lemon-model": "5.0.4",
115
117
  "mime-types": "^3.0.2",
116
118
  "node-cache": "^5.1.2",
117
119
  "qs": "^6.16.2",
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "lemon-core-testing",
3
+ "private": true,
4
+ "description": "v5 B16-b: resolution shim for `lemon-core/testing` under moduleResolution=node / Jest 27 (Node itself uses the exports map).",
5
+ "main": "../dist/common/test-helper.js",
6
+ "types": "../dist/common/test-helper.d.ts"
7
+ }