constantia 1.0.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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/dist/adapters/express.d.ts +36 -0
  4. package/dist/adapters/express.d.ts.map +1 -0
  5. package/dist/adapters/express.js +494 -0
  6. package/dist/adapters/express.js.map +1 -0
  7. package/dist/adapters/index.d.ts +9 -0
  8. package/dist/adapters/index.d.ts.map +1 -0
  9. package/dist/adapters/index.js +3 -0
  10. package/dist/adapters/index.js.map +1 -0
  11. package/dist/adapters/validation.d.ts +3 -0
  12. package/dist/adapters/validation.d.ts.map +1 -0
  13. package/dist/adapters/validation.js +171 -0
  14. package/dist/adapters/validation.js.map +1 -0
  15. package/dist/context.d.ts +37 -0
  16. package/dist/context.d.ts.map +1 -0
  17. package/dist/context.js +24 -0
  18. package/dist/context.js.map +1 -0
  19. package/dist/controllers.d.ts +9 -0
  20. package/dist/controllers.d.ts.map +1 -0
  21. package/dist/controllers.js +28 -0
  22. package/dist/controllers.js.map +1 -0
  23. package/dist/decorators.d.ts +38 -0
  24. package/dist/decorators.d.ts.map +1 -0
  25. package/dist/decorators.js +232 -0
  26. package/dist/decorators.js.map +1 -0
  27. package/dist/errors/index.d.ts +26 -0
  28. package/dist/errors/index.d.ts.map +1 -0
  29. package/dist/errors/index.js +52 -0
  30. package/dist/errors/index.js.map +1 -0
  31. package/dist/index.d.ts +18 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +19 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/logger.d.ts +11 -0
  36. package/dist/logger.d.ts.map +1 -0
  37. package/dist/logger.js +29 -0
  38. package/dist/logger.js.map +1 -0
  39. package/dist/metadata.d.ts +62 -0
  40. package/dist/metadata.d.ts.map +1 -0
  41. package/dist/metadata.js +304 -0
  42. package/dist/metadata.js.map +1 -0
  43. package/dist/openapi/helpers.d.ts +8 -0
  44. package/dist/openapi/helpers.d.ts.map +1 -0
  45. package/dist/openapi/helpers.js +343 -0
  46. package/dist/openapi/helpers.js.map +1 -0
  47. package/dist/openapi/index.d.ts +15 -0
  48. package/dist/openapi/index.d.ts.map +1 -0
  49. package/dist/openapi/index.js +134 -0
  50. package/dist/openapi/index.js.map +1 -0
  51. package/dist/openapi/types.d.ts +129 -0
  52. package/dist/openapi/types.d.ts.map +1 -0
  53. package/dist/openapi/types.js +34 -0
  54. package/dist/openapi/types.js.map +1 -0
  55. package/dist/types/files.d.ts +38 -0
  56. package/dist/types/files.d.ts.map +1 -0
  57. package/dist/types/files.js +50 -0
  58. package/dist/types/files.js.map +1 -0
  59. package/dist/types/index.d.ts +20 -0
  60. package/dist/types/index.d.ts.map +1 -0
  61. package/dist/types/index.js +121 -0
  62. package/dist/types/index.js.map +1 -0
  63. package/dist/types/middleware.d.ts +10 -0
  64. package/dist/types/middleware.d.ts.map +1 -0
  65. package/dist/types/middleware.js +16 -0
  66. package/dist/types/middleware.js.map +1 -0
  67. package/dist/types/stream.d.ts +29 -0
  68. package/dist/types/stream.d.ts.map +1 -0
  69. package/dist/types/stream.js +13 -0
  70. package/dist/types/stream.js.map +1 -0
  71. package/package.json +134 -0
@@ -0,0 +1,52 @@
1
+ export class FrameworkError extends Error {
2
+ status;
3
+ constructor(message, status, name) {
4
+ super(message);
5
+ this.status = status;
6
+ this.name = name;
7
+ }
8
+ static __type = [() => Error, 'message', 'status', 'name', 'constructor', 'FrameworkError', 'P7!P&2"\'2#:9&2$"0%5w&'];
9
+ }
10
+ export class InternalServerError extends FrameworkError {
11
+ constructor(message, status = 500) {
12
+ super(message, status, 'Internal Server Error');
13
+ }
14
+ static __type = [() => FrameworkError, 'message', 'status', () => 500, 'constructor', 'InternalServerError', 'P7!P&2"\'2#>$"0%5w&'];
15
+ }
16
+ export class BadRequestError extends FrameworkError {
17
+ constructor(message, status = 400) {
18
+ super(message, status, 'Bad Request');
19
+ }
20
+ static __type = [() => FrameworkError, 'message', 'status', () => 400, 'constructor', 'BadRequestError', 'P7!P&2"\'2#>$"0%5w&'];
21
+ }
22
+ export class NotFoundError extends FrameworkError {
23
+ constructor(message, status = 404) {
24
+ super(message, status, 'Not Found');
25
+ }
26
+ static __type = [() => FrameworkError, 'message', 'status', () => 404, 'constructor', 'NotFoundError', 'P7!P&2"\'2#>$"0%5w&'];
27
+ }
28
+ export class UnauthorizedError extends FrameworkError {
29
+ constructor(message, status = 401) {
30
+ super(message, status, 'Unauthorized');
31
+ }
32
+ static __type = [() => FrameworkError, 'message', 'status', () => 401, 'constructor', 'UnauthorizedError', 'P7!P&2"\'2#>$"0%5w&'];
33
+ }
34
+ export class ForbiddenError extends FrameworkError {
35
+ constructor(message, status = 403) {
36
+ super(message, status, 'Forbidden');
37
+ }
38
+ static __type = [() => FrameworkError, 'message', 'status', () => 403, 'constructor', 'ForbiddenError', 'P7!P&2"\'2#>$"0%5w&'];
39
+ }
40
+ export class StatusCodeErrorError extends FrameworkError {
41
+ constructor(message, status) {
42
+ super(message, status, 'StatusCodeError');
43
+ }
44
+ static __type = [() => FrameworkError, 'message', 'status', 'constructor', 'StatusCodeErrorError', 'P7!P&2"\'2#"0$5w%'];
45
+ }
46
+ export class MissingInjectionError extends FrameworkError {
47
+ constructor(key) {
48
+ super(`Context value "${key}" was not injected`, 500, 'MissingInjection');
49
+ }
50
+ static __type = [() => FrameworkError, 'key', 'constructor', 'MissingInjectionError', 'P7!P&2""0#5w$'];
51
+ }
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGjB;IAFpB,YACI,OAAe,EACC,MAAc,EAC9B,IAAY;QAEZ,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;;;AAGL,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACnD,YAAY,OAAe,EAAE,SAAiB,GAAG;QAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACpD,CAAC;;;AAGL,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,SAAiB,GAAG;QAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;;;AAGL,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,SAAiB,GAAG;QAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;;;AAGL,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACjD,YAAY,OAAe,EAAE,SAAiB,GAAG;QAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;;;AAGL,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YAAY,OAAe,EAAE,SAAiB,GAAG;QAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;;;AAGL,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACpD,YAAY,OAAe,EAAE,MAAc;QACvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9C,CAAC;;;AAGL,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACrD,YAAY,GAAW;QACnB,KAAK,CACD,kBAAkB,GAAG,oBAAoB,EACzC,GAAG,EACH,kBAAkB,CACrB,CAAC;IACN,CAAC"}
@@ -0,0 +1,18 @@
1
+ export { Controller, Get, Post, Put, Delete, Patch, Route, Body, Query, Param, Header, Inject, RawBody, File, Files, DataStream, FileStream, Use, DefaultHandler, } from './decorators.js';
2
+ export type { HttpMethod } from './decorators.js';
3
+ export { BasicContext } from './context.js';
4
+ export type { Context, IRequest, IResponse } from './context.js';
5
+ export { MetadataStorage } from './metadata.js';
6
+ export type { ControllerMetadata, RouteMetadata, ParameterMetadata, } from './metadata.js';
7
+ export { FrameworkError, BadRequestError, NotFoundError, UnauthorizedError, ForbiddenError, InternalServerError, StatusCodeErrorError, MissingInjectionError, } from './errors/index.js';
8
+ export type { SchemaType, FileInput, IFile, DataStreamResponse, FileStreamResponse, StreamOptions, Middleware, MiddlewareFactory, } from './types/index.js';
9
+ export { extractMethodReturnSchema, reflectionToSchema, reflectionTypeToSchema, extractParameterSchema, createMiddlewareFactory, } from './types/index.js';
10
+ export { File as FrameworkFile } from './types/files.js';
11
+ export { ExpressAdapter } from './adapters/express.js';
12
+ export type { IFrameworkAdapter } from './adapters/index.js';
13
+ export { registerOpenAPI } from './openapi/index.js';
14
+ export type { OpenAPISpec, OpenAPIConfig, RegisterOpenAPIOptions, } from './openapi/index.js';
15
+ export { registerControllersWrapper, registerGlobalMiddlewaresWrapper, } from './controllers.js';
16
+ export { setLogger, getLogger, logger } from './logger.js';
17
+ export type { Logger } from './logger.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,GAAG,EACH,IAAI,EACJ,GAAG,EACH,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,GAAG,EACH,cAAc,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EACR,kBAAkB,EAClB,aAAa,EACb,iBAAiB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACxB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACR,UAAU,EACV,SAAS,EACT,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,iBAAiB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACH,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EACR,WAAW,EACX,aAAa,EACb,sBAAsB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACH,0BAA0B,EAC1B,gCAAgC,GACnC,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ // Decorators
2
+ export { Controller, Get, Post, Put, Delete, Patch, Route, Body, Query, Param, Header, Inject, RawBody, File, Files, DataStream, FileStream, Use, DefaultHandler, } from './decorators.js';
3
+ // Context
4
+ export { BasicContext } from './context.js';
5
+ // Metadata
6
+ export { MetadataStorage } from './metadata.js';
7
+ // Errors
8
+ export { FrameworkError, BadRequestError, NotFoundError, UnauthorizedError, ForbiddenError, InternalServerError, StatusCodeErrorError, MissingInjectionError, } from './errors/index.js';
9
+ export { extractMethodReturnSchema, reflectionToSchema, reflectionTypeToSchema, extractParameterSchema, createMiddlewareFactory, } from './types/index.js';
10
+ export { File as FrameworkFile } from './types/files.js';
11
+ // Adapters
12
+ export { ExpressAdapter } from './adapters/express.js';
13
+ // OpenAPI
14
+ export { registerOpenAPI } from './openapi/index.js';
15
+ // Controllers registration
16
+ export { registerControllersWrapper, registerGlobalMiddlewaresWrapper, } from './controllers.js';
17
+ // Logger
18
+ export { setLogger, getLogger, logger } from './logger.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EACH,UAAU,EACV,GAAG,EACH,IAAI,EACJ,GAAG,EACH,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,GAAG,EACH,cAAc,GACjB,MAAM,cAAc,CAAC;AAGtB,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO7C,SAAS;AACT,OAAO,EACH,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACxB,MAAM,UAAU,CAAC;AAalB,OAAO,EACH,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAEtD,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAO5C,2BAA2B;AAC3B,OAAO,EACH,0BAA0B,EAC1B,gCAAgC,GACnC,MAAM,eAAe,CAAC;AAEvB,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface Logger {
2
+ info: (message: string) => void;
3
+ warn: (message: string) => void;
4
+ error: (message: string, error?: Error) => void;
5
+ debug: (message: string) => void;
6
+ }
7
+ export declare const setLogger: (logger: Logger) => void;
8
+ export declare const getLogger: () => Logger;
9
+ export declare const logger: Logger;
10
+ export declare type __ΩLogger = any[];
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAcD,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,IAE1C,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAAuB,CAAC;AAErD,eAAO,MAAM,MAAM,EAAE,MAMpB,CAAC"}
package/dist/logger.js ADDED
@@ -0,0 +1,29 @@
1
+ const __ΩError = ['name', 'message', 'stack', 'Error', 'P&4!&4"&4#8Mw$y'];
2
+ function __assignType(fn, args) {
3
+ fn.__type = args;
4
+ return fn;
5
+ }
6
+ const __ΩLogger = ['message', '', 'info', 'warn', () => __ΩError, 'error', 'debug', 'Logger', 'PP&2!$/"4#P&2!$/"4$P&2!n%2&8$/"4&P&2!$/"4\'Mw(y'];
7
+ export { __ΩLogger as __ΩLogger };
8
+ const consoleLogger = {
9
+ info: __assignType((message) => console.log(`[INFO] ${message}`), ['message', '', 'P&2!"/"']),
10
+ warn: __assignType((message) => console.warn(`[WARN] ${message}`), ['message', '', 'P&2!"/"']),
11
+ error: __assignType((message, error) => {
12
+ console.error(`[ERROR] ${message}`);
13
+ if (error)
14
+ console.error(error);
15
+ }, ['message', () => __ΩError, 'error', '', 'P&2!n"2#8"/$']),
16
+ debug: __assignType((message) => console.debug(`[DEBUG] ${message}`), ['message', '', 'P&2!"/"']),
17
+ };
18
+ let currentLogger = consoleLogger;
19
+ export const setLogger = __assignType((logger) => {
20
+ currentLogger = logger;
21
+ }, [() => __ΩLogger, 'logger', '', 'Pn!2"$/#']);
22
+ export const getLogger = __assignType(() => currentLogger, [() => __ΩLogger, '', 'Pn!/"']);
23
+ export const logger = {
24
+ info: __assignType((message) => currentLogger.info(message), ['message', '', 'P&2!"/"']),
25
+ warn: __assignType((message) => currentLogger.warn(message), ['message', '', 'P&2!"/"']),
26
+ error: __assignType((message, error) => currentLogger.error(message, error), ['message', () => __ΩError, 'error', '', 'P&2!n"2#8"/$']),
27
+ debug: __assignType((message) => currentLogger.debug(message), ['message', '', 'P&2!"/"']),
28
+ };
29
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;;AAOA,MAAM,aAAa,GAAW;IAC1B,IAAI,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,6BAAA;IAC3D,IAAI,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,6BAAA;IAC5D,KAAK,eAAE,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,2DAAA;IACD,KAAK,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,6BAAA;CAClE,CAAC;AAEF,IAAI,aAAa,GAAW,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,gBAAG,CAAC,MAAc,EAAQ,EAAE;IAC9C,aAAa,GAAG,MAAM,CAAC;AAC3B,CAAC,8CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,gBAAG,GAAW,EAAE,CAAC,aAAa,iCAAA,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAW;IAC1B,IAAI,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,6BAAA;IACtD,IAAI,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,6BAAA;IACtD,KAAK,eAAE,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE,CACtC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,2DAAA;IACvC,KAAK,eAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,6BAAA;CAC3D,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { StreamOptions } from './types/stream.js';
2
+ import type { SchemaType, Middleware } from './types/index.js';
3
+ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
4
+ declare class MetadataStorage {
5
+ private static instance;
6
+ controllers: Map<Function, ControllerMetadata>;
7
+ private pendingRoutes;
8
+ private pendingParameters;
9
+ private pendingStreams;
10
+ private pendingMiddlewares;
11
+ private pendingDefaultHandlers;
12
+ static getInstance(): MetadataStorage;
13
+ private constructor();
14
+ addMiddleware(target: Function, methodName: string | undefined, ...mw: Middleware[]): number | void;
15
+ addController(target: Function, path: string): void;
16
+ addRoute(target: Function, metadata: Omit<RouteMetadata, 'parameters' | 'middlewares'>): void;
17
+ addParameter(target: Function, methodName: string, parameter: ParameterMetadata): void;
18
+ addDefaultHandler(target: Function, methodName: string, handler: Function): void;
19
+ private validateParameterCombination;
20
+ private sortRoutes;
21
+ addStreamInfo(target: Function, methodName: string, streamType: 'dataStream' | 'fileStream', options: StreamOptions): void;
22
+ private validateParamNameAgainstRoute;
23
+ }
24
+ interface ParameterMetadata {
25
+ name?: string;
26
+ required: boolean;
27
+ schema: SchemaType;
28
+ parameterIndex: number;
29
+ type: 'body' | 'query' | 'param' | 'header' | 'file' | 'ctx' | 'rawBody';
30
+ options?: {
31
+ maxFileSize?: number;
32
+ forceArray?: boolean;
33
+ maxFiles?: number;
34
+ };
35
+ }
36
+ interface RouteMetadata {
37
+ path: string;
38
+ handler: Function;
39
+ methodName: string;
40
+ method: HttpMethod;
41
+ stream?: {
42
+ options: StreamOptions;
43
+ streamType: 'dataStream' | 'fileStream';
44
+ };
45
+ returnType: SchemaType;
46
+ parameters: ParameterMetadata[];
47
+ middlewares: Middleware[];
48
+ }
49
+ export interface ControllerMetadata {
50
+ path: string;
51
+ routes: RouteMetadata[];
52
+ middlewares: Middleware[];
53
+ defaultHandler?: {
54
+ methodName: string;
55
+ handler: Function;
56
+ middlewares: Middleware[];
57
+ };
58
+ }
59
+ export { MetadataStorage };
60
+ export type { ParameterMetadata, RouteMetadata };
61
+ export declare type __ΩControllerMetadata = any[];
62
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ const __ΩOmit = ['T', 'K', () => __ΩPick, () => __ΩExclude, 'Omit', 'b!b"e!!e!!ge!"o$#o##w%y'];
2
+ const __ΩPick = ['T', 'K', 'Pick', 'l+e#!e"!fRb!b"Pde""N#!w#y'];
3
+ const __ΩExclude = ['T', 'U', 'Exclude', 'l6!Re$!RPe#!e$"qk#%QRb!b"Pde"!p)w#y'];
4
+ /*@ts-ignore*/
5
+ import { __ΩStreamOptions } from './types/stream.js';
6
+ function __assignType(fn, args) {
7
+ fn.__type = args;
8
+ return fn;
9
+ }
10
+ const __ΩHttpMethod = ["GET", "POST", "PUT", "DELETE", "PATCH", 'HttpMethod', 'P.!.".#.$.%Jw&y'];
11
+ class MetadataStorage {
12
+ static instance;
13
+ controllers = new Map();
14
+ pendingRoutes = new Map();
15
+ pendingParameters = new Map();
16
+ pendingStreams = new Map();
17
+ pendingMiddlewares = (Map.Ω = [[() => Function, 'Pu!'], ['Middleware', '&"w!FE']], new Map());
18
+ pendingDefaultHandlers = (Map.Ω = [[() => Function, 'Pu!'], ['methodName', () => Function, 'handler', 'P&4!Pu"4#M']], new Map());
19
+ static getInstance() {
20
+ if (!MetadataStorage.instance)
21
+ MetadataStorage.instance = new MetadataStorage();
22
+ return MetadataStorage.instance;
23
+ }
24
+ constructor() { }
25
+ addMiddleware(target, methodName, ...mw) {
26
+ if (this.controllers.has(target)) {
27
+ const meta = this.controllers.get(target);
28
+ if (methodName) {
29
+ const r = meta.routes.find(__assignType((r) => r.methodName === methodName, ['r', '', 'P"2!"/"']));
30
+ if (!r)
31
+ throw new Error(`@Use on "${methodName}" but route not found in ${target.name}`);
32
+ return r.middlewares.push(...mw);
33
+ }
34
+ meta.middlewares.unshift(...mw);
35
+ if (meta.defaultHandler) {
36
+ meta.defaultHandler.middlewares = [
37
+ ...mw,
38
+ ...meta.defaultHandler.middlewares,
39
+ ];
40
+ }
41
+ return meta.routes.forEach(__assignType((r) => r.middlewares.unshift(...mw), ['r', '', 'P"2!"/"']));
42
+ }
43
+ const store = this.pendingMiddlewares.get(target) ?? new Map();
44
+ const key = methodName ?? '__class';
45
+ store.set(key, [...(store.get(key) ?? []), ...mw]);
46
+ this.pendingMiddlewares.set(target, store);
47
+ }
48
+ addController(target, path) {
49
+ if (this.controllers.has(target))
50
+ throw new Error(`ERROR adding controller ${target.name}, controller already defined`);
51
+ if (!path || path.trim() === '' || path === '/') {
52
+ throw new Error(`ERROR adding controller ${target.name}: controller path cannot be empty or contain only whitespace`);
53
+ }
54
+ if (path.includes(':')) {
55
+ throw new Error(`ERROR adding controller ${target.name}: controller path \"${path}\" cannot contain route parameters (:param). Parameters are only allowed in route paths.`);
56
+ }
57
+ if (!/^[\\/a-zA-Z0-9-_\\.]+$/.test(path)) {
58
+ throw new Error(`ERROR adding controller ${target.name}: controller path \"${path}\" can only contain letters, numbers, hyphens, underscores, and dots (no whitespace)`);
59
+ }
60
+ const defaultHandler = this.pendingDefaultHandlers.get(target);
61
+ const routes = this.pendingRoutes.get(target);
62
+ if (!defaultHandler && !routes) {
63
+ throw new Error(`ERROR adding controller ${target.name}, no routes or default handler defined`);
64
+ }
65
+ if (defaultHandler && routes && routes.size > 0) {
66
+ throw new Error(`ERROR adding controller ${target.name}, cannot have both default handler and route methods`);
67
+ }
68
+ const parameters = this.pendingParameters.get(target) || new Map();
69
+ const classLevel = this.pendingMiddlewares.get(target)?.get('__class') ?? [];
70
+ let finalRoutes = [];
71
+ if (routes) {
72
+ finalRoutes = this.sortRoutes(Array.from(routes.values()).map(__assignType((route) => {
73
+ const perRoute = this.pendingMiddlewares
74
+ .get(target)
75
+ ?.get(route.methodName) ?? [];
76
+ return {
77
+ ...route,
78
+ middlewares: [...classLevel, ...perRoute],
79
+ parameters: (parameters.get(route.methodName) || []).sort(__assignType((a, b) => a.parameterIndex - b.parameterIndex, [() => __ΩParameterMetadata, 'a', () => __ΩParameterMetadata, 'b', '', 'Pn!2"n#2$"/%'])),
80
+ };
81
+ }, ['route', '', 'P"2!"/"'])));
82
+ }
83
+ this.controllers.set(target, {
84
+ path,
85
+ routes: finalRoutes,
86
+ middlewares: classLevel,
87
+ defaultHandler: defaultHandler
88
+ ? {
89
+ methodName: defaultHandler.methodName,
90
+ handler: defaultHandler.handler,
91
+ middlewares: [
92
+ ...classLevel,
93
+ ...(this.pendingMiddlewares
94
+ .get(target)
95
+ ?.get(defaultHandler.methodName) ?? []),
96
+ ],
97
+ }
98
+ : undefined,
99
+ });
100
+ this.pendingRoutes.delete(target);
101
+ this.pendingParameters.delete(target);
102
+ this.pendingMiddlewares.delete(target);
103
+ this.pendingDefaultHandlers.delete(target);
104
+ }
105
+ addRoute(target, metadata) {
106
+ if (this.controllers.has(target)) {
107
+ throw new Error(`ERROR adding ${metadata.methodName} to controller ${target.name}, controller already defined`);
108
+ }
109
+ const allowedTypes = [
110
+ 'object',
111
+ 'array',
112
+ 'dataStream',
113
+ 'fileStream',
114
+ 'null',
115
+ ];
116
+ if (!allowedTypes.includes(metadata.returnType.type))
117
+ throw new Error(`ERROR in ${metadata.methodName}: return type must be ${allowedTypes.join(', ')} not ${metadata.returnType.type}`);
118
+ const parameters = this.pendingParameters.get(target)?.get(metadata.methodName) || [];
119
+ const pathParams = (metadata.path.match(/:[a-zA-Z_$][a-zA-Z0-9_$]*/g) || []).map(__assignType((p) => p.substring(1), ['p', '', 'P"2!"/"']));
120
+ const paramDecorators = parameters.filter(__assignType((p) => p.type === 'param', ['p', '', 'P"2!"/"']));
121
+ if (pathParams.length > 0 && paramDecorators.length === 0) {
122
+ throw new Error(`ERROR in ${metadata.methodName}: route "${metadata.path}" has parameters but no @Param decorators`);
123
+ }
124
+ if (pathParams.length === 0 && paramDecorators.length !== 0) {
125
+ throw new Error(`ERROR in ${metadata.methodName}: route "${metadata.path}" has no parameters but @Param decorators are used`);
126
+ }
127
+ if (pathParams.length !== paramDecorators.length) {
128
+ throw new Error(`ERROR in ${metadata.methodName}: route "${metadata.path}" has ${pathParams.length} parameters but found ${paramDecorators.length} @Param decorators`);
129
+ }
130
+ const decoratorNames = paramDecorators
131
+ .map(__assignType((p) => p.name, ['p', '', 'P"2!"/"']))
132
+ .filter(__assignType((name) => name !== undefined, ['name', '', 'P"2!!/"']));
133
+ const missingParams = decoratorNames.filter(__assignType((name) => !pathParams.includes(name), ['name', '', 'P"2!"/"']));
134
+ if (missingParams.length > 0) {
135
+ throw new Error(`ERROR in ${metadata.methodName}: @Param decorator names [${missingParams.join(', ')}] don't match any route parameters in "${metadata.path}"`);
136
+ }
137
+ const uniqueDecoratorNames = new Set(decoratorNames);
138
+ if (uniqueDecoratorNames.size !== decoratorNames.length) {
139
+ throw new Error(`ERROR in ${metadata.methodName}: duplicate @Param decorator names found`);
140
+ }
141
+ const routes = this.pendingRoutes.get(target) || new Map();
142
+ const normalizedPath = metadata.path
143
+ ? metadata.path.startsWith('/')
144
+ ? metadata.path
145
+ : `/${metadata.path}`
146
+ : '/';
147
+ const duplicateRoute = Array.from(routes.values()).find(__assignType((route) => {
148
+ const existingPath = route.path
149
+ ? route.path.startsWith('/')
150
+ ? route.path
151
+ : `/${route.path}`
152
+ : '/';
153
+ return (route.method === metadata.method &&
154
+ existingPath === normalizedPath);
155
+ }, ['route', '', 'P"2!"/"']));
156
+ if (duplicateRoute)
157
+ throw new Error(`ERROR adding ${metadata.methodName} in controller ${target.name}, route with method ${metadata.method} and path "${metadata.path}" already defined in ${duplicateRoute.methodName}`);
158
+ const streamInfo = this.pendingStreams
159
+ .get(target)
160
+ ?.get(metadata.methodName);
161
+ if (streamInfo) {
162
+ if (streamInfo.streamType === 'fileStream' &&
163
+ metadata.returnType.type !== 'fileStream') {
164
+ throw new Error(`ERROR in ${metadata.methodName}: Routes with file stream must return FileStreamResponse`);
165
+ }
166
+ if (streamInfo.streamType === 'dataStream' &&
167
+ metadata.returnType.type !== 'dataStream') {
168
+ throw new Error(`ERROR in ${metadata.methodName}: Routes with data stream must return DataStreamResponse`);
169
+ }
170
+ }
171
+ routes.set(metadata.methodName, {
172
+ ...metadata,
173
+ path: normalizedPath,
174
+ parameters: [],
175
+ stream: streamInfo,
176
+ middlewares: [],
177
+ });
178
+ this.pendingRoutes.set(target, routes);
179
+ }
180
+ addParameter(target, methodName, parameter) {
181
+ if (this.controllers.has(target)) {
182
+ throw new Error(`ERROR adding parameter to ${methodName} in controller ${target.name}, controller already defined`);
183
+ }
184
+ const parameters = this.pendingParameters.get(target) || new Map();
185
+ const methodParams = parameters.get(methodName) || [];
186
+ this.validateParameterCombination(methodName, parameter, methodParams);
187
+ if (parameter.type === 'param') {
188
+ this.validateParamNameAgainstRoute(target, methodName, parameter.name);
189
+ }
190
+ methodParams.push(parameter);
191
+ parameters.set(methodName, methodParams);
192
+ this.pendingParameters.set(target, parameters);
193
+ }
194
+ addDefaultHandler(target, methodName, handler) {
195
+ if (this.controllers.has(target)) {
196
+ throw new Error(`ERROR adding default handler to controller ${target.name}, controller already defined`);
197
+ }
198
+ if (this.pendingDefaultHandlers.has(target)) {
199
+ throw new Error(`ERROR adding default handler ${methodName} to controller ${target.name}, default handler already defined`);
200
+ }
201
+ this.pendingDefaultHandlers.set(target, { methodName, handler });
202
+ }
203
+ validateParameterCombination(methodName, newParam, existingParams) {
204
+ if (newParam.type === 'body' &&
205
+ existingParams.some(__assignType((p) => p.type === 'body', ['p', '', 'P"2!"/"']))) {
206
+ throw new Error(`ERROR in ${methodName}: multiple @Body decorators are not allowed`);
207
+ }
208
+ if (newParam.type === 'param') {
209
+ const existingParam = existingParams.find(__assignType((p) => p.type === 'param' && p.name === newParam.name, ['p', '', 'P"2!"/"']));
210
+ if (existingParam) {
211
+ throw new Error(`ERROR in ${methodName}: duplicate @Param decorator for parameter "${newParam.name}"`);
212
+ }
213
+ }
214
+ if ((newParam.type === 'body' &&
215
+ existingParams.some(__assignType((p) => p.type === 'query', ['p', '', 'P"2!"/"']))) ||
216
+ (newParam.type === 'query' &&
217
+ existingParams.some(__assignType((p) => p.type === 'body', ['p', '', 'P"2!"/"'])))) {
218
+ throw new Error(`ERROR in ${methodName}: cannot combine @Body with @Query parameters`);
219
+ }
220
+ if (!newParam.required &&
221
+ newParam.type !== 'query' &&
222
+ newParam.type !== 'file') {
223
+ throw new Error(`ERROR in ${methodName}: only @Query and @File parameters can be optional`);
224
+ }
225
+ if (newParam.type === 'query' || newParam.type === 'param') {
226
+ const schema = newParam.schema;
227
+ if (!schema ||
228
+ typeof schema !== 'object' ||
229
+ !('type' in schema) ||
230
+ (schema.type !== 'string' && schema.type !== 'number')) {
231
+ const isQuery = newParam.type === 'query';
232
+ throw new Error(`ERROR in ${methodName}: @${isQuery ? 'Query' : 'Param'} parameters must be of type string or number, got ${schema && typeof schema === 'object' && 'type' in schema
233
+ ? schema.type
234
+ : 'invalid type'}`);
235
+ }
236
+ }
237
+ if (newParam.type === 'body') {
238
+ const schema = newParam.schema;
239
+ if (!schema ||
240
+ typeof schema !== 'object' ||
241
+ !('type' in schema) ||
242
+ schema.type !== 'object') {
243
+ throw new Error(`ERROR in ${methodName}: @Body parameter must be of type object, got ${schema && typeof schema === 'object' && 'type' in schema
244
+ ? schema.type
245
+ : 'invalid type'}`);
246
+ }
247
+ }
248
+ }
249
+ sortRoutes(routes) {
250
+ return routes.sort(__assignType((routeA, routeB) => {
251
+ const segmentsA = routeA.path.split('/').filter(Boolean);
252
+ const segmentsB = routeB.path.split('/').filter(Boolean);
253
+ const minLength = Math.min(segmentsA.length, segmentsB.length);
254
+ for (let i = 0; i < minLength; i++) {
255
+ const isParamA = segmentsA[i].startsWith(':');
256
+ const isParamB = segmentsB[i].startsWith(':');
257
+ if (isParamA !== isParamB) {
258
+ return isParamA ? 1 : -1;
259
+ }
260
+ if (!isParamA && !isParamB && segmentsA[i] !== segmentsB[i]) {
261
+ return segmentsA[i].localeCompare(segmentsB[i]);
262
+ }
263
+ }
264
+ if (segmentsA.length !== segmentsB.length) {
265
+ return segmentsA.length - segmentsB.length;
266
+ }
267
+ return 0;
268
+ }, ['routeA', 'routeB', '', 'P"2!"2""/#']));
269
+ }
270
+ addStreamInfo(target, methodName, streamType, options) {
271
+ const streams = this.pendingStreams.get(target) || new Map();
272
+ streams.set(methodName, { options, streamType });
273
+ this.pendingStreams.set(target, streams);
274
+ }
275
+ validateParamNameAgainstRoute(target, methodName, paramName) {
276
+ const routes = this.pendingRoutes.get(target);
277
+ const route = routes?.get(methodName);
278
+ if (route) {
279
+ const pathParams = route.path.match(/:[a-zA-Z]+/g)?.map(__assignType((p) => p.substring(1), ['p', '', 'P"2!"/"'])) ||
280
+ [];
281
+ if (pathParams.length === 0) {
282
+ throw new Error(`ERROR in ${methodName}: @Param decorator used but route "${route.path}" has no parameters`);
283
+ }
284
+ if (!paramName) {
285
+ throw new Error(`ERROR in ${methodName}: @Param decorator requires a name when used with route parameters`);
286
+ }
287
+ if (!pathParams.includes(paramName)) {
288
+ throw new Error(`ERROR in ${methodName}: parameter name "${paramName}" doesn't match any route parameter in path "${route.path}"`);
289
+ }
290
+ const parameters = this.pendingParameters.get(target)?.get(methodName) || [];
291
+ const existingParam = parameters.find(__assignType((p) => p.type === 'param' && p.name === paramName, ['p', '', 'P"2!"/"']));
292
+ if (existingParam) {
293
+ throw new Error(`ERROR in ${methodName}: duplicate @Param("${paramName}") decorator. Each route parameter can only be used once.`);
294
+ }
295
+ }
296
+ }
297
+ static __type = [() => MetadataStorage, 'instance', () => Function, () => __ΩControllerMetadata, 'controllers', function () { return new Map(); }, () => Function, () => __ΩRouteMetadata, 'pendingRoutes', function () { return new Map(); }, () => Function, () => __ΩParameterMetadata, 'pendingParameters', function () { return new Map(); }, () => Function, () => __ΩStreamOptions, 'options', "dataStream", "fileStream", 'streamType', 'pendingStreams', function () { return new Map(); }, () => MetadataStorage, 'getInstance', 'constructor', () => Function, 'target', 'methodName', 'Middleware', 'mw', 'addMiddleware', () => Function, 'path', 'addController', () => Function, () => __ΩOmit, () => __ΩRouteMetadata, "parameters", "middlewares", 'metadata', 'addRoute', () => Function, () => __ΩParameterMetadata, 'parameter', 'addParameter', () => Function, () => Function, 'handler', 'addDefaultHandler', () => __ΩParameterMetadata, 'newParam', () => __ΩParameterMetadata, 'existingParams', 'validateParameterCombination', () => __ΩRouteMetadata, 'routes', () => __ΩRouteMetadata, 'sortRoutes', () => Function, "dataStream", "fileStream", () => __ΩStreamOptions, 'addStreamInfo', () => Function, 'paramName', 'validateParamNameAgainstRoute', 'MetadataStorage', 'P7!3";sPu#n$E3%>&Pu\'&n(EE3);>*Pu+&n,FEE3-;>.Pu/&Pn041P.2.3J44MEE35;>6PP7708sP"09PPu:2;P&-J2<"w=@2>"0?PPu@2;&2A$0BPPuC2;nEP.F.GJoD#2H$0IPPuJ2;&2<nK2L$0MPPuN2;&2<PuO2P$0QP&2<nR2SnTF2U$0V;PnWF2XnYF0Z;PPu[2;&2<P.\\.]J24n^21$0_PPu`2;&2<&2a8$0b;5wc'];
298
+ }
299
+ const __ΩParameterMetadata = ['name', 'required', 'SchemaType', 'schema', 'parameterIndex', "body", "query", "param", "header", "file", "ctx", "rawBody", 'type', 'maxFileSize', 'forceArray', 'maxFiles', 'options', 'ParameterMetadata', 'P&4!8)4""w#4$\'4%P.&.\'.(.).*.+.,J4-P\'4.8)4/8\'408M418Mw2y'];
300
+ const __ΩRouteMetadata = ['path', () => Function, 'handler', 'methodName', () => __ΩHttpMethod, 'method', () => __ΩStreamOptions, 'options', "dataStream", "fileStream", 'streamType', 'stream', 'SchemaType', 'returnType', () => __ΩParameterMetadata, 'parameters', 'Middleware', 'middlewares', 'RouteMetadata', 'P&4!Pu"4#&4$n%4&Pn\'4(P.).*J4+M4,8"w-4.n/F40"w1F42Mw3y'];
301
+ const __ΩControllerMetadata = ['path', () => __ΩRouteMetadata, 'routes', 'Middleware', 'middlewares', 'methodName', () => Function, 'handler', 'defaultHandler', 'ControllerMetadata', 'P&4!n"F4#"w$F4%P&4&Pu\'4("w$F4%M4)8Mw*y'];
302
+ export { __ΩControllerMetadata as __ΩControllerMetadata };
303
+ export { MetadataStorage };
304
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type RouteMetadata, type ParameterMetadata } from '../metadata.js';
2
+ import { type SchemaType } from '../types/index.js';
3
+ import { SchemaObject, ParameterObject, ReferenceObject, ResponsesObject, ComponentsObject, RequestBodyObject } from './types.js';
4
+ export declare const schemaTypeToOpenAPISchema: (schemaType: SchemaType | undefined, components: ComponentsObject) => SchemaObject | ReferenceObject | undefined;
5
+ export declare const createOpenAPIParameters: (routeParams: ParameterMetadata[], components: ComponentsObject) => (ParameterObject | ReferenceObject)[];
6
+ export declare const createOpenAPIRequestBody: (routeParams: ParameterMetadata[], components: ComponentsObject) => RequestBodyObject | undefined;
7
+ export declare const createOpenAPIResponses: (route: RouteMetadata, components: ComponentsObject) => ResponsesObject;
8
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/openapi/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EACH,YAAY,EACZ,eAAe,EACf,eAAe,EAEf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,yBAAyB,eACtB,UAAU,GAAG,SAAS,cACtB,gBAAgB,KAC7B,YAAY,GAAG,eAAe,GAAG,SA0InC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACnB,iBAAiB,EAAE,cACpB,gBAAgB,KAC7B,CAAC,eAAe,GAAG,eAAe,CAAC,EA4CrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBACpB,iBAAiB,EAAE,cACpB,gBAAgB,KAC7B,iBAAiB,GAAG,SA4EtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,UACxB,aAAa,cACR,gBAAgB,KAC7B,eA+IF,CAAC"}