adminforth 2.34.0 → 2.35.0

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.
Files changed (40) hide show
  1. package/commands/createApp/templates/api.ts.hbs +25 -16
  2. package/commands/createApp/templates/package.json.hbs +2 -1
  3. package/dist/basePlugin.js +1 -1
  4. package/dist/basePlugin.js.map +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/modules/restApi.d.ts.map +1 -1
  10. package/dist/modules/restApi.js +495 -4
  11. package/dist/modules/restApi.js.map +1 -1
  12. package/dist/modules/utils.d.ts +1 -1
  13. package/dist/modules/utils.d.ts.map +1 -1
  14. package/dist/modules/utils.js +3 -5
  15. package/dist/modules/utils.js.map +1 -1
  16. package/dist/servers/express.d.ts +18 -7
  17. package/dist/servers/express.d.ts.map +1 -1
  18. package/dist/servers/express.js +137 -1
  19. package/dist/servers/express.js.map +1 -1
  20. package/dist/servers/openapi.d.ts +25 -0
  21. package/dist/servers/openapi.d.ts.map +1 -0
  22. package/dist/servers/openapi.js +92 -0
  23. package/dist/servers/openapi.js.map +1 -0
  24. package/dist/servers/openapiDocument.d.ts +12 -0
  25. package/dist/servers/openapiDocument.d.ts.map +1 -0
  26. package/dist/servers/openapiDocument.js +313 -0
  27. package/dist/servers/openapiDocument.js.map +1 -0
  28. package/dist/spa/package.json +1 -0
  29. package/dist/spa/pnpm-lock.yaml +346 -310
  30. package/dist/spa/pnpm-workspace.yaml +4 -0
  31. package/dist/spa/src/App.vue +1 -0
  32. package/dist/spa/src/stores/core.ts +15 -1
  33. package/dist/spa/src/types/Back.ts +109 -23
  34. package/dist/spa/src/types/adapters/CompletionAdapter.ts +10 -0
  35. package/dist/types/Back.d.ts +113 -18
  36. package/dist/types/Back.d.ts.map +1 -1
  37. package/dist/types/Back.js.map +1 -1
  38. package/dist/types/adapters/CompletionAdapter.d.ts +8 -1
  39. package/dist/types/adapters/CompletionAdapter.d.ts.map +1 -1
  40. package/package.json +5 -2
@@ -1,5 +1,6 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
+ import { apiReference } from '@scalar/express-api-reference';
3
4
  import fetch from 'node-fetch';
4
5
  import { WebSocketServer } from 'ws';
5
6
  import { WebSocketClient } from './common.js';
@@ -7,6 +8,7 @@ import http from 'http';
7
8
  import { randomUUID } from 'crypto';
8
9
  import { listify } from '../modules/utils.js';
9
10
  import { afLogger } from '../modules/logger.js';
11
+ import * as z from 'zod';
10
12
  function replaceAtStart(string, substring) {
11
13
  if (string.startsWith(substring)) {
12
14
  return string.slice(substring.length);
@@ -34,6 +36,23 @@ async function parseExpressCookie(req) {
34
36
  }
35
37
  return parseCookiesString(cookies);
36
38
  }
39
+ const EXPRESS_ROUTE_SCHEMA = Symbol('adminforth.express.withSchema');
40
+ function isZodSchemaLike(schema) {
41
+ return !!schema
42
+ && typeof schema === 'object'
43
+ && 'safeParse' in schema
44
+ && typeof schema.safeParse === 'function'
45
+ && ('_zod' in schema || '_def' in schema);
46
+ }
47
+ function normalizeExpressRuntimeSchema(schema) {
48
+ if (!schema) {
49
+ return undefined;
50
+ }
51
+ if (isZodSchemaLike(schema)) {
52
+ return z.toJSONSchema(schema, { target: 'openapi-3.0' });
53
+ }
54
+ return schema;
55
+ }
37
56
  const respondNoServer = (title, explanation) => {
38
57
  return `
39
58
  <!DOCTYPE html>
@@ -75,6 +94,7 @@ const respondNoServer = (title, explanation) => {
75
94
  };
76
95
  class ExpressServer {
77
96
  constructor(adminforth) {
97
+ this.schemaAwareRouteRegistrationPatched = false;
78
98
  this.adminforth = adminforth;
79
99
  }
80
100
  setupSpaServer() {
@@ -178,8 +198,11 @@ class ExpressServer {
178
198
  }
179
199
  serve(app) {
180
200
  this.expressApp = app;
201
+ this.patchSchemaAwareRouteRegistration();
202
+ this.registerSchemaAwareExistingRoutes();
181
203
  this.setupWsServer();
182
204
  this.adminforth.setupEndpoints(this);
205
+ this.setupOpenApiRoutes();
183
206
  this.setupSpaServer();
184
207
  }
185
208
  listen(...args) {
@@ -253,6 +276,11 @@ class ExpressServer {
253
276
  }
254
277
  };
255
278
  }
279
+ withSchema(schema, handler) {
280
+ const wrapped = ((...args) => handler(...args));
281
+ wrapped[EXPRESS_ROUTE_SCHEMA] = Object.assign(Object.assign({}, schema), { request: normalizeExpressRuntimeSchema(schema.request), response: normalizeExpressRuntimeSchema(schema.response) });
282
+ return wrapped;
283
+ }
256
284
  translatable(handler) {
257
285
  // same as authorize, but injects tr function into request
258
286
  return async (req, res, next) => {
@@ -261,11 +289,102 @@ class ExpressServer {
261
289
  handler(req, res, next);
262
290
  };
263
291
  }
264
- endpoint({ method = 'GET', path, handler, noAuth = false }) {
292
+ patchSchemaAwareRouteRegistration() {
293
+ if (this.schemaAwareRouteRegistrationPatched) {
294
+ return;
295
+ }
296
+ const methods = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options'];
297
+ methods.forEach((method) => {
298
+ var _a;
299
+ const original = (_a = this.expressApp[method]) === null || _a === void 0 ? void 0 : _a.bind(this.expressApp);
300
+ if (!original) {
301
+ return;
302
+ }
303
+ this.expressApp[method] = ((path, ...handlers) => {
304
+ this.registerSchemaAwareRoute([method], path, handlers);
305
+ return original(path, ...handlers);
306
+ });
307
+ });
308
+ this.schemaAwareRouteRegistrationPatched = true;
309
+ }
310
+ registerSchemaAwareExistingRoutes() {
311
+ var _a, _b;
312
+ const stack = (_b = (_a = this.expressApp) === null || _a === void 0 ? void 0 : _a._router) === null || _b === void 0 ? void 0 : _b.stack;
313
+ if (!Array.isArray(stack)) {
314
+ return;
315
+ }
316
+ stack.forEach((layer) => {
317
+ if (!layer.route) {
318
+ return;
319
+ }
320
+ const methods = Object.keys(layer.route.methods || {}).filter((method) => layer.route.methods[method]);
321
+ const handlers = (layer.route.stack || []).map((routeLayer) => routeLayer.handle);
322
+ this.registerSchemaAwareRoute(methods, layer.route.path, handlers);
323
+ });
324
+ }
325
+ registerSchemaAwareRoute(methods, path, handlers) {
326
+ var _a;
327
+ const flatHandlers = this.flattenHandlers(handlers);
328
+ const schema = (_a = flatHandlers.find((handler) => handler === null || handler === void 0 ? void 0 : handler[EXPRESS_ROUTE_SCHEMA])) === null || _a === void 0 ? void 0 : _a[EXPRESS_ROUTE_SCHEMA];
329
+ if (!schema || (!schema.request && !schema.response)) {
330
+ return;
331
+ }
332
+ const normalizedMethods = methods.filter((method, index, allMethods) => {
333
+ if (!method || method === '_all') {
334
+ return false;
335
+ }
336
+ if (method === 'head' && allMethods.includes('get')) {
337
+ return false;
338
+ }
339
+ return allMethods.indexOf(method) === index;
340
+ });
341
+ const routePaths = Array.isArray(path) ? path : [path];
342
+ routePaths.forEach((routePath) => {
343
+ if (typeof routePath !== 'string') {
344
+ return;
345
+ }
346
+ normalizedMethods.forEach((method) => {
347
+ this.adminforth.openApi.registerApiSchema({
348
+ method: method.toUpperCase(),
349
+ path: routePath,
350
+ description: schema.description,
351
+ request_schema: schema.request,
352
+ response_schema: schema.response,
353
+ handler: async () => null,
354
+ });
355
+ });
356
+ });
357
+ }
358
+ flattenHandlers(handlers) {
359
+ return handlers.flatMap((handler) => Array.isArray(handler) ? this.flattenHandlers(handler) : [handler]);
360
+ }
361
+ setupOpenApiRoutes() {
362
+ this.expressApp.get('/api/v1/openapi.json', (req, res) => {
363
+ res.json(this.adminforth.openApi.renderOpenApiDocument());
364
+ });
365
+ this.expressApp.use('/api-docs', apiReference({
366
+ url: '/api/v1/openapi.json',
367
+ theme: 'saturn',
368
+ }));
369
+ }
370
+ endpoint(options) {
371
+ const { method = 'GET', path, handler, noAuth = false, description, request_schema, response_schema, responce_schema, } = options;
265
372
  if (!path.startsWith('/')) {
266
373
  throw new Error(`Path must start with /, got: ${path}`);
267
374
  }
268
375
  const fullPath = `${this.adminforth.config.baseUrl}/adminapi/v1${path}`;
376
+ const normalizedResponseSchema = response_schema !== null && response_schema !== void 0 ? response_schema : responce_schema;
377
+ const registeredApiSchema = (request_schema || normalizedResponseSchema)
378
+ ? this.adminforth.openApi.registerApiSchema({
379
+ method,
380
+ noAuth,
381
+ path: fullPath,
382
+ description,
383
+ request_schema,
384
+ response_schema: normalizedResponseSchema,
385
+ handler,
386
+ })
387
+ : null;
269
388
  const expressHandler = async (req, res) => {
270
389
  var _a;
271
390
  const abortController = new AbortController();
@@ -295,8 +414,17 @@ class ExpressServer {
295
414
  catch (e) {
296
415
  afLogger.error(`Failed to parse body, ${e}`);
297
416
  res.status(400).send('Invalid JSON body');
417
+ return;
298
418
  }
299
419
  }
420
+ const requestValidation = this.adminforth.openApi.validateRequestSchema(registeredApiSchema, body);
421
+ if (!requestValidation.valid) {
422
+ res.status(400).json({
423
+ error: 'Request body validation failed',
424
+ details: requestValidation.errors,
425
+ });
426
+ return;
427
+ }
300
428
  const query = req.query;
301
429
  const adminUser = req.adminUser;
302
430
  // lower request headers
@@ -345,6 +473,14 @@ class ExpressServer {
345
473
  // nothing should be returned anymore
346
474
  return;
347
475
  }
476
+ const responseValidation = this.adminforth.openApi.validateResponseSchema(registeredApiSchema, output);
477
+ if (!responseValidation.valid) {
478
+ res.status(500).json({
479
+ error: 'Response validation failed',
480
+ details: responseValidation.errors,
481
+ });
482
+ return;
483
+ }
348
484
  res.json(output);
349
485
  };
350
486
  afLogger.trace(`👂 Adding endpoint ${method} ${fullPath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../servers/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../servers/express.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { AnySchemaObject, ValidateFunction } from 'ajv';
2
+ import { type IAdminForth, type IAdminForthApiValidationResult, type IAdminForthEndpointOptions, type IOpenApiRegistry, type IRegisteredApiSchema } from '../types/Back.js';
3
+ type CompiledApiSchema = IRegisteredApiSchema & {
4
+ validateRequest?: ValidateFunction;
5
+ validateResponse?: ValidateFunction;
6
+ };
7
+ declare class OpenApiRegistry implements IOpenApiRegistry {
8
+ adminforth: IAdminForth;
9
+ ajv: {
10
+ compile: (schema: AnySchemaObject) => ValidateFunction;
11
+ };
12
+ registeredSchemas: IRegisteredApiSchema[];
13
+ compiledSchemas: CompiledApiSchema[];
14
+ constructor(adminforth: IAdminForth);
15
+ registerApiSchema(options: IAdminForthEndpointOptions): IRegisteredApiSchema;
16
+ register_api_schema(options: IAdminForthEndpointOptions): IRegisteredApiSchema;
17
+ validateRequestSchema(route: IRegisteredApiSchema | null, payload: any): IAdminForthApiValidationResult;
18
+ validateResponseSchema(route: IRegisteredApiSchema | null, payload: any): IAdminForthApiValidationResult;
19
+ renderOpenApiDocument(): {
20
+ [key: string]: any;
21
+ };
22
+ private findCompiledRoute;
23
+ }
24
+ export default OpenApiRegistry;
25
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../servers/openapi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAe,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAG1E,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAS1B,KAAK,iBAAiB,GAAG,oBAAoB,GAAG;IAC9C,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAYF,cAAM,eAAgB,YAAW,gBAAgB;IAE/C,UAAU,EAAE,WAAW,CAAC;IACxB,GAAG,EAAE;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,gBAAgB,CAAC;KACxD,CAAC;IACF,iBAAiB,EAAE,oBAAoB,EAAE,CAAM;IAC/C,eAAe,EAAE,iBAAiB,EAAE,CAAM;gBAE9B,UAAU,EAAE,WAAW;IAQnC,iBAAiB,CAAC,OAAO,EAAE,0BAA0B,GAAG,oBAAoB;IA2B5E,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,oBAAoB;IAI9E,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,8BAA8B;IAgBvG,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,8BAA8B;IAgBxG,qBAAqB,IAAI;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAS7C,OAAO,CAAC,iBAAiB;CAO1B;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { createRequire } from 'module';
2
+ import { ADMINFORTH_VERSION } from '../modules/utils.js';
3
+ import { buildOpenApiDocument } from './openapiDocument.js';
4
+ const require = createRequire(import.meta.url);
5
+ const AjvConstructor = require('ajv');
6
+ function formatAjvErrors(errors) {
7
+ return (errors !== null && errors !== void 0 ? errors : []).map((error) => ({
8
+ instancePath: error.instancePath,
9
+ schemaPath: error.schemaPath,
10
+ keyword: error.keyword,
11
+ message: error.message,
12
+ params: error.params,
13
+ }));
14
+ }
15
+ class OpenApiRegistry {
16
+ constructor(adminforth) {
17
+ this.registeredSchemas = [];
18
+ this.compiledSchemas = [];
19
+ this.adminforth = adminforth;
20
+ this.ajv = new AjvConstructor({
21
+ allErrors: true,
22
+ strict: false,
23
+ });
24
+ }
25
+ registerApiSchema(options) {
26
+ var _a;
27
+ const responseSchema = (_a = options.response_schema) !== null && _a !== void 0 ? _a : options.responce_schema;
28
+ const route = {
29
+ method: options.method.toLowerCase(),
30
+ path: options.path,
31
+ description: options.description,
32
+ request_schema: options.request_schema,
33
+ response_schema: responseSchema,
34
+ };
35
+ const compiledRoute = Object.assign(Object.assign({}, route), { validateRequest: route.request_schema ? this.ajv.compile(route.request_schema) : undefined, validateResponse: route.response_schema ? this.ajv.compile(route.response_schema) : undefined });
36
+ const existingIndex = this.compiledSchemas.findIndex((schema) => schema.method === route.method && schema.path === route.path);
37
+ if (existingIndex >= 0) {
38
+ this.compiledSchemas[existingIndex] = compiledRoute;
39
+ this.registeredSchemas[existingIndex] = route;
40
+ }
41
+ else {
42
+ this.compiledSchemas.push(compiledRoute);
43
+ this.registeredSchemas.push(route);
44
+ }
45
+ return route;
46
+ }
47
+ register_api_schema(options) {
48
+ return this.registerApiSchema(options);
49
+ }
50
+ validateRequestSchema(route, payload) {
51
+ const compiledRoute = this.findCompiledRoute(route);
52
+ if (!(compiledRoute === null || compiledRoute === void 0 ? void 0 : compiledRoute.validateRequest)) {
53
+ return { valid: true };
54
+ }
55
+ if (compiledRoute.validateRequest(payload)) {
56
+ return { valid: true };
57
+ }
58
+ return {
59
+ valid: false,
60
+ errors: formatAjvErrors(compiledRoute.validateRequest.errors),
61
+ };
62
+ }
63
+ validateResponseSchema(route, payload) {
64
+ const compiledRoute = this.findCompiledRoute(route);
65
+ if (!(compiledRoute === null || compiledRoute === void 0 ? void 0 : compiledRoute.validateResponse)) {
66
+ return { valid: true };
67
+ }
68
+ if (compiledRoute.validateResponse(payload)) {
69
+ return { valid: true };
70
+ }
71
+ return {
72
+ valid: false,
73
+ errors: formatAjvErrors(compiledRoute.validateResponse.errors),
74
+ };
75
+ }
76
+ renderOpenApiDocument() {
77
+ return buildOpenApiDocument({
78
+ title: `${this.adminforth.config.customization.brandName || 'AdminForth'} API`,
79
+ version: ADMINFORTH_VERSION,
80
+ description: 'Generated from AdminForth endpoint schemas.',
81
+ routes: this.registeredSchemas,
82
+ });
83
+ }
84
+ findCompiledRoute(route) {
85
+ if (!route) {
86
+ return null;
87
+ }
88
+ return this.compiledSchemas.find((schema) => schema.method === route.method && schema.path === route.path) || null;
89
+ }
90
+ }
91
+ export default OpenApiRegistry;
92
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../servers/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { IRegisteredApiSchema } from '../types/Back.js';
2
+ type BuildOpenApiDocumentOptions = {
3
+ title: string;
4
+ version: string;
5
+ description: string;
6
+ routes: IRegisteredApiSchema[];
7
+ };
8
+ export declare function buildOpenApiDocument(options: BuildOpenApiDocumentOptions): {
9
+ [key: string]: any;
10
+ };
11
+ export {};
12
+ //# sourceMappingURL=openapiDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapiDocument.d.ts","sourceRoot":"","sources":["../../servers/openapiDocument.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAS7D,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC,CAAC;AAyUF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAmE/F"}