@kollors/deep-json-server 1.0.0-beta.2 → 1.0.0-beta.4
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 +7 -3
- package/README.ru.md +7 -3
- package/dist/src/auth/password.js +1 -1
- package/dist/src/auth/password.js.map +1 -1
- package/dist/src/auth/service.d.ts +1 -1
- package/dist/src/auth/service.js +2 -2
- package/dist/src/auth/service.js.map +1 -1
- package/dist/src/cli/index.js +8 -2
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/core/constants.d.ts +1 -1
- package/dist/src/core/constants.js +1 -1
- package/dist/src/core/database.d.ts +14 -10
- package/dist/src/core/database.js +41 -19
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/engine.d.ts +10 -8
- package/dist/src/core/engine.js +42 -30
- package/dist/src/core/engine.js.map +1 -1
- package/dist/src/core/lifecycle/mutation.d.ts +6 -6
- package/dist/src/core/lifecycle/mutation.js +36 -11
- package/dist/src/core/lifecycle/mutation.js.map +1 -1
- package/dist/src/core/lifecycle/options.d.ts +3 -3
- package/dist/src/core/lifecycle/options.js.map +1 -1
- package/dist/src/core/model/infer.d.ts +7 -0
- package/dist/src/core/model/infer.js +88 -0
- package/dist/src/core/model/infer.js.map +1 -0
- package/dist/src/core/model/load.d.ts +9 -0
- package/dist/src/core/model/load.js +224 -0
- package/dist/src/core/model/load.js.map +1 -0
- package/dist/src/core/model/policy.d.ts +15 -0
- package/dist/src/core/model/policy.js +29 -0
- package/dist/src/core/model/policy.js.map +1 -0
- package/dist/src/core/model/tree.d.ts +68 -0
- package/dist/src/core/model/tree.js +168 -0
- package/dist/src/core/model/tree.js.map +1 -0
- package/dist/src/core/model/types.d.ts +82 -0
- package/dist/src/core/model/types.js +2 -0
- package/dist/src/core/model/types.js.map +1 -0
- package/dist/src/core/model/validation.d.ts +24 -0
- package/dist/src/core/model/validation.js +99 -0
- package/dist/src/core/model/validation.js.map +1 -0
- package/dist/src/core/model.d.ts +6 -146
- package/dist/src/core/model.js +6 -534
- package/dist/src/core/model.js.map +1 -1
- package/dist/src/core/mutations/write.d.ts +34 -1
- package/dist/src/core/mutations/write.js +48 -13
- package/dist/src/core/mutations/write.js.map +1 -1
- package/dist/src/core/paths.d.ts +0 -8
- package/dist/src/core/paths.js +3 -19
- package/dist/src/core/paths.js.map +1 -1
- package/dist/src/core/query/contract.d.ts +1 -1
- package/dist/src/core/query/execute.d.ts +1 -1
- package/dist/src/core/query/execute.js +3 -3
- package/dist/src/core/query/execute.js.map +1 -1
- package/dist/src/core/query/filter.d.ts +1 -1
- package/dist/src/core/query/filter.js +6 -7
- package/dist/src/core/query/filter.js.map +1 -1
- package/dist/src/core/query/options.d.ts +1 -1
- package/dist/src/core/query/options.js +2 -2
- package/dist/src/core/query/options.js.map +1 -1
- package/dist/src/core/records.d.ts +13 -13
- package/dist/src/core/records.js +5 -4
- package/dist/src/core/records.js.map +1 -1
- package/dist/src/core/relation-metadata.js +1 -1
- package/dist/src/core/relation-metadata.js.map +1 -1
- package/dist/src/core/schema.d.ts +33 -0
- package/dist/src/core/schema.js +2 -0
- package/dist/src/core/schema.js.map +1 -0
- package/dist/src/core/snapshot.d.ts +11 -0
- package/dist/src/core/snapshot.js +14 -0
- package/dist/src/core/snapshot.js.map +1 -0
- package/dist/src/core/types.d.ts +5 -0
- package/dist/src/core/utils.d.ts +4 -0
- package/dist/src/core/utils.js +8 -0
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/files/contract.js +3 -1
- package/dist/src/files/contract.js.map +1 -1
- package/dist/src/files/http.d.ts +46 -2
- package/dist/src/files/http.js.map +1 -1
- package/dist/src/graphql/entry.d.ts +2 -2
- package/dist/src/graphql/entry.js +2 -2
- package/dist/src/graphql/generate.js +1 -2
- package/dist/src/graphql/generate.js.map +1 -1
- package/dist/src/graphql/preflight.js +2 -1
- package/dist/src/graphql/preflight.js.map +1 -1
- package/dist/src/graphql/resolvers.js +6 -3
- package/dist/src/graphql/resolvers.js.map +1 -1
- package/dist/src/graphql/schema.d.ts +1 -1
- package/dist/src/graphql/schema.js +3 -3
- package/dist/src/graphql/schema.js.map +1 -1
- package/dist/src/openapi/auth.d.ts +2 -8
- package/dist/src/openapi/auth.js.map +1 -1
- package/dist/src/openapi/document.d.ts +2 -1
- package/dist/src/openapi/document.js +40 -22
- package/dist/src/openapi/document.js.map +1 -1
- package/dist/src/openapi/entry.d.ts +2 -2
- package/dist/src/openapi/entry.js +2 -2
- package/dist/src/openapi/files.d.ts +2 -3
- package/dist/src/openapi/files.js.map +1 -1
- package/dist/src/openapi/helpers.d.ts +3 -16
- package/dist/src/openapi/helpers.js.map +1 -1
- package/dist/src/openapi/types.d.ts +50 -29
- package/dist/src/rest/options.d.ts +2 -2
- package/dist/src/rest/options.js +3 -3
- package/dist/src/rest/options.js.map +1 -1
- package/dist/src/rest/projection.d.ts +6 -3
- package/dist/src/rest/projection.js +17 -10
- package/dist/src/rest/projection.js.map +1 -1
- package/dist/src/rest/routes.js +6 -6
- package/dist/src/rest/routes.js.map +1 -1
- package/dist/src/server/bootstrap.js +1 -1
- package/dist/src/server/bootstrap.js.map +1 -1
- package/dist/src/server/config.d.ts +10 -6
- package/dist/src/server/config.js +39 -37
- package/dist/src/server/config.js.map +1 -1
- package/dist/src/server/http.d.ts +1 -1
- package/dist/src/server/http.js +4 -3
- package/dist/src/server/http.js.map +1 -1
- package/dist/src/server/input-paths.d.ts +8 -0
- package/dist/src/server/input-paths.js +19 -0
- package/dist/src/server/input-paths.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/openapi/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,QAAQ,GAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AACtI,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC;QACvC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;KACnG;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAClC,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1F,QAAQ;SACT;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,aAAa,CAAC;QACzB,UAAU,EAAE,EAAE,eAAe,EAAE,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,qEAAqE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;KAC5J;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;KAC7C;IACD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC;QAC9C,UAAU,EAAE;YACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YAC1C,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;SACtB;KACF;IACD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;CAClI,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/openapi/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Model } from '../core/model.js';
|
|
2
|
+
import type { OpenapiInfo } from './options.js';
|
|
2
3
|
import type { OpenapiDocument } from './types.js';
|
|
3
4
|
/** Строит документ с маршрутами и схемами записей, включая выбранные дополнительные маршруты.
|
|
4
5
|
* @example { model, files: true } → документ с paths['/_files/storage'].
|
|
@@ -9,5 +10,5 @@ export declare function buildOpenapiDocument({ model, files, auth, pageSize, max
|
|
|
9
10
|
auth?: boolean;
|
|
10
11
|
pageSize?: number;
|
|
11
12
|
maxPageSize?: number;
|
|
12
|
-
info?:
|
|
13
|
+
info?: OpenapiInfo;
|
|
13
14
|
}): OpenapiDocument;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { VERSION } from '../core/constants.js';
|
|
2
|
-
import { assertApi, canonicalNode, nodeName, objectSchema, operationName, relationInputSchema, valueSchema } from '../core/model.js';
|
|
2
|
+
import { assertApi, canonicalNode, fieldAt, nodeName, objectSchema, operationName, relationInputSchema, valueSchema, } from '../core/model.js';
|
|
3
3
|
import { MUTATIONS } from '../core/operations.js';
|
|
4
4
|
import { normalizePagination } from '../core/pagination.js';
|
|
5
5
|
import { operatorsFor } from '../core/query/contract.js';
|
|
6
6
|
import { sortableFields } from '../core/query/options.js';
|
|
7
|
-
import { capitalize, isObject } from '../core/utils.js';
|
|
7
|
+
import { capitalize, defined, isObject } from '../core/utils.js';
|
|
8
8
|
import { FILE_HEADERS, FILE_METADATA_SCHEMA, FILE_UPDATE_SCHEMA } from '../files/http.js';
|
|
9
9
|
import { AUTH_SCHEMAS, AUTH_SECURITY_SCHEMES, authOpenapiPaths } from './auth.js';
|
|
10
10
|
import { createFilePaths } from './files.js';
|
|
@@ -14,18 +14,36 @@ import { OpenapiRegistry } from './registry.js';
|
|
|
14
14
|
* @example { anyOf: [{ type: 'string' }, { type: 'null' }] } → { type: 'string', nullable: true }.
|
|
15
15
|
*/
|
|
16
16
|
function toOpenapi(schema) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return {
|
|
17
|
+
const { type, properties, items, additionalProperties, allOf, anyOf, oneOf, not, ...attributes } = schema;
|
|
18
|
+
const result = { ...attributes };
|
|
19
|
+
if (Array.isArray(type))
|
|
20
|
+
return toOpenapi({ ...schema, type: undefined, allOf: [...(allOf ?? []), { anyOf: type.map((value) => ({ type: value })) }] });
|
|
21
|
+
if (type === 'null')
|
|
22
|
+
return { type: 'object', nullable: true, enum: [null] };
|
|
23
|
+
if (type)
|
|
24
|
+
result.type = type;
|
|
25
|
+
if (properties)
|
|
26
|
+
result.properties = Object.fromEntries(Object.entries(properties).map(([key, value]) => [key, toOpenapi(value)]));
|
|
27
|
+
if (items)
|
|
28
|
+
result.items = toOpenapi(items);
|
|
29
|
+
if (additionalProperties !== undefined)
|
|
30
|
+
result.additionalProperties = typeof additionalProperties === 'boolean' ? additionalProperties : toOpenapi(additionalProperties);
|
|
31
|
+
if (allOf)
|
|
32
|
+
result.allOf = allOf.map(toOpenapi);
|
|
33
|
+
if (oneOf)
|
|
34
|
+
result.oneOf = oneOf.map(toOpenapi);
|
|
35
|
+
if (not)
|
|
36
|
+
result.not = toOpenapi(not);
|
|
37
|
+
if (anyOf) {
|
|
38
|
+
const nonNull = anyOf.filter((value) => value.type !== 'null');
|
|
39
|
+
const single = nonNull[0];
|
|
40
|
+
if (anyOf.length === 2 && nonNull.length === 1 && single) {
|
|
41
|
+
const converted = toOpenapi(single);
|
|
42
|
+
if (converted.type)
|
|
43
|
+
return { ...converted, ...result, nullable: true, ...(converted.enum ? { enum: [...converted.enum.filter((value) => value !== null), null] } : {}) };
|
|
44
|
+
}
|
|
45
|
+
result.anyOf = anyOf.map(toOpenapi);
|
|
23
46
|
}
|
|
24
|
-
const result = { ...schema };
|
|
25
|
-
if (isObject(schema.properties))
|
|
26
|
-
result.properties = Object.fromEntries(Object.entries(schema.properties).map(([k, v]) => [k, toOpenapi(v)]));
|
|
27
|
-
if (isObject(schema.items))
|
|
28
|
-
result.items = toOpenapi(schema.items);
|
|
29
47
|
return result;
|
|
30
48
|
}
|
|
31
49
|
/** Строит документ с маршрутами и схемами записей, включая выбранные дополнительные маршруты.
|
|
@@ -47,7 +65,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
47
65
|
function annotate(schema, node) {
|
|
48
66
|
for (const key of ['description', 'example', 'default', 'readOnly', 'writeOnly'])
|
|
49
67
|
if (node[key] !== undefined)
|
|
50
|
-
schema[key]
|
|
68
|
+
Object.assign(schema, { [key]: node[key] });
|
|
51
69
|
if (node.generated)
|
|
52
70
|
schema.readOnly = true;
|
|
53
71
|
return schema;
|
|
@@ -57,10 +75,10 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
57
75
|
}
|
|
58
76
|
function annotateInput(schema, node, defaults) {
|
|
59
77
|
for (const [key, property] of Object.entries(schema.properties ?? {})) {
|
|
60
|
-
const child = node.children[key];
|
|
78
|
+
const child = defined(node.children[key], key);
|
|
61
79
|
for (const attribute of ['description', 'example', 'writeOnly'])
|
|
62
80
|
if (child[attribute] !== undefined)
|
|
63
|
-
property[attribute]
|
|
81
|
+
Object.assign(property, { [attribute]: child[attribute] });
|
|
64
82
|
if (defaults && child.default !== undefined)
|
|
65
83
|
property.default = child.default;
|
|
66
84
|
if (!child.relation && child.base === 'object')
|
|
@@ -77,10 +95,10 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
77
95
|
return ref(name);
|
|
78
96
|
const existing = writeInput(entity.root, mode === 'replace' ? 'replace' : 'update', true, mode);
|
|
79
97
|
existing.properties ??= {};
|
|
80
|
-
existing.properties[entity.primary] = toOpenapi(valueSchema(entity
|
|
98
|
+
existing.properties[entity.primary] = toOpenapi(valueSchema(fieldAt(entity, entity.primary)));
|
|
81
99
|
existing.required = [...(existing.required ?? []), entity.primary];
|
|
82
100
|
const variants = [existing];
|
|
83
|
-
if (entity
|
|
101
|
+
if (fieldAt(entity, entity.primary).generated)
|
|
84
102
|
variants.push(writeInput(entity.root, 'create', true, mode));
|
|
85
103
|
schemas[name] = { anyOf: variants, description: 'An object with a primary key updates an existing record; an object without a key creates one. PUT replaces, PATCH updates supplied fields.' };
|
|
86
104
|
return ref(name);
|
|
@@ -130,7 +148,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
130
148
|
items: list ? { anyOf: [ref(fieldsName), options(entity, node)] } : ref(fieldsName),
|
|
131
149
|
description: list
|
|
132
150
|
? '[fields, arguments?]. The first object selects fields; the optional second object contains where, order and pager. OpenAPI 3.0 cannot express positional item schemas; the server validates their order.'
|
|
133
|
-
: '[fields]. * selects scalar fields except relation keys; arrays, objects, relations
|
|
151
|
+
: '[fields]. * selects scalar fields except relation keys; arrays, objects, relations and relation keys require explicit selection. writeOnly fields cannot be selected.',
|
|
134
152
|
};
|
|
135
153
|
schemas[name] = list
|
|
136
154
|
? {
|
|
@@ -141,7 +159,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
141
159
|
additionalProperties: false,
|
|
142
160
|
required: ['union'],
|
|
143
161
|
properties: { union: { type: 'array', minItems: 1, items: ref(name) } },
|
|
144
|
-
description: 'Combines list scopes in array order
|
|
162
|
+
description: 'Combines list scopes in array order. Entity records are deduplicated by primary key; embedded objects are deduplicated by source element, preserving distinct elements with equal contents.',
|
|
145
163
|
},
|
|
146
164
|
],
|
|
147
165
|
}
|
|
@@ -241,7 +259,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
241
259
|
});
|
|
242
260
|
const shape = [selectionParameter(false)];
|
|
243
261
|
const list = [selectionParameter(true)];
|
|
244
|
-
const key = { in: 'path', name: entity.primary, required: true, schema: baseField({ ...entity
|
|
262
|
+
const key = { in: 'path', name: entity.primary, required: true, schema: baseField({ ...fieldAt(entity, entity.primary), generated: undefined }) };
|
|
245
263
|
const errors = { 400: response('Invalid request', ref('Error')), 404: response('Not found', ref('Error')), 409: response('Conflict', ref('Error')) };
|
|
246
264
|
const make = (operationId, parameters, schema, mutation) => {
|
|
247
265
|
if (operations.has(operationId))
|
|
@@ -266,7 +284,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
266
284
|
paths[collectionPath] = { get: make(`${op}List`, list, page(entity, entity.root)) };
|
|
267
285
|
paths[itemPath] = { get: make(op, [key, ...shape], output(entity, entity.root)) };
|
|
268
286
|
for (const mutation of MUTATIONS) {
|
|
269
|
-
paths[mutation.hasKey ? itemPath : collectionPath][mutation.method.toLowerCase()] = make(`${op}${capitalize(mutation.mode)}`, mutation.hasKey ? [key, ...shape] : shape, output(entity, entity.root), mutation);
|
|
287
|
+
defined(paths[mutation.hasKey ? itemPath : collectionPath], 'operation path')[mutation.method.toLowerCase()] = make(`${op}${capitalize(mutation.mode)}`, mutation.hasKey ? [key, ...shape] : shape, output(entity, entity.root), mutation);
|
|
270
288
|
}
|
|
271
289
|
}
|
|
272
290
|
const parameters = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/openapi/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/openapi/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import type { ModelSchema } from '../core/model.js';
|
|
|
3
3
|
import type { OpenapiOptions } from './options.js';
|
|
4
4
|
import type { OpenapiDocument } from './types.js';
|
|
5
5
|
/** Загружает генератор при первом обращении и передаёт ему описание и параметры.
|
|
6
|
-
* @example
|
|
6
|
+
* @example await generateOpenapi({ models: { Note: { collection: 'notes', fields: { id: { type: 'string', primary: true } } } } }) → документ с маршрутом /notes.
|
|
7
7
|
*/
|
|
8
8
|
export declare function generateOpenapi(schema: ModelSchema | string, options?: OpenapiOptions): Promise<OpenapiDocument>;
|
|
9
9
|
/** Загружает модуль записи по требованию и сохраняет схему в указанный файл.
|
|
10
|
-
* @example
|
|
10
|
+
* @example await writeOpenapi(document, './openapi.json') → undefined; файл содержит JSON документа.
|
|
11
11
|
*/
|
|
12
12
|
export declare function writeOpenapi(document: OpenapiDocument, path: string): Promise<void>;
|
|
13
13
|
export type { OpenapiOptions } from './options.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** Загружает генератор при первом обращении и передаёт ему описание и параметры.
|
|
2
|
-
* @example
|
|
2
|
+
* @example await generateOpenapi({ models: { Note: { collection: 'notes', fields: { id: { type: 'string', primary: true } } } } }) → документ с маршрутом /notes.
|
|
3
3
|
*/
|
|
4
4
|
export async function generateOpenapi(schema, options) {
|
|
5
5
|
return (await import('./generate.js')).generateOpenapi(schema, options);
|
|
6
6
|
}
|
|
7
7
|
/** Загружает модуль записи по требованию и сохраняет схему в указанный файл.
|
|
8
|
-
* @example
|
|
8
|
+
* @example await writeOpenapi(document, './openapi.json') → undefined; файл содержит JSON документа.
|
|
9
9
|
*/
|
|
10
10
|
export async function writeOpenapi(document, path) {
|
|
11
11
|
return (await import('./write.js')).writeOpenapi(document, path);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
type
|
|
1
|
+
import type { OpenapiDocument } from './types.js';
|
|
2
2
|
/** Создаёт описания HTTP-маршрутов работы с файлами.
|
|
3
3
|
* @example createFilePaths() → объект, содержащий '/_files/storage' и маршруты чтения, перемещения и удаления.
|
|
4
4
|
*/
|
|
5
|
-
export declare const createFilePaths: () =>
|
|
6
|
-
export {};
|
|
5
|
+
export declare const createFilePaths: () => OpenapiDocument['paths'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/openapi/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/openapi/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OpenapiSchema } from './types.js';
|
|
1
|
+
import type { OpenapiContent, OpenapiResponse, OpenapiSchema } from './types.js';
|
|
2
2
|
/** Создаёт ссылку на именованную схему компонента.
|
|
3
3
|
* @example ref('User') → { $ref: '#/components/schemas/User' }.
|
|
4
4
|
*/
|
|
@@ -6,21 +6,8 @@ export declare const ref: (name: string) => OpenapiSchema;
|
|
|
6
6
|
/** Оборачивает схему в описание тела application/json.
|
|
7
7
|
* @example json({ type: 'string' }) → { content: { 'application/json': { schema: { type: 'string' } } } }.
|
|
8
8
|
*/
|
|
9
|
-
export declare const json: (schema:
|
|
10
|
-
content: {
|
|
11
|
-
'application/json': {
|
|
12
|
-
schema: unknown;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
9
|
+
export declare const json: (schema: OpenapiSchema) => OpenapiContent;
|
|
16
10
|
/** Создаёт описание ответа; тело добавляется только при переданной схеме.
|
|
17
11
|
* @example response('No content') → { description: 'No content' }.
|
|
18
12
|
*/
|
|
19
|
-
export declare const response: (description: string, schema?:
|
|
20
|
-
content?: {
|
|
21
|
-
'application/json': {
|
|
22
|
-
schema: unknown;
|
|
23
|
-
};
|
|
24
|
-
} | undefined;
|
|
25
|
-
description: string;
|
|
26
|
-
};
|
|
13
|
+
export declare const response: (description: string, schema?: OpenapiSchema) => OpenapiResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/openapi/helpers.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/F;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/openapi/helpers.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/F;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAqB,EAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACjH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,MAAsB,EAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1,41 +1,62 @@
|
|
|
1
|
+
import type { SchemaKeywords, SchemaType } from '../core/schema.js';
|
|
1
2
|
import type { JsonValue } from '../core/types.js';
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
allOf?: OpenapiSchema[];
|
|
7
|
-
anyOf?: OpenapiSchema[];
|
|
8
|
-
default?: JsonValue;
|
|
9
|
-
description?: string;
|
|
10
|
-
enum?: JsonValue[];
|
|
11
|
-
format?: string;
|
|
12
|
-
items?: OpenapiSchema;
|
|
13
|
-
maximum?: number;
|
|
14
|
-
maxItems?: number;
|
|
15
|
-
maxLength?: number;
|
|
16
|
-
minimum?: number;
|
|
17
|
-
minItems?: number;
|
|
18
|
-
minLength?: number;
|
|
19
|
-
not?: OpenapiSchema;
|
|
3
|
+
import type { OpenapiInfo } from './options.js';
|
|
4
|
+
export type OpenapiType = Exclude<SchemaType, 'null'>;
|
|
5
|
+
export interface OpenapiSchema extends SchemaKeywords<OpenapiSchema> {
|
|
6
|
+
[key: `x-${string}`]: JsonValue;
|
|
20
7
|
nullable?: boolean;
|
|
21
|
-
oneOf?: OpenapiSchema[];
|
|
22
|
-
pattern?: string;
|
|
23
|
-
properties?: Record<string, OpenapiSchema>;
|
|
24
|
-
required?: string[];
|
|
25
|
-
title?: string;
|
|
26
8
|
type?: OpenapiType;
|
|
27
|
-
|
|
9
|
+
}
|
|
10
|
+
export interface OpenapiReference {
|
|
11
|
+
$ref: string;
|
|
12
|
+
}
|
|
13
|
+
export interface OpenapiContent {
|
|
14
|
+
content: Record<string, {
|
|
15
|
+
schema: OpenapiSchema;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export interface OpenapiParameter {
|
|
19
|
+
in: 'path' | 'query' | 'header' | 'cookie';
|
|
20
|
+
name: string;
|
|
21
|
+
required?: boolean;
|
|
22
|
+
description?: string;
|
|
23
|
+
schema?: OpenapiSchema;
|
|
24
|
+
content?: OpenapiContent['content'];
|
|
25
|
+
}
|
|
26
|
+
export interface OpenapiResponse {
|
|
27
|
+
description: string;
|
|
28
|
+
content?: OpenapiContent['content'];
|
|
29
|
+
}
|
|
30
|
+
export interface OpenapiRequestBody extends OpenapiContent {
|
|
31
|
+
required?: boolean;
|
|
32
|
+
description?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface OpenapiOperation {
|
|
35
|
+
operationId: string;
|
|
36
|
+
tags?: string[];
|
|
37
|
+
description?: string;
|
|
38
|
+
parameters?: Array<OpenapiParameter | OpenapiReference>;
|
|
39
|
+
security?: Array<Record<string, string[]>>;
|
|
40
|
+
requestBody?: OpenapiRequestBody;
|
|
41
|
+
responses: Record<string, OpenapiResponse | OpenapiReference>;
|
|
42
|
+
}
|
|
43
|
+
export type OpenapiMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace';
|
|
44
|
+
export type OpenapiPath = Partial<Record<OpenapiMethod, OpenapiOperation>>;
|
|
45
|
+
export interface OpenapiSecurityScheme {
|
|
46
|
+
type: 'http';
|
|
47
|
+
scheme: 'bearer';
|
|
48
|
+
description?: string;
|
|
28
49
|
}
|
|
29
50
|
export interface OpenapiDocument {
|
|
30
|
-
[key: string]:
|
|
51
|
+
[key: `x-${string}`]: JsonValue;
|
|
31
52
|
components: {
|
|
32
|
-
parameters: Record<string,
|
|
53
|
+
parameters: Record<string, OpenapiParameter | OpenapiReference>;
|
|
33
54
|
schemas: Record<string, OpenapiSchema>;
|
|
34
|
-
securitySchemes?: Record<string,
|
|
55
|
+
securitySchemes?: Record<string, OpenapiSecurityScheme>;
|
|
35
56
|
};
|
|
36
|
-
info:
|
|
57
|
+
info: OpenapiInfo;
|
|
37
58
|
openapi: string;
|
|
38
|
-
paths: Record<string,
|
|
59
|
+
paths: Record<string, OpenapiPath>;
|
|
39
60
|
servers?: Array<{
|
|
40
61
|
url: string;
|
|
41
62
|
}>;
|
|
@@ -9,7 +9,7 @@ export interface UnionScope {
|
|
|
9
9
|
}
|
|
10
10
|
export type Scope = TupleScope | UnionScope;
|
|
11
11
|
export interface RestOptions {
|
|
12
|
-
scope:
|
|
12
|
+
scope: unknown;
|
|
13
13
|
}
|
|
14
14
|
export declare const ownScope: TupleScope;
|
|
15
15
|
/** Определяет специальный scope, объединяющий несколько обычных выборок списка.
|
|
@@ -20,7 +20,7 @@ export declare function isUnionScope(scope: Scope): scope is UnionScope;
|
|
|
20
20
|
* @example scopeFor([{ '*': true }], 'name') → [{ '*': true }].
|
|
21
21
|
*/
|
|
22
22
|
export declare function scopeFor(scope: TupleScope, key: string): Scope;
|
|
23
|
-
/** Читает JSON
|
|
23
|
+
/** Читает JSON-значение выбора полей из единственного параметра URL; проверяет длину и синтаксис JSON.
|
|
24
24
|
* @example parseRestOptions({ scope: '[{"id":true}]' }) → { scope: [{ id: true }] }.
|
|
25
25
|
*/
|
|
26
26
|
export declare function parseRestOptions(query: unknown): RestOptions;
|
package/dist/src/rest/options.js
CHANGED
|
@@ -12,9 +12,9 @@ export function isUnionScope(scope) {
|
|
|
12
12
|
*/
|
|
13
13
|
export function scopeFor(scope, key) {
|
|
14
14
|
const selection = Object.hasOwn(scope[0], key) ? scope[0][key] : true;
|
|
15
|
-
return selection === true ? ownScope : selection;
|
|
15
|
+
return selection === true || selection === undefined ? ownScope : selection;
|
|
16
16
|
}
|
|
17
|
-
/** Читает JSON
|
|
17
|
+
/** Читает JSON-значение выбора полей из единственного параметра URL; проверяет длину и синтаксис JSON.
|
|
18
18
|
* @example parseRestOptions({ scope: '[{"id":true}]' }) → { scope: [{ id: true }] }.
|
|
19
19
|
*/
|
|
20
20
|
export function parseRestOptions(query) {
|
|
@@ -69,7 +69,7 @@ export function validateScope(node, scope, list = false, depth = 0) {
|
|
|
69
69
|
if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(key) || !isSafeKey(key))
|
|
70
70
|
badQuery(`Invalid scope field ${key}`);
|
|
71
71
|
const child = children[key];
|
|
72
|
-
if (!Object.hasOwn(children, key) || child.writeOnly)
|
|
72
|
+
if (!Object.hasOwn(children, key) || !child || child.writeOnly)
|
|
73
73
|
badQuery(`Unknown or inaccessible scope field ${key}`);
|
|
74
74
|
if (child.relation || child.base === 'object')
|
|
75
75
|
validateScope(child, selection, child.many, depth + 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/rest/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAYpE,MAAM,CAAC,MAAM,QAAQ,GAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAiB,EAAE,GAAW;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/rest/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAYpE,MAAM,CAAC,MAAM,QAAQ,GAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAiB,EAAE,GAAW;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,KAAK,OAAO;YAAE,QAAQ,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IACtG,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC1D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,QAAQ,CAAC,wCAAwC,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;QAAE,QAAQ,CAAC,6CAA6C,CAAC,CAAC;IACxF,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,KAAc,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC;IAC/E,IAAI,KAAK,GAAG,EAAE;QAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,0DAA0D,CAAC,CAAC;QAC9F,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QACzI,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IACzI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,6DAA6D,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACtH,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,SAAS,KAAK,IAAI;gBAAE,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS;YAAE,QAAQ,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACvH,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;aACjG,IAAI,SAAS,KAAK,IAAI;YAAE,QAAQ,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -12,9 +12,12 @@ export interface ScopedPage {
|
|
|
12
12
|
total: number;
|
|
13
13
|
}
|
|
14
14
|
/** Проверяет дерево выбора и заранее подготавливает фильтры, сортировку и пагинацию вложенных списков.
|
|
15
|
-
* @example Выбор без аргументов у одиночной записи →
|
|
15
|
+
* @example Выбор без аргументов у одиночной записи → { scope, plans: Map(0) }; неверное поле → ошибка.
|
|
16
16
|
*/
|
|
17
|
-
export declare function validateRest(engine: Engine, entity: Entity, options: RestOptions, list?: boolean):
|
|
17
|
+
export declare function validateRest(engine: Engine, entity: Entity, options: RestOptions, list?: boolean): {
|
|
18
|
+
scope: Scope;
|
|
19
|
+
plans: Map<TupleScope | Node, PreparedList>;
|
|
20
|
+
};
|
|
18
21
|
/** Выполняет обычный или объединённый scope списка, сохраняя порядок частей и первую запись с каждым ключом.
|
|
19
22
|
* @example Две части с id 1, затем id 1 и 2 → данные [1, 2], total 2.
|
|
20
23
|
*/
|
|
@@ -22,4 +25,4 @@ export declare function listScope(engine: Engine, records: Ref[], node: Node, sc
|
|
|
22
25
|
/** Строит новый объект из выбранных полей, разворачивая связи и обрабатывая вложенные списки.
|
|
23
26
|
* @example Запись { id: '1', name: 'Анна' } и выбор [{ name: true }] → { name: 'Анна' }.
|
|
24
27
|
*/
|
|
25
|
-
export declare function project(engine: Engine, ref: Ref, scope?: Scope, plans?: Map<
|
|
28
|
+
export declare function project(engine: Engine, ref: Ref, scope?: Scope, plans?: Map<TupleScope | Node, PreparedList>, actor?: Actor): JsonObject;
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { childrenOf } from '../core/query/options.js';
|
|
2
2
|
import { isRef, resolveField } from '../core/records.js';
|
|
3
|
+
import { defined } from '../core/utils.js';
|
|
3
4
|
import { isUnionScope, ownScope, scopeFor, validateScope } from './options.js';
|
|
5
|
+
/** Допускает в неявный выбор только примитивное значение, не скрытое метаданными поля.
|
|
6
|
+
* @example wildcardValue({ relationKey: true, … }, 1) → false; wildcardValue(undefined, 'Анна') → true.
|
|
7
|
+
*/
|
|
8
|
+
function wildcardValue(node, value) {
|
|
9
|
+
return (!node?.writeOnly &&
|
|
10
|
+
!node?.relation &&
|
|
11
|
+
!node?.relationKey &&
|
|
12
|
+
(!node || node.mixed || (!node.many && node.base !== 'object')) &&
|
|
13
|
+
(value === null || ['string', 'number', 'boolean'].includes(typeof value)));
|
|
14
|
+
}
|
|
4
15
|
/** Проверяет дерево выбора и заранее подготавливает фильтры, сортировку и пагинацию вложенных списков.
|
|
5
|
-
* @example Выбор без аргументов у одиночной записи →
|
|
16
|
+
* @example Выбор без аргументов у одиночной записи → { scope, plans: Map(0) }; неверное поле → ошибка.
|
|
6
17
|
*/
|
|
7
18
|
export function validateRest(engine, entity, options, list = false) {
|
|
8
19
|
validateScope(entity.root, options.scope, list);
|
|
@@ -21,14 +32,14 @@ export function validateRest(engine, entity, options, list = false) {
|
|
|
21
32
|
for (const [key, selection] of Object.entries(scope[0])) {
|
|
22
33
|
if (selection === true)
|
|
23
34
|
continue;
|
|
24
|
-
const child = childrenOf(node)[key];
|
|
35
|
+
const child = defined(childrenOf(node)[key], key);
|
|
25
36
|
if (!isUnionScope(selection) && selection[1])
|
|
26
37
|
plans.set(selection, engine.prepareOptions(child, selection[1]));
|
|
27
38
|
visit(child, selection);
|
|
28
39
|
}
|
|
29
40
|
};
|
|
30
41
|
visit(entity.root, options.scope);
|
|
31
|
-
return plans;
|
|
42
|
+
return { scope: options.scope, plans };
|
|
32
43
|
}
|
|
33
44
|
/** Выполняет обычный или объединённый scope списка, сохраняя порядок частей и первую запись с каждым ключом.
|
|
34
45
|
* @example Две части с id 1, затем id 1 и 2 → данные [1, 2], total 2.
|
|
@@ -45,7 +56,7 @@ export function listScope(engine, records, node, scope, plans, planKey) {
|
|
|
45
56
|
const data = [];
|
|
46
57
|
for (const item of scope.union) {
|
|
47
58
|
for (const entry of listScope(engine, records, node, item, plans).data) {
|
|
48
|
-
const key =
|
|
59
|
+
const key = entry.ref.node === entry.ref.entity.root ? entry.ref.value[entry.ref.entity.primary] : entry.ref.value;
|
|
49
60
|
if (seen.has(key))
|
|
50
61
|
continue;
|
|
51
62
|
seen.add(key);
|
|
@@ -63,7 +74,7 @@ export function project(engine, ref, scope = ownScope, plans = new Map(), actor)
|
|
|
63
74
|
const output = Object.create(null);
|
|
64
75
|
const children = childrenOf(ref.node);
|
|
65
76
|
for (const [key, node] of Object.entries(children)) {
|
|
66
|
-
const wildcard =
|
|
77
|
+
const wildcard = scope[0]['*'] === true && wildcardValue(node, ref.value[key] === undefined && node.system && !node.internal && !node.virtual ? null : ref.value[key]);
|
|
67
78
|
if (node.writeOnly || (!Object.hasOwn(scope[0], key) && !wildcard))
|
|
68
79
|
continue;
|
|
69
80
|
const value = resolveField(ref, node, false, actor);
|
|
@@ -86,11 +97,7 @@ export function project(engine, ref, scope = ownScope, plans = new Map(), actor)
|
|
|
86
97
|
// При выведенной модели добавляем исходные скаляры, которые не удалось описать.
|
|
87
98
|
if (!ref.context.model.explicit && scope[0]['*'] === true)
|
|
88
99
|
for (const [key, value] of Object.entries(ref.value))
|
|
89
|
-
if (!Object.hasOwn(output, key) &&
|
|
90
|
-
!children[key]?.writeOnly &&
|
|
91
|
-
(children[key]
|
|
92
|
-
? !children[key].relation && !children[key].relationKey && !children[key].many && children[key].base !== 'object'
|
|
93
|
-
: value === null || ['string', 'number', 'boolean'].includes(typeof value)))
|
|
100
|
+
if (!Object.hasOwn(output, key) && wildcardValue(children[key], value))
|
|
94
101
|
output[key] = structuredClone(value);
|
|
95
102
|
return output;
|
|
96
103
|
}
|