lemon-core 5.0.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/dist/cores/storage/model-manager.d.ts +2 -0
- package/dist/cores/storage/model-manager.js +4 -0
- package/dist/cores/storage/model-manager.js.map +1 -1
- package/dist/engine/engine.js +4 -4
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/utilities.d.ts +11 -2
- package/dist/engine/utilities.js +32 -9
- package/dist/engine/utilities.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/extended/cores/abstract-controllers.d.ts +25 -0
- package/dist/extended/cores/abstract-controllers.js +70 -0
- package/dist/extended/cores/abstract-controllers.js.map +1 -1
- package/dist/extended/cores/abstract-services.js +17 -5
- package/dist/extended/cores/abstract-services.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/package.json +1 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `fields-admin.ts`
|
|
4
|
+
* - v5 B4: the one verifier of the `GET /<type>/fields/admin` report.
|
|
5
|
+
* - used by the server's own self-check (`doGetAdminFields()`) and by every test or harness
|
|
6
|
+
* (vitest, express, jest, local server, deployed Lambda), so all of them check the same rules.
|
|
7
|
+
* - pure: no imports, so `lemon-core/dist/extended/cores/fields-admin` loads without the engine.
|
|
8
|
+
*
|
|
9
|
+
* @author Steve <steve@lemoncloud.io>
|
|
10
|
+
* @date 2026-10-28 v5 B4: `checkFieldsAdmin()` as the single verifier of `fields/admin`.
|
|
11
|
+
*
|
|
12
|
+
* @copyright (C) 2026 LemonCloud Co Ltd. - All Rights Reserved.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.checkFieldsAdmin = void 0;
|
|
16
|
+
//* the three list names, in report order.
|
|
17
|
+
const LISTS = ['core', 'fields', 'extra'];
|
|
18
|
+
//* true if the value is a plain (non-array) object.
|
|
19
|
+
const isObject = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
|
|
20
|
+
//* true if the value is an array of non-empty strings.
|
|
21
|
+
const isNames = (v) => Array.isArray(v) && v.every(k => typeof k === 'string' && k.length > 0);
|
|
22
|
+
//* names that appear more than once (each extra occurrence).
|
|
23
|
+
const dupsOf = (list) => list.filter((k, i) => list.indexOf(k) !== i);
|
|
24
|
+
//* short text of a value for a message.
|
|
25
|
+
const textOf = (v) => (Array.isArray(v) ? v.join(',') : v === undefined ? 'undefined' : `${v}`);
|
|
26
|
+
/**
|
|
27
|
+
* check a `fields/admin` report, and the optional expectations.
|
|
28
|
+
* - each failed check is one short line in `issues`; `ok = issues.length === 0`.
|
|
29
|
+
* - order: (a) structure, (b) content self-checks, (c) expectations.
|
|
30
|
+
* - the report's own non-empty `issues` add one line; (b) runs on the lists, so a tampered
|
|
31
|
+
* report with `ok: true` and `issues: []` still fails.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* const res = await request(app).get('/pets/fields/admin');
|
|
35
|
+
* const { ok, issues } = checkFieldsAdmin(res.body, { type: 'pets', source: 'class', runtime: { lambda: false } });
|
|
36
|
+
* if (!ok) console.error(issues.join('\n'));
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
const checkFieldsAdmin = (report, expect) => {
|
|
40
|
+
const issues = [];
|
|
41
|
+
const add = (line) => issues.push(line);
|
|
42
|
+
if (!isObject(report)) {
|
|
43
|
+
add('report is not an object');
|
|
44
|
+
return { ok: false, issues };
|
|
45
|
+
}
|
|
46
|
+
const R = report;
|
|
47
|
+
//* (a) structure: id, the three lists, counts, extra, source, issues/ok, runtime.
|
|
48
|
+
if (R.id !== 'fields')
|
|
49
|
+
add(`id is not fields: ${textOf(R.id)}`);
|
|
50
|
+
LISTS.forEach(k => !isNames(R[k]) && add(`${k} is not a list of names`));
|
|
51
|
+
const lists = isNames(R.core) && isNames(R.fields) && isNames(R.extra);
|
|
52
|
+
if (!isObject(R.counts))
|
|
53
|
+
add('counts is not an object');
|
|
54
|
+
else
|
|
55
|
+
LISTS.forEach(k => {
|
|
56
|
+
//* a broken list is already reported above.
|
|
57
|
+
if (Array.isArray(R[k]) && R.counts[k] !== R[k].length)
|
|
58
|
+
add(`counts.${k}=${textOf(R.counts[k])} but ${k} has ${R[k].length}`);
|
|
59
|
+
});
|
|
60
|
+
if (lists) {
|
|
61
|
+
const expected = R.fields.filter((k) => !R.core.includes(k));
|
|
62
|
+
if (expected.join(',') !== R.extra.join(','))
|
|
63
|
+
add(`extra=${R.extra.join(',')} but fields minus core=${expected.join(',')}`);
|
|
64
|
+
}
|
|
65
|
+
if (R.source !== 'class' && R.source !== 'list')
|
|
66
|
+
add(`source is not class|list: ${textOf(R.source)}`);
|
|
67
|
+
const own = Array.isArray(R.issues) && R.issues.every((s) => typeof s === 'string');
|
|
68
|
+
if (!own)
|
|
69
|
+
add('issues is not a list of strings');
|
|
70
|
+
else if (R.ok !== (R.issues.length === 0))
|
|
71
|
+
add(`ok=${textOf(R.ok)} but issues has ${R.issues.length}`);
|
|
72
|
+
const T = R.runtime;
|
|
73
|
+
if (!isObject(T))
|
|
74
|
+
add('runtime is not an object');
|
|
75
|
+
else {
|
|
76
|
+
['local', 'external'].forEach(k => typeof T[k] !== 'boolean' && add(`runtime.${k} is not boolean`));
|
|
77
|
+
if (!(T.lambda === null || (typeof T.lambda === 'string' && T.lambda.length > 0)))
|
|
78
|
+
add(`runtime.lambda is not null or a name: ${textOf(T.lambda)}`);
|
|
79
|
+
if (!(typeof T.node === 'string' && /^v\d+\.\d+\.\d+/.test(T.node)))
|
|
80
|
+
add(`runtime.node is not a version: ${textOf(T.node)}`);
|
|
81
|
+
if (!(typeof T.lemonCore === 'string' && /^\d+\.\d+\.\d+/.test(T.lemonCore)))
|
|
82
|
+
add(`runtime.lemonCore is not a version: ${textOf(T.lemonCore)}`);
|
|
83
|
+
}
|
|
84
|
+
//* (b) content self-checks on the lists (the server's own `issues`).
|
|
85
|
+
const core = isNames(R.core) ? R.core : [];
|
|
86
|
+
const fields = isNames(R.fields) ? R.fields : [];
|
|
87
|
+
if (isNames(R.core)) {
|
|
88
|
+
if (core.length < 14)
|
|
89
|
+
add(`core has ${core.length} names (< 14)`);
|
|
90
|
+
['id', '_id'].forEach(k => !core.includes(k) && add(`core misses ${k}`));
|
|
91
|
+
if (dupsOf(core).length)
|
|
92
|
+
add(`core has duplicates: ${dupsOf(core).join(',')}`);
|
|
93
|
+
}
|
|
94
|
+
if (isNames(R.fields)) {
|
|
95
|
+
if (!fields.length)
|
|
96
|
+
add('fields is empty');
|
|
97
|
+
if (dupsOf(fields).length)
|
|
98
|
+
add(`fields has duplicates: ${dupsOf(fields).join(',')}`);
|
|
99
|
+
}
|
|
100
|
+
//* a class-fed manager inherits all core fields; a list may filter some (ex: `$`, `_id`) by design.
|
|
101
|
+
if (lists && R.source === 'class') {
|
|
102
|
+
const missing = core.filter(k => !fields.includes(k));
|
|
103
|
+
if (missing.length)
|
|
104
|
+
add(`fields misses core: ${missing.join(',')}`);
|
|
105
|
+
}
|
|
106
|
+
//* the report's own issues, as one line.
|
|
107
|
+
if (own && R.issues.length)
|
|
108
|
+
add(`report has ${R.issues.length} issues: ${R.issues.join('; ')}`);
|
|
109
|
+
//* (c) expectations: only the given keys.
|
|
110
|
+
const E = expect ?? {};
|
|
111
|
+
const same = (name, want, got) => textOf(want) !== textOf(got) && add(`expected ${name}=${textOf(want)} got ${textOf(got)}`);
|
|
112
|
+
if (E.type !== undefined)
|
|
113
|
+
same('type', E.type, R.type);
|
|
114
|
+
if (E.model !== undefined)
|
|
115
|
+
same('model', E.model, R.model);
|
|
116
|
+
if (E.source !== undefined)
|
|
117
|
+
same('source', E.source, R.source);
|
|
118
|
+
if (E.counts)
|
|
119
|
+
LISTS.forEach(k => E.counts[k] !== undefined && same(`counts.${k}`, E.counts[k], R.counts?.[k]));
|
|
120
|
+
if (E.extra)
|
|
121
|
+
same('extra', E.extra, R.extra);
|
|
122
|
+
if (E.core)
|
|
123
|
+
same('core', E.core, R.core);
|
|
124
|
+
if (E.lemonCore !== undefined)
|
|
125
|
+
same('lemonCore', E.lemonCore, T?.lemonCore);
|
|
126
|
+
if (E.runtime?.local !== undefined)
|
|
127
|
+
same('runtime.local', E.runtime.local, T?.local);
|
|
128
|
+
if (E.runtime?.external !== undefined)
|
|
129
|
+
same('runtime.external', E.runtime.external, T?.external);
|
|
130
|
+
//* lambda: `true` = any name, `false` = null, a string = exact.
|
|
131
|
+
const lambda = E.runtime?.lambda;
|
|
132
|
+
const gotLambda = T?.lambda;
|
|
133
|
+
if (lambda === true && !(typeof gotLambda === 'string' && gotLambda.length > 0))
|
|
134
|
+
add(`expected runtime.lambda=<name> got ${textOf(gotLambda)}`);
|
|
135
|
+
if (lambda === false && gotLambda !== null)
|
|
136
|
+
add(`expected runtime.lambda=null got ${textOf(gotLambda)}`);
|
|
137
|
+
if (typeof lambda === 'string' && gotLambda !== lambda)
|
|
138
|
+
add(`expected runtime.lambda=${lambda} got ${textOf(gotLambda)}`);
|
|
139
|
+
return { ok: issues.length === 0, issues };
|
|
140
|
+
};
|
|
141
|
+
exports.checkFieldsAdmin = checkFieldsAdmin;
|
|
142
|
+
//# sourceMappingURL=fields-admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields-admin.js","sourceRoot":"","sources":["../../../src/extended/cores/fields-admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @author Steve <steve@lemoncloud.io>
|
|
6
6
|
* @date 2022-06-21 optimized w/ `abstract-services`
|
|
7
|
+
* @date 2026-10-28 v5 B4: export `checkFieldsAdmin()` (`fields-admin`).
|
|
7
8
|
*
|
|
8
9
|
* @copyright (C) 2022 LemonCloud Co Ltd. - All Rights Reserved.
|
|
9
10
|
* @origin `@lemoncloud/lemon-templates-api/cores`
|
|
@@ -13,3 +14,4 @@ export * from './commons';
|
|
|
13
14
|
export * from './abstract-services';
|
|
14
15
|
export * from './abstract-controllers';
|
|
15
16
|
export * from './abstract-rest-apis';
|
|
17
|
+
export * from './fields-admin';
|
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
*
|
|
21
21
|
* @author Steve <steve@lemoncloud.io>
|
|
22
22
|
* @date 2022-06-21 optimized w/ `abstract-services`
|
|
23
|
+
* @date 2026-10-28 v5 B4: export `checkFieldsAdmin()` (`fields-admin`).
|
|
23
24
|
*
|
|
24
25
|
* @copyright (C) 2022 LemonCloud Co Ltd. - All Rights Reserved.
|
|
25
26
|
* @origin `@lemoncloud/lemon-templates-api/cores`
|
|
@@ -29,4 +30,5 @@ __exportStar(require("./commons"), exports);
|
|
|
29
30
|
__exportStar(require("./abstract-services"), exports);
|
|
30
31
|
__exportStar(require("./abstract-controllers"), exports);
|
|
31
32
|
__exportStar(require("./abstract-rest-apis"), exports);
|
|
33
|
+
__exportStar(require("./fields-admin"), exports);
|
|
32
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extended/cores/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extended/cores/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,0CAAwB;AACxB,4CAA0B;AAC1B,sDAAoC;AACpC,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B"}
|