@kollors/deep-json-server 1.0.0-alpha.9 → 1.0.0-beta.2
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 +169 -128
- package/README.ru.md +169 -128
- package/dist/src/cli/index.js +14 -23
- 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/constants.js.map +1 -1
- package/dist/src/core/engine.d.ts +3 -15
- package/dist/src/core/engine.js +10 -69
- package/dist/src/core/engine.js.map +1 -1
- package/dist/src/core/lifecycle/mutation.js +4 -4
- package/dist/src/core/lifecycle/mutation.js.map +1 -1
- package/dist/src/core/lifecycle/options.d.ts +15 -0
- package/dist/src/core/lifecycle/options.js +13 -0
- package/dist/src/core/lifecycle/options.js.map +1 -1
- package/dist/src/core/model.d.ts +1 -0
- package/dist/src/core/model.js +29 -4
- package/dist/src/core/model.js.map +1 -1
- package/dist/src/core/mutations/write.js +4 -0
- package/dist/src/core/mutations/write.js.map +1 -1
- package/dist/src/core/paths.js +1 -7
- package/dist/src/core/paths.js.map +1 -1
- package/dist/src/core/query/execute.d.ts +25 -0
- package/dist/src/core/query/execute.js +82 -0
- package/dist/src/core/query/execute.js.map +1 -0
- package/dist/src/core/query/filter.js +1 -1
- package/dist/src/core/query/filter.js.map +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 +2 -1
- package/dist/src/core/records.js +5 -2
- package/dist/src/core/records.js.map +1 -1
- package/dist/src/files/disk-metadata.d.ts +9 -0
- package/dist/src/files/disk-metadata.js +44 -0
- package/dist/src/files/disk-metadata.js.map +1 -0
- package/dist/src/files/disk-paths.d.ts +15 -0
- package/dist/src/files/disk-paths.js +100 -0
- package/dist/src/files/disk-paths.js.map +1 -0
- package/dist/src/files/disk-store.js +21 -165
- package/dist/src/files/disk-store.js.map +1 -1
- package/dist/src/files/index.js +1 -1
- package/dist/src/files/index.js.map +1 -1
- package/dist/src/graphql/preflight.js +2 -0
- package/dist/src/graphql/preflight.js.map +1 -1
- package/dist/src/graphql/resolvers.js +7 -3
- package/dist/src/graphql/resolvers.js.map +1 -1
- package/dist/src/graphql/routes.js +4 -1
- package/dist/src/graphql/routes.js.map +1 -1
- package/dist/src/graphql/schema.js +5 -2
- package/dist/src/graphql/schema.js.map +1 -1
- package/dist/src/openapi/document.js +30 -19
- package/dist/src/openapi/document.js.map +1 -1
- package/dist/src/openapi/registry.d.ts +11 -0
- package/dist/src/openapi/registry.js +20 -0
- package/dist/src/openapi/registry.js.map +1 -0
- package/dist/src/rest/options.d.ts +11 -3
- package/dist/src/rest/options.js +15 -0
- package/dist/src/rest/options.js.map +1 -1
- package/dist/src/rest/projection.d.ts +15 -3
- package/dist/src/rest/projection.js +51 -15
- package/dist/src/rest/projection.js.map +1 -1
- package/dist/src/rest/routes.js +18 -7
- package/dist/src/rest/routes.js.map +1 -1
- package/dist/src/server/bootstrap.d.ts +7 -0
- package/dist/src/server/bootstrap.js +48 -0
- package/dist/src/server/bootstrap.js.map +1 -0
- package/dist/src/server/config.d.ts +2 -2
- package/dist/src/server/config.js +5 -5
- package/dist/src/server/config.js.map +1 -1
- package/dist/src/server/create.d.ts +1 -1
- package/dist/src/server/create.js +11 -85
- package/dist/src/server/create.js.map +1 -1
- package/dist/src/server/http.d.ts +12 -0
- package/dist/src/server/http.js +40 -0
- package/dist/src/server/http.js.map +1 -0
- package/dist/src/server/openapi-options.d.ts +6 -0
- package/dist/src/server/openapi-options.js +15 -0
- package/dist/src/server/openapi-options.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,92 +1,23 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { createWriteStream } from 'node:fs';
|
|
3
|
-
import {
|
|
4
|
-
import { dirname,
|
|
3
|
+
import { mkdir, open, rename, rm, stat } from 'node:fs/promises';
|
|
4
|
+
import { dirname, resolve } from 'node:path';
|
|
5
5
|
import { pipeline } from 'node:stream/promises';
|
|
6
6
|
import { domainError } from '../core/errors.js';
|
|
7
7
|
import { canonicalPath } from '../core/paths.js';
|
|
8
8
|
import { createSerialQueue, isSystemError } from '../core/utils.js';
|
|
9
|
-
import { getFileKey
|
|
9
|
+
import { getFileKey } from './contract.js';
|
|
10
|
+
import { readDiskMetadata, writeDiskMetadata } from './disk-metadata.js';
|
|
11
|
+
import { createDiskPaths } from './disk-paths.js';
|
|
10
12
|
import { createSizeLimiter } from './streams.js';
|
|
11
|
-
/** Проверяет доступность пути через access; остальные ошибки файловой системы передаёт вызывающему коду.
|
|
12
|
-
* @example Отсутствующий путь → Promise<false>; существующий доступный файл → Promise<true>; оборванная ссылка → Promise<false>.
|
|
13
|
-
*/
|
|
14
|
-
const pathExists = async (path) => {
|
|
15
|
-
try {
|
|
16
|
-
await access(path);
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
if (isSystemError(error) && error.code === 'ENOENT') {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
throw error;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
/** Проверяет, что путь совпадает с корнем или лежит внутри него; символические ссылки не раскрывает.
|
|
27
|
-
* @example isPathInside('/tmp/a', '/tmp/a/b') → true; '/tmp/ab' → false.
|
|
28
|
-
*/
|
|
29
|
-
const isPathInside = (rootPath, targetPath) => {
|
|
30
|
-
const relativePath = relative(rootPath, targetPath);
|
|
31
|
-
return relativePath === '' || (relativePath !== '..' && !relativePath.startsWith(`..${sep}`) && !isAbsolute(relativePath));
|
|
32
|
-
};
|
|
33
|
-
/** Читает и проверяет массив метаданных, индексируя его по пути файла.
|
|
34
|
-
* @example Отсутствующий файл → пустая Map; две записи с одинаковым путём → ошибка.
|
|
35
|
-
*/
|
|
36
|
-
const readMetadata = async (metadataPath) => {
|
|
37
|
-
let source;
|
|
38
|
-
try {
|
|
39
|
-
source = JSON.parse(await readFile(metadataPath, 'utf8'));
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (isSystemError(error) && error.code === 'ENOENT') {
|
|
43
|
-
return new Map();
|
|
44
|
-
}
|
|
45
|
-
throw error;
|
|
46
|
-
}
|
|
47
|
-
if (!Array.isArray(source)) {
|
|
48
|
-
throw new Error(`Файл метаданных ${metadataPath} должен содержать JSON-массив`);
|
|
49
|
-
}
|
|
50
|
-
const files = new Map();
|
|
51
|
-
source.forEach((value, index) => {
|
|
52
|
-
const file = normalizeStoredFileMetadata(value, `Запись ${index} в файле метаданных ${metadataPath}`);
|
|
53
|
-
const path = getFileKey(file);
|
|
54
|
-
if (files.has(path)) {
|
|
55
|
-
throw new Error(`Файл метаданных ${metadataPath} содержит повторяющийся путь «${path}»`);
|
|
56
|
-
}
|
|
57
|
-
files.set(path, file);
|
|
58
|
-
});
|
|
59
|
-
return files;
|
|
60
|
-
};
|
|
61
|
-
/** Сохраняет метаданные через временный файл и переименование; при ошибке удаляет временный файл.
|
|
62
|
-
* @example Map с одной записью → JSON-массив из одной записи в файле; результат Promise<void>.
|
|
63
|
-
*/
|
|
64
|
-
const writeMetadata = async (metadataPath, files) => {
|
|
65
|
-
const temporaryPath = `${metadataPath}.${randomBytes(6).toString('hex')}.tmp`;
|
|
66
|
-
try {
|
|
67
|
-
await writeFile(temporaryPath, JSON.stringify([...files.values()], null, 2), { encoding: 'utf8', flag: 'wx' });
|
|
68
|
-
await rename(temporaryPath, metadataPath);
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
await rm(temporaryPath, { force: true }).catch(() => undefined);
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
/** Проверяет, что информация о пути описывает обычный файл.
|
|
76
|
-
* @example stats.isFile() === true → undefined; каталог → ошибка.
|
|
77
|
-
*/
|
|
78
|
-
const assertRegularFile = (stats) => {
|
|
79
|
-
if (!stats.isFile()) {
|
|
80
|
-
throw domainError('INVALID_INPUT', 'Путь должен указывать на обычный файл');
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
13
|
/** Читает размер обычного файла; отсутствие или неподходящий тип пути превращает в ошибку.
|
|
84
14
|
* @example Файл из трёх байтов → Promise<3>.
|
|
85
15
|
*/
|
|
86
16
|
const getFileSize = async (path) => {
|
|
87
17
|
try {
|
|
88
18
|
const stats = await stat(path);
|
|
89
|
-
|
|
19
|
+
if (!stats.isFile())
|
|
20
|
+
throw domainError('INVALID_INPUT', 'Путь должен указывать на обычный файл');
|
|
90
21
|
return stats.size;
|
|
91
22
|
}
|
|
92
23
|
catch (error) {
|
|
@@ -111,11 +42,11 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
111
42
|
const schedule = createSerialQueue();
|
|
112
43
|
const pendingCleanup = new Set();
|
|
113
44
|
await Promise.all([mkdir(directoryPath, { recursive: true }), mkdir(dirname(metadataPath), { recursive: true }), mkdir(stagingPath, { recursive: true })]);
|
|
114
|
-
const
|
|
115
|
-
let files = await
|
|
45
|
+
const paths = await createDiskPaths({ directory: directoryPath, metadata: metadataPath, staging: stagingPath, protectedPaths: protectedFiles });
|
|
46
|
+
let files = await readDiskMetadata(metadataPath);
|
|
116
47
|
const commitMetadata = async (nextFiles, rollback, rollbackMessage) => {
|
|
117
48
|
try {
|
|
118
|
-
await
|
|
49
|
+
await writeDiskMetadata(metadataPath, nextFiles);
|
|
119
50
|
}
|
|
120
51
|
catch (error) {
|
|
121
52
|
try {
|
|
@@ -128,82 +59,6 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
128
59
|
}
|
|
129
60
|
files = nextFiles;
|
|
130
61
|
};
|
|
131
|
-
const assertContained = (path) => {
|
|
132
|
-
if (!isPathInside(realDirectoryPath, path)) {
|
|
133
|
-
throw domainError('INVALID_INPUT', 'Путь файла выходит за пределы директории хранения');
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
const resolveFilePath = (path) => {
|
|
137
|
-
const filePath = resolve(directoryPath, path);
|
|
138
|
-
const canonical = resolve(realDirectoryPath, relative(directoryPath, filePath));
|
|
139
|
-
if (protectedFiles.has(canonical))
|
|
140
|
-
throw domainError('INVALID_INPUT', 'Path is reserved for a server input file');
|
|
141
|
-
if (filePath === directoryPath || !isPathInside(directoryPath, filePath) || filePath === metadataPath || isPathInside(stagingPath, filePath)) {
|
|
142
|
-
throw domainError('INVALID_INPUT', 'Путь файла выходит за пределы директории хранения');
|
|
143
|
-
}
|
|
144
|
-
return filePath;
|
|
145
|
-
};
|
|
146
|
-
const assertNoSymlinks = async (targetPath) => {
|
|
147
|
-
const relativePath = relative(directoryPath, targetPath);
|
|
148
|
-
const parts = relativePath === '' ? [] : relativePath.split(sep);
|
|
149
|
-
let currentPath = directoryPath;
|
|
150
|
-
for (const part of parts) {
|
|
151
|
-
currentPath = resolve(currentPath, part);
|
|
152
|
-
try {
|
|
153
|
-
if ((await lstat(currentPath)).isSymbolicLink()) {
|
|
154
|
-
throw domainError('INVALID_INPUT', 'Путь файла не должен содержать символические ссылки');
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
if (!isSystemError(error) || error.code !== 'ENOENT') {
|
|
159
|
-
throw error;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
const prepareTargetPath = async (path) => {
|
|
165
|
-
const filePath = resolveFilePath(path);
|
|
166
|
-
const targetDirectory = dirname(filePath);
|
|
167
|
-
const parts = relative(directoryPath, targetDirectory).split(sep).filter(Boolean);
|
|
168
|
-
let currentPath = directoryPath;
|
|
169
|
-
for (const part of parts) {
|
|
170
|
-
currentPath = resolve(currentPath, part);
|
|
171
|
-
try {
|
|
172
|
-
await mkdir(currentPath);
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
if (!isSystemError(error) || error.code !== 'EEXIST') {
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
const currentStats = await lstat(currentPath);
|
|
180
|
-
if (currentStats.isSymbolicLink() || !currentStats.isDirectory()) {
|
|
181
|
-
throw domainError('INVALID_INPUT', 'Путь файла должен содержать только обычные директории');
|
|
182
|
-
}
|
|
183
|
-
assertContained(await realpath(currentPath));
|
|
184
|
-
}
|
|
185
|
-
if (await pathExists(filePath)) {
|
|
186
|
-
await assertNoSymlinks(filePath);
|
|
187
|
-
assertContained(await realpath(filePath));
|
|
188
|
-
assertRegularFile(await lstat(filePath));
|
|
189
|
-
}
|
|
190
|
-
return filePath;
|
|
191
|
-
};
|
|
192
|
-
const resolveExistingPath = async (path) => {
|
|
193
|
-
const filePath = resolveFilePath(path);
|
|
194
|
-
try {
|
|
195
|
-
await assertNoSymlinks(filePath);
|
|
196
|
-
assertContained(await realpath(filePath));
|
|
197
|
-
assertRegularFile(await lstat(filePath));
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
if (isSystemError(error) && error.code === 'ENOENT') {
|
|
201
|
-
throw domainError('NOT_FOUND', 'Файл не найден');
|
|
202
|
-
}
|
|
203
|
-
throw error;
|
|
204
|
-
}
|
|
205
|
-
return filePath;
|
|
206
|
-
};
|
|
207
62
|
const cleanupLater = async (path) => {
|
|
208
63
|
try {
|
|
209
64
|
await rm(path, { force: true });
|
|
@@ -225,16 +80,17 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
225
80
|
};
|
|
226
81
|
const metadata = (path) => schedule(async () => {
|
|
227
82
|
const file = findFile(path);
|
|
228
|
-
const filePath = await resolveExistingPath(path);
|
|
83
|
+
const filePath = await paths.resolveExistingPath(path);
|
|
229
84
|
return { ...file, size: await getFileSize(filePath) };
|
|
230
85
|
});
|
|
231
86
|
const get = (path) => schedule(async () => {
|
|
232
87
|
const file = findFile(path);
|
|
233
|
-
const filePath = await resolveExistingPath(path);
|
|
88
|
+
const filePath = await paths.resolveExistingPath(path);
|
|
234
89
|
const handle = await open(filePath, 'r');
|
|
235
90
|
try {
|
|
236
91
|
const stats = await handle.stat();
|
|
237
|
-
|
|
92
|
+
if (!stats.isFile())
|
|
93
|
+
throw domainError('INVALID_INPUT', 'Путь должен указывать на обычный файл');
|
|
238
94
|
const size = stats.size;
|
|
239
95
|
return { file: { ...file, size }, stream: handle.createReadStream() };
|
|
240
96
|
}
|
|
@@ -257,8 +113,8 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
257
113
|
}), createWriteStream(stagedPath, { flags: 'wx' }));
|
|
258
114
|
return await schedule(async () => {
|
|
259
115
|
await flushCleanup();
|
|
260
|
-
const path = await prepareTargetPath(key);
|
|
261
|
-
const existsOnDisk = await pathExists(path);
|
|
116
|
+
const path = await paths.prepareTargetPath(key);
|
|
117
|
+
const existsOnDisk = await paths.pathExists(path);
|
|
262
118
|
const exists = files.has(key) || existsOnDisk;
|
|
263
119
|
if (exists && !override) {
|
|
264
120
|
throw domainError('CONFLICT', 'Файл уже существует');
|
|
@@ -276,7 +132,7 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
276
132
|
installed = true;
|
|
277
133
|
const nextFiles = new Map(files);
|
|
278
134
|
nextFiles.set(key, storedFile);
|
|
279
|
-
await
|
|
135
|
+
await writeDiskMetadata(metadataPath, nextFiles);
|
|
280
136
|
files = nextFiles;
|
|
281
137
|
committed = true;
|
|
282
138
|
return { created: !exists, file: { ...storedFile, size } };
|
|
@@ -310,12 +166,12 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
310
166
|
const file = findFile(sourcePath);
|
|
311
167
|
const updatedFile = { ...file, ...updates };
|
|
312
168
|
const targetPath = getFileKey(updatedFile);
|
|
313
|
-
const sourceFilePath = await resolveExistingPath(sourcePath);
|
|
169
|
+
const sourceFilePath = await paths.resolveExistingPath(sourcePath);
|
|
314
170
|
if (sourcePath === targetPath) {
|
|
315
171
|
return { ...file, size: await getFileSize(sourceFilePath) };
|
|
316
172
|
}
|
|
317
|
-
const targetFilePath = await prepareTargetPath(targetPath);
|
|
318
|
-
if (files.has(targetPath) || (await pathExists(targetFilePath))) {
|
|
173
|
+
const targetFilePath = await paths.prepareTargetPath(targetPath);
|
|
174
|
+
if (files.has(targetPath) || (await paths.pathExists(targetFilePath))) {
|
|
319
175
|
throw domainError('CONFLICT', 'Файл с таким путём уже существует');
|
|
320
176
|
}
|
|
321
177
|
await rename(sourceFilePath, targetFilePath);
|
|
@@ -328,7 +184,7 @@ export const createDiskFileStore = async ({ directory: sourceDirectoryPath, meta
|
|
|
328
184
|
const remove = (path) => schedule(async () => {
|
|
329
185
|
await flushCleanup();
|
|
330
186
|
findFile(path);
|
|
331
|
-
const filePath = await resolveExistingPath(path);
|
|
187
|
+
const filePath = await paths.resolveExistingPath(path);
|
|
332
188
|
const temporaryPath = `${filePath}.${randomBytes(6).toString('hex')}.delete`;
|
|
333
189
|
await rename(filePath, temporaryPath);
|
|
334
190
|
const nextFiles = new Map(files);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-store.js","sourceRoot":"","sources":["../../../src/files/disk-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"disk-store.js","sourceRoot":"","sources":["../../../src/files/disk-store.ts"],"names":[],"mappings":"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"}
|
package/dist/src/files/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createMemoryFileStore } from './memory-store.js';
|
|
|
5
5
|
* @example createFileStore({ source: [] }) → Promise<FileStore> без создания файлов на диске.
|
|
6
6
|
*/
|
|
7
7
|
export const createFileStore = async (config, protectedPaths = []) => typeof config.source === 'string'
|
|
8
|
-
? createDiskFileStore({ directory: config.source, metadata: config.metadata ?? resolve(config.source, '
|
|
8
|
+
? createDiskFileStore({ directory: config.source, metadata: config.metadata ?? resolve(config.source, '.files.json'), protectedPaths })
|
|
9
9
|
: createMemoryFileStore(config.source);
|
|
10
10
|
export { registerFileRoutes } from './routes.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,MAAmB,EAAE,cAAc,GAAa,EAAE,EAAsB,EAAE,CAC9G,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,MAAmB,EAAE,cAAc,GAAa,EAAE,EAAsB,EAAE,CAC9G,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACvI,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -5,6 +5,8 @@ import { GraphQLIncludeDirective, GraphQLSkipDirective, getArgumentValues, getDi
|
|
|
5
5
|
export function preflight(info, engine) {
|
|
6
6
|
const prepared = new Map();
|
|
7
7
|
const root = info.operation.operation === 'mutation' ? info.schema.getMutationType() : info.schema.getQueryType();
|
|
8
|
+
if (!root)
|
|
9
|
+
throw new Error('GraphQL operation root is unavailable');
|
|
8
10
|
const visited = new Map();
|
|
9
11
|
const walk = (selectionSet, parent) => {
|
|
10
12
|
let parents = visited.get(selectionSet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/graphql/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EAGvB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,GAEb,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAwB,EAAE,MAAc;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/graphql/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EAGvB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,GAEb,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAwB,EAAE,MAAc;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAClH,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,YAA8B,EAAE,MAAyB,EAAQ,EAAE;QAC/E,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAChD,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,kBAAkB,CAAC,uBAAuB,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,KAAK;gBAAE,SAAS;YACjM,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9I,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -24,15 +24,19 @@ export function attachResolvers(schema, engine) {
|
|
|
24
24
|
if (entity && operation)
|
|
25
25
|
field.resolve = async (_root, args, context, info) => {
|
|
26
26
|
const plans = await context.prepare(info);
|
|
27
|
-
if (operation === 'find')
|
|
27
|
+
if (operation === 'find') {
|
|
28
|
+
context.actor?.();
|
|
28
29
|
return engine.find(await context.snapshot(), entity, args[entity.primary]) ?? null;
|
|
29
|
-
|
|
30
|
+
}
|
|
31
|
+
if (operation === 'list') {
|
|
32
|
+
context.actor?.();
|
|
30
33
|
return engine.list(engine.records(await context.snapshot(), entity), entity.root, args, plans.get(info.fieldNodes[0]));
|
|
34
|
+
}
|
|
31
35
|
return engine.mutate(entity, operation, args[entity.primary], args.data ?? {}, undefined, context.actor);
|
|
32
36
|
};
|
|
33
37
|
else if (node)
|
|
34
38
|
field.resolve = async (ref, args, context, info) => {
|
|
35
|
-
const value = resolveField(ref, node);
|
|
39
|
+
const value = resolveField(ref, node, false, node.virtual ? context.actor?.() : undefined);
|
|
36
40
|
if (!listNode || value == null)
|
|
37
41
|
return value;
|
|
38
42
|
const plans = await context.prepare(info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+D,YAAY,EAAE,MAAM,SAAS,CAAC;AAMpG,OAAO,EAA0B,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,QAAsC,CAAC;IAC3C,IAAI,QAA2D,CAAC;IAChE,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACxF,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB,EAAE,MAAc;IACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,SAAS;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YACpD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,UAA2G,CAAC;YAChK,IAAI,MAAM,IAAI,SAAS;gBACrB,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAuB,EAAE,IAAI,EAAE,EAAE;oBACnE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,SAAS,KAAK,MAAM;
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/graphql/resolvers.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,10 @@ export function registerGraphqlRoutes(server, schema, engine, path, authenticate
|
|
|
10
10
|
schema,
|
|
11
11
|
path,
|
|
12
12
|
queryDepth: 32,
|
|
13
|
-
context: (request) => ({
|
|
13
|
+
context: (request) => ({
|
|
14
|
+
...createGraphqlContext(engine),
|
|
15
|
+
...(authenticate && request.headers.authorization !== undefined ? { actor: () => authenticate(request.headers.authorization) } : {}),
|
|
16
|
+
}),
|
|
14
17
|
errorFormatter: (execution, context) => {
|
|
15
18
|
const formatted = mercurius.defaultErrorFormatter(execution, context);
|
|
16
19
|
formatted.response.errors = execution.errors.map((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/graphql/routes.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB,EAAE,MAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,YAA2B;IAC7I,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;QACzB,MAAM;QACN,IAAI;QACJ,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/graphql/routes.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB,EAAE,MAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,YAA2B;IAC7I,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;QACzB,MAAM;QACN,IAAI;QACJ,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC/B,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrI,CAAC;QACF,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtE,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,QAAQ,YAAY,WAAW;oBAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5H,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;oBAC5G,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC3C,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;gBACpI,CAAC;gBACD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -134,7 +134,7 @@ export function buildGraphql(model) {
|
|
|
134
134
|
not: { type: type },
|
|
135
135
|
};
|
|
136
136
|
for (const [key, child] of Object.entries(node.children))
|
|
137
|
-
if (!child.writeOnly) {
|
|
137
|
+
if (!child.writeOnly && !child.virtual) {
|
|
138
138
|
if (Object.hasOwn(fields, key))
|
|
139
139
|
throw new Error(`Reserved filter field: ${entity.name}.${child.path}`);
|
|
140
140
|
fields[key] = { type: child.many ? filter(entity, child) : child.relation || child.base === 'object' ? where(entity, child) : filter(entity, child) };
|
|
@@ -158,8 +158,11 @@ export function buildGraphql(model) {
|
|
|
158
158
|
const value = scalar(entity, node);
|
|
159
159
|
if (operand === 'condition')
|
|
160
160
|
fields[key] = { type: type };
|
|
161
|
-
else if (operand === 'element')
|
|
161
|
+
else if (operand === 'element') {
|
|
162
|
+
if (!element)
|
|
163
|
+
throw new Error(`Missing element filter for ${node.path}`);
|
|
162
164
|
fields[key] = { type: element };
|
|
165
|
+
}
|
|
163
166
|
else
|
|
164
167
|
fields[key] = { type: operand === 'values' ? new GraphQLList(value) : operand === 'comparison' ? scalar(entity, node, false) : operand === 'text' ? GraphQLString : value };
|
|
165
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/graphql/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/graphql/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { FILE_HEADERS, FILE_METADATA_SCHEMA, FILE_UPDATE_SCHEMA } from '../files
|
|
|
9
9
|
import { AUTH_SCHEMAS, AUTH_SECURITY_SCHEMES, authOpenapiPaths } from './auth.js';
|
|
10
10
|
import { createFilePaths } from './files.js';
|
|
11
11
|
import { json, ref, response } from './helpers.js';
|
|
12
|
+
import { OpenapiRegistry } from './registry.js';
|
|
12
13
|
/** Преобразует nullable-значения JSON Schema в представление OpenAPI 3.0, рекурсивно обрабатывая поля и элементы.
|
|
13
14
|
* @example { anyOf: [{ type: 'string' }, { type: 'null' }] } → { type: 'string', nullable: true }.
|
|
14
15
|
*/
|
|
@@ -33,24 +34,16 @@ function toOpenapi(schema) {
|
|
|
33
34
|
export function buildOpenapiDocument({ model, files = false, auth = false, pageSize, maxPageSize, info = { title: 'Deep JSON Server API', version: VERSION }, }) {
|
|
34
35
|
assertApi(model, 'openapi');
|
|
35
36
|
({ pageSize, maxPageSize } = normalizePagination({ pageSize, maxPageSize }));
|
|
36
|
-
const
|
|
37
|
+
const registry = new OpenapiRegistry({
|
|
37
38
|
Error: { type: 'object', properties: { error: { type: 'string' } }, required: ['error'] },
|
|
38
39
|
Pager: {
|
|
39
40
|
type: 'object',
|
|
40
41
|
additionalProperties: false,
|
|
41
42
|
properties: { page: { type: 'integer', minimum: 1, default: 1 }, pageSize: { type: 'integer', minimum: 1, maximum: maxPageSize, default: pageSize } },
|
|
42
43
|
},
|
|
43
|
-
};
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
if (owners.get(name) === node)
|
|
47
|
-
return false;
|
|
48
|
-
if (schemas[name])
|
|
49
|
-
throw new Error(`OpenAPI schema name collision: ${name}`);
|
|
50
|
-
owners.set(name, node);
|
|
51
|
-
schemas[name] = {};
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
44
|
+
});
|
|
45
|
+
const { schemas } = registry;
|
|
46
|
+
const reserve = (name, node) => registry.reserve(name, node);
|
|
54
47
|
function annotate(schema, node) {
|
|
55
48
|
for (const key of ['description', 'example', 'default', 'readOnly', 'writeOnly'])
|
|
56
49
|
if (node[key] !== undefined)
|
|
@@ -130,15 +123,29 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
130
123
|
}
|
|
131
124
|
schemas[fieldsName] = { type: 'object', additionalProperties: false, properties };
|
|
132
125
|
}
|
|
133
|
-
|
|
126
|
+
const tuple = {
|
|
134
127
|
type: 'array',
|
|
135
128
|
minItems: 1,
|
|
136
129
|
maxItems: list ? 2 : 1,
|
|
137
130
|
items: list ? { anyOf: [ref(fieldsName), options(entity, node)] } : ref(fieldsName),
|
|
138
131
|
description: list
|
|
139
132
|
? '[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.'
|
|
140
|
-
: '[fields]. * selects
|
|
133
|
+
: '[fields]. * selects scalar fields except relation keys; arrays, objects, relations, their keys and writeOnly fields must be handled explicitly.',
|
|
141
134
|
};
|
|
135
|
+
schemas[name] = list
|
|
136
|
+
? {
|
|
137
|
+
anyOf: [
|
|
138
|
+
tuple,
|
|
139
|
+
{
|
|
140
|
+
type: 'object',
|
|
141
|
+
additionalProperties: false,
|
|
142
|
+
required: ['union'],
|
|
143
|
+
properties: { union: { type: 'array', minItems: 1, items: ref(name) } },
|
|
144
|
+
description: 'Combines list scopes in array order and keeps the first record for each primary key.',
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
}
|
|
148
|
+
: tuple;
|
|
142
149
|
return ref(name);
|
|
143
150
|
}
|
|
144
151
|
function page(entity, node) {
|
|
@@ -155,7 +162,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
155
162
|
return ref(name);
|
|
156
163
|
const properties = { and: { type: 'array', items: ref(name) }, or: { type: 'array', minItems: 1, items: ref(name) }, not: ref(name) };
|
|
157
164
|
for (const [key, child] of Object.entries(node.children))
|
|
158
|
-
if (!child.writeOnly) {
|
|
165
|
+
if (!child.writeOnly && !child.virtual) {
|
|
159
166
|
if (Object.hasOwn(properties, key))
|
|
160
167
|
throw new Error(`Reserved filter field: ${entity.name}.${child.path}`);
|
|
161
168
|
properties[key] = !child.many && (child.relation || child.base === 'object') ? where(entity, child) : filter(entity, child);
|
|
@@ -178,8 +185,11 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
178
185
|
};
|
|
179
186
|
if (operand === 'condition')
|
|
180
187
|
properties[key] = ref(name);
|
|
181
|
-
else if (operand === 'element')
|
|
188
|
+
else if (operand === 'element') {
|
|
189
|
+
if (!element)
|
|
190
|
+
throw new Error(`Missing element filter for ${node.path}`);
|
|
182
191
|
properties[key] = element;
|
|
192
|
+
}
|
|
183
193
|
else
|
|
184
194
|
properties[key] =
|
|
185
195
|
operand === 'values' ? { type: 'array', items: scalar } : operand === 'text' ? { type: 'string' } : operand === 'comparison' ? { type: node.base } : scalar;
|
|
@@ -227,7 +237,7 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
227
237
|
in: 'query',
|
|
228
238
|
name: 'scope',
|
|
229
239
|
...json(scope(entity, entity.root, list)),
|
|
230
|
-
description: 'JSON [fields, arguments?]. Scalars use true; objects and relations use their own scope arrays. * includes
|
|
240
|
+
description: 'JSON [fields, arguments?] or, for lists, { union: [scope, ...] }. Scalars and primitive arrays use true; objects and relations use their own scope arrays. * includes scalar fields except relation keys. Arguments are available only on lists.',
|
|
231
241
|
});
|
|
232
242
|
const shape = [selectionParameter(false)];
|
|
233
243
|
const list = [selectionParameter(true)];
|
|
@@ -241,12 +251,13 @@ export function buildOpenapiDocument({ model, files = false, auth = false, pageS
|
|
|
241
251
|
operationId,
|
|
242
252
|
tags: [entity.collection],
|
|
243
253
|
parameters,
|
|
244
|
-
...(auth
|
|
254
|
+
...(auth ? { security: mutation ? [{ AuthBearer: [] }] : [{}, { AuthBearer: [] }] } : {}),
|
|
245
255
|
...(mutation?.hasBody ? { requestBody: { required: true, ...json(ref(`${name}${capitalize(mutation.mode)}`)) } } : {}),
|
|
246
256
|
responses: {
|
|
247
257
|
[mutation?.status ?? 200]: response('Success', schema),
|
|
248
258
|
...errors,
|
|
249
|
-
...(auth
|
|
259
|
+
...(auth ? { 401: response(mutation ? 'Authentication required' : 'Invalid or expired credentials', ref('Error')) } : {}),
|
|
260
|
+
...(auth && mutation ? { 403: response('Forbidden', ref('Error')) } : {}),
|
|
250
261
|
},
|
|
251
262
|
};
|
|
252
263
|
};
|