@nocobase/plugin-api-doc 0.13.0-alpha.1 → 0.13.0-alpha.10
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/client/index.js +177 -48574
- package/dist/index.js +33 -11
- package/dist/locale/en-US.js +22 -4
- package/dist/locale/index.js +36 -12
- package/dist/locale/zh-CN.js +22 -4
- package/dist/server/index.js +33 -11
- package/dist/server/server.js +26 -9
- package/dist/server/swagger/base-swagger.js +22 -4
- package/dist/server/swagger/collections/components/field-type-map.js +28 -5
- package/dist/server/swagger/collections/components/index.js +36 -14
- package/dist/server/swagger/collections/components/parameters.js +32 -11
- package/dist/server/swagger/collections/components/schemas.js +29 -12
- package/dist/server/swagger/collections/index.js +38 -17
- package/dist/server/swagger/collections/paths/associations/index.js +47 -19
- package/dist/server/swagger/collections/paths/associations/multiple-association.js +51 -32
- package/dist/server/swagger/collections/paths/associations/single-association.js +38 -21
- package/dist/server/swagger/collections/paths/collection.js +49 -20
- package/dist/server/swagger/collections/paths/index.d.ts +2 -0
- package/dist/server/swagger/collections/paths/index.js +53 -18
- package/dist/server/swagger/collections/tags/index.js +31 -14
- package/dist/server/swagger/constants.js +26 -4
- package/dist/server/swagger/helpers.js +28 -5
- package/dist/server/swagger/index.js +55 -29
- package/dist/server/swagger/loader.js +38 -14
- package/dist/server/swagger/merge.js +28 -7
- package/dist/swagger.js +22 -4
- package/package.json +2 -2
|
@@ -1,17 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var swagger_exports = {};
|
|
29
|
+
__export(swagger_exports, {
|
|
30
|
+
SwaggerManager: () => SwaggerManager
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(swagger_exports);
|
|
33
|
+
var import_base_swagger = __toESM(require("./base-swagger"));
|
|
34
|
+
var import_constants = require("./constants");
|
|
35
|
+
var import_helpers = require("./helpers");
|
|
36
|
+
var import_loader = require("./loader");
|
|
37
|
+
var import_merge = require("./merge");
|
|
38
|
+
var import_collections = __toESM(require("./collections"));
|
|
15
39
|
class SwaggerManager {
|
|
16
40
|
plugin;
|
|
17
41
|
constructor(plugin) {
|
|
@@ -25,9 +49,9 @@ class SwaggerManager {
|
|
|
25
49
|
}
|
|
26
50
|
async generateSwagger(options = {}) {
|
|
27
51
|
const base = await this.getBaseSwagger();
|
|
28
|
-
const core = options.plugins ? {} : await
|
|
52
|
+
const core = options.plugins ? {} : await (0, import_loader.loadSwagger)("@nocobase/server");
|
|
29
53
|
const plugins = await this.loadSwaggers(options.plugins);
|
|
30
|
-
return
|
|
54
|
+
return (0, import_merge.merge)((0, import_merge.merge)(core, plugins), base);
|
|
31
55
|
}
|
|
32
56
|
async getSwagger() {
|
|
33
57
|
return this.generateSwagger();
|
|
@@ -36,7 +60,7 @@ class SwaggerManager {
|
|
|
36
60
|
const collection = this.db.getCollection(collectionName);
|
|
37
61
|
return await (async () => {
|
|
38
62
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
39
|
-
return
|
|
63
|
+
return (0, import_collections.default)(collection, {
|
|
40
64
|
withAssociation
|
|
41
65
|
});
|
|
42
66
|
})();
|
|
@@ -46,7 +70,7 @@ class SwaggerManager {
|
|
|
46
70
|
let others = {};
|
|
47
71
|
if (name) {
|
|
48
72
|
const collectionSwagger = await this.collection2Swagger(name);
|
|
49
|
-
others =
|
|
73
|
+
others = (0, import_merge.merge)(others, collectionSwagger);
|
|
50
74
|
} else {
|
|
51
75
|
const collections = await this.db.getRepository("collections").find({
|
|
52
76
|
filter: {
|
|
@@ -59,13 +83,13 @@ class SwaggerManager {
|
|
|
59
83
|
continue;
|
|
60
84
|
}
|
|
61
85
|
try {
|
|
62
|
-
others =
|
|
86
|
+
others = (0, import_merge.merge)(others, await this.collection2Swagger(collection.name, false));
|
|
63
87
|
} catch (e) {
|
|
64
88
|
this.app.log.error(e);
|
|
65
89
|
}
|
|
66
90
|
}
|
|
67
91
|
}
|
|
68
|
-
return
|
|
92
|
+
return (0, import_merge.merge)(base, others);
|
|
69
93
|
}
|
|
70
94
|
async getPluginsSwagger(pluginName) {
|
|
71
95
|
return this.generateSwagger({
|
|
@@ -73,10 +97,10 @@ class SwaggerManager {
|
|
|
73
97
|
});
|
|
74
98
|
}
|
|
75
99
|
async getCoreSwagger() {
|
|
76
|
-
return
|
|
100
|
+
return (0, import_merge.merge)(await this.getBaseSwagger(), await (0, import_loader.loadSwagger)("@nocobase/server"));
|
|
77
101
|
}
|
|
78
102
|
async getUrls() {
|
|
79
|
-
const plugins = await
|
|
103
|
+
const plugins = await (0, import_loader.getPluginsSwagger)(this.db).then((res) => {
|
|
80
104
|
return Object.keys(res).map((name) => {
|
|
81
105
|
var _a;
|
|
82
106
|
const schema = res[name];
|
|
@@ -119,7 +143,7 @@ class SwaggerManager {
|
|
|
119
143
|
];
|
|
120
144
|
}
|
|
121
145
|
async getBaseSwagger() {
|
|
122
|
-
return
|
|
146
|
+
return (0, import_merge.merge)(import_base_swagger.default, {
|
|
123
147
|
info: {
|
|
124
148
|
version: await this.app.version.get()
|
|
125
149
|
},
|
|
@@ -151,7 +175,7 @@ class SwaggerManager {
|
|
|
151
175
|
property["type"] = "object";
|
|
152
176
|
property["$ref"] = `#/components/schemas/${target}`;
|
|
153
177
|
} else {
|
|
154
|
-
property.type =
|
|
178
|
+
property.type = import_constants.SchemaTypeMapping[type] || type;
|
|
155
179
|
if (property.type === "array" && !property.items) {
|
|
156
180
|
property.items = {
|
|
157
181
|
type: "object"
|
|
@@ -167,7 +191,7 @@ class SwaggerManager {
|
|
|
167
191
|
}
|
|
168
192
|
generateCollectionBuiltInInterface() {
|
|
169
193
|
const paths = {};
|
|
170
|
-
const IC =
|
|
194
|
+
const IC = (0, import_helpers.getInterfaceCollection)(this.app.resourcer.options);
|
|
171
195
|
this.db.collections.forEach((collection) => {
|
|
172
196
|
const { name } = collection;
|
|
173
197
|
let actions;
|
|
@@ -181,7 +205,7 @@ class SwaggerManager {
|
|
|
181
205
|
const collectionMethods = {};
|
|
182
206
|
Object.entries(IC).forEach(([path, actionNames]) => {
|
|
183
207
|
actionNames.forEach((actionName) => {
|
|
184
|
-
const actionMethods =
|
|
208
|
+
const actionMethods = (0, import_helpers.createDefaultActionSwagger)({
|
|
185
209
|
collection
|
|
186
210
|
});
|
|
187
211
|
const { method = "post", ...swaggerArgs } = actionMethods[actionName];
|
|
@@ -214,8 +238,10 @@ class SwaggerManager {
|
|
|
214
238
|
return paths;
|
|
215
239
|
}
|
|
216
240
|
loadSwaggers(plugins) {
|
|
217
|
-
return
|
|
241
|
+
return (0, import_loader.getSwaggerDocument)(this.db, plugins);
|
|
218
242
|
}
|
|
219
243
|
}
|
|
220
|
-
|
|
221
|
-
exports
|
|
244
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
245
|
+
0 && (module.exports = {
|
|
246
|
+
SwaggerManager
|
|
247
|
+
});
|
|
@@ -1,9 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var loader_exports = {};
|
|
19
|
+
__export(loader_exports, {
|
|
20
|
+
getPluginsSwagger: () => getPluginsSwagger,
|
|
21
|
+
getSwaggerDocument: () => getSwaggerDocument,
|
|
22
|
+
loadSwagger: () => loadSwagger,
|
|
23
|
+
mergeObjects: () => mergeObjects
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(loader_exports);
|
|
26
|
+
var import_server = require("@nocobase/server");
|
|
27
|
+
var import_utils = require("@nocobase/utils");
|
|
28
|
+
var import_merge = require("./merge");
|
|
7
29
|
const loadSwagger = (packageName) => {
|
|
8
30
|
const prefixes = ["src", "lib", "dist"];
|
|
9
31
|
const targets = ["swagger.json", "swagger/index.json", "swagger"];
|
|
@@ -13,7 +35,7 @@ const loadSwagger = (packageName) => {
|
|
|
13
35
|
const file = `${packageName}/${prefix}/${dict}`;
|
|
14
36
|
const filePath = require.resolve(file);
|
|
15
37
|
delete require.cache[filePath];
|
|
16
|
-
return
|
|
38
|
+
return (0, import_utils.requireModule)(file);
|
|
17
39
|
} catch (error) {
|
|
18
40
|
}
|
|
19
41
|
}
|
|
@@ -30,7 +52,7 @@ const getPluginsSwagger = async (db, pluginNames) => {
|
|
|
30
52
|
});
|
|
31
53
|
const swaggers = {};
|
|
32
54
|
for (const plugin of plugins) {
|
|
33
|
-
const packageName =
|
|
55
|
+
const packageName = import_server.PluginManager.getPackageName(plugin.get("name"));
|
|
34
56
|
const res = loadSwagger(packageName);
|
|
35
57
|
if (Object.keys(res).length) {
|
|
36
58
|
swaggers[plugin.get("name")] = res;
|
|
@@ -40,15 +62,17 @@ const getPluginsSwagger = async (db, pluginNames) => {
|
|
|
40
62
|
};
|
|
41
63
|
const mergeObjects = (objs) => {
|
|
42
64
|
return objs.reduce((cur, obj) => {
|
|
43
|
-
return
|
|
65
|
+
return (0, import_merge.merge)(cur, obj);
|
|
44
66
|
}, {});
|
|
45
67
|
};
|
|
46
68
|
const getSwaggerDocument = async (db, pluginNames) => {
|
|
47
69
|
const swaggers = await getPluginsSwagger(db, pluginNames);
|
|
48
70
|
return mergeObjects(Object.values(swaggers));
|
|
49
71
|
};
|
|
50
|
-
|
|
51
|
-
exports
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
getPluginsSwagger,
|
|
75
|
+
getSwaggerDocument,
|
|
76
|
+
loadSwagger,
|
|
77
|
+
mergeObjects
|
|
78
|
+
});
|
|
@@ -1,13 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var merge_exports = {};
|
|
19
|
+
__export(merge_exports, {
|
|
20
|
+
merge: () => merge
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(merge_exports);
|
|
23
|
+
var import_utils = require("@nocobase/utils");
|
|
5
24
|
const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray.concat(destinationArray);
|
|
6
25
|
function merge(obj1, obj2, opts) {
|
|
7
|
-
return
|
|
26
|
+
return (0, import_utils.merge)(obj1, obj2, {
|
|
8
27
|
arrayMerge: overwriteMerge,
|
|
9
28
|
...opts
|
|
10
29
|
});
|
|
11
30
|
}
|
|
12
|
-
|
|
13
|
-
exports
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
merge
|
|
34
|
+
});
|
package/dist/swagger.js
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var swagger_exports = {};
|
|
19
|
+
__export(swagger_exports, {
|
|
20
|
+
default: () => swagger_default
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(swagger_exports);
|
|
3
23
|
var swagger_default = {
|
|
4
24
|
info: {
|
|
5
25
|
title: "NocoBase API - API doc plugin"
|
|
@@ -42,5 +62,3 @@ var swagger_default = {
|
|
|
42
62
|
}
|
|
43
63
|
}
|
|
44
64
|
};
|
|
45
|
-
|
|
46
|
-
module.exports = swagger_default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-api-doc",
|
|
3
|
-
"version": "0.13.0-alpha.
|
|
3
|
+
"version": "0.13.0-alpha.10",
|
|
4
4
|
"displayName": "API documentation",
|
|
5
5
|
"displayName.zh-CN": "API 文档",
|
|
6
6
|
"description": "",
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"url": "git+https://github.com/nocobase/nocobase.git",
|
|
21
21
|
"directory": "packages/plugins/api-doc"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "5360ed81650f6895f3ed39aede2706467d55862c"
|
|
24
24
|
}
|