{"version":3,"sources":["jsdelivr-header.js","/npm/@enjoys/index.ts"],"names":[],"mappings":"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","file":"/npm/@enjoys/modules@1.1.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@enjoys/modules@1.1.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { CustomParameterDecorator } from './main/CustomParameterDecorator';\r\nimport { BaseDriver } from './main/driver/BaseDriver';\r\nimport { ExpressDriver } from './main/driver/express/ExpressDriver';\r\nimport { KoaDriver } from './main/driver/koa/KoaDriver';\r\nimport { MetadataArgsStorage } from './main/metadata-builder/MetadataArgsStorage';\r\nimport { RoutingControllers } from './main/RoutingControllers';\r\nimport { RoutingControllersOptions } from './main/RoutingControllersOptions';\r\nimport { ValidationOptions } from 'class-validator';\r\nimport { importClassesFromDirectories } from './main/util/importClassesFromDirectories';\r\n\r\n// -------------------------------------------------------------------------\r\n// Main exports\r\n// -------------------------------------------------------------------------\r\n\r\nexport * from './main/container';\r\n\r\nexport * from './main/decorator/All';\r\nexport * from './main/decorator/Authorized';\r\nexport * from './main/decorator/Body';\r\nexport * from './main/decorator/BodyParam';\r\nexport * from './main/decorator/ContentType';\r\nexport * from './main/decorator/Controller';\r\nexport * from './main/decorator/CookieParam';\r\nexport * from './main/decorator/CookieParams';\r\nexport * from './main/decorator/Ctx';\r\nexport * from './main/decorator/CurrentUser';\r\nexport * from './main/decorator/Delete';\r\nexport * from './main/decorator/Get';\r\nexport * from './main/decorator/Head';\r\nexport * from './main/decorator/Header';\r\nexport * from './main/decorator/HeaderParam';\r\nexport * from './main/decorator/HeaderParams';\r\nexport * from './main/decorator/HttpCode';\r\nexport * from './main/decorator/Interceptor';\r\nexport * from './main/decorator/JsonController';\r\nexport * from './main/decorator/Location';\r\nexport * from './main/decorator/Method';\r\nexport * from './main/decorator/Middleware';\r\nexport * from './main/decorator/OnNull';\r\nexport * from './main/decorator/OnUndefined';\r\nexport * from './main/decorator/Param';\r\nexport * from './main/decorator/Params';\r\nexport * from './main/decorator/Patch';\r\nexport * from './main/decorator/Post';\r\nexport * from './main/decorator/Put';\r\nexport * from './main/decorator/QueryParam';\r\nexport * from './main/decorator/QueryParams';\r\nexport * from './main/decorator/Redirect';\r\nexport * from './main/decorator/Render';\r\nexport * from './main/decorator/Req';\r\nexport * from './main/decorator/Res';\r\nexport * from './main/decorator/ResponseClassTransformOptions';\r\nexport * from './main/decorator/Session';\r\nexport * from './main/decorator/SessionParam';\r\nexport * from './main/decorator/State';\r\nexport * from './main/decorator/UploadedFile';\r\nexport * from './main/decorator/UploadedFiles';\r\nexport * from './main/decorator/UseAfter';\r\nexport * from './main/decorator/UseBefore';\r\nexport * from './main/decorator/UseInterceptor';\r\n\r\nexport * from './main/decorator-options/BodyOptions';\r\nexport * from './main/decorator-options/ParamOptions';\r\nexport * from './main/decorator-options/UploadOptions';\r\n\r\nexport * from './main/http-error/HttpError';\r\nexport * from './main/http-error/InternalServerError';\r\nexport * from './main/http-error/BadRequestError';\r\nexport * from './main/http-error/ForbiddenError';\r\nexport * from './main/http-error/NotAcceptableError';\r\nexport * from './main/http-error/MethodNotAllowedError';\r\nexport * from './main/http-error/NotFoundError';\r\nexport * from './main/http-error/UnauthorizedError';\r\n\r\nexport * from './main/driver/express/ExpressMiddlewareInterface';\r\nexport * from './main/driver/express/ExpressErrorMiddlewareInterface';\r\nexport * from './main/driver/koa/KoaMiddlewareInterface';\r\nexport * from './main/metadata-builder/MetadataArgsStorage';\r\nexport * from './main/metadata/ActionMetadata';\r\nexport * from './main/metadata/ControllerMetadata';\r\nexport * from './main/metadata/InterceptorMetadata';\r\nexport * from './main/metadata/MiddlewareMetadata';\r\nexport * from './main/metadata/ParamMetadata';\r\nexport * from './main/metadata/ResponseHandleMetadata';\r\nexport * from './main/metadata/UseMetadata';\r\n\r\nexport * from './main/RoutingControllersOptions';\r\nexport * from './main/CustomParameterDecorator';\r\nexport * from './main/RoleChecker';\r\nexport * from './main/Action';\r\nexport * from './main/InterceptorInterface';\r\n\r\nexport * from './main/driver/BaseDriver';\r\nexport * from './main/driver/express/ExpressDriver';\r\nexport * from './main/driver/koa/KoaDriver';\r\n\r\n// -------------------------------------------------------------------------\r\n// Main Functions\r\n// -------------------------------------------------------------------------\r\n\r\n/**\r\n * Gets metadata args storage.\r\n * Metadata args storage follows the best practices and stores metadata in a global variable.\r\n */\r\nexport function getMetadataArgsStorage(): MetadataArgsStorage {\r\n  if (!(global as any).routingControllersMetadataArgsStorage)\r\n    (global as any).routingControllersMetadataArgsStorage = new MetadataArgsStorage();\r\n\r\n  return (global as any).routingControllersMetadataArgsStorage;\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your express application.\r\n */\r\nexport function useExpressServer<T>(expressServer: T, options?: RoutingControllersOptions): T {\r\n  const driver = new ExpressDriver(expressServer);\r\n  return createServer(driver, options);\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your express application.\r\n */\r\nexport function createExpressServer(options?: RoutingControllersOptions): any {\r\n  const driver = new ExpressDriver();\r\n  return createServer(driver, options);\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your koa application.\r\n */\r\nexport function useKoaServer<T>(koaApp: T, options?: RoutingControllersOptions): T {\r\n  const driver = new KoaDriver(koaApp);\r\n  return createServer(driver, options);\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your koa application.\r\n */\r\nexport function createKoaServer(options?: RoutingControllersOptions): any {\r\n  const driver = new KoaDriver();\r\n  return createServer(driver, options);\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your application using selected driver.\r\n */\r\nexport function createServer<T extends BaseDriver>(driver: T, options?: RoutingControllersOptions): any {\r\n  createExecutor(driver, options);\r\n  return driver.app;\r\n}\r\n\r\n/**\r\n * Registers all loaded actions in your express application.\r\n */\r\nexport function createExecutor<T extends BaseDriver>(driver: T, options: RoutingControllersOptions = {}): void {\r\n  // import all controllers and middlewares and error handlers (new way)\r\n  let controllerClasses: Function[];\r\n  if (options && options.controllers && options.controllers.length) {\r\n    controllerClasses = (options.controllers as any[]).filter(controller => controller instanceof Function);\r\n    const controllerDirs = (options.controllers as any[]).filter(controller => typeof controller === 'string');\r\n    controllerClasses.push(...importClassesFromDirectories(controllerDirs));\r\n  }\r\n  let middlewareClasses: Function[];\r\n  if (options && options.middlewares && options.middlewares.length) {\r\n    middlewareClasses = (options.middlewares as any[]).filter(controller => controller instanceof Function);\r\n    const middlewareDirs = (options.middlewares as any[]).filter(controller => typeof controller === 'string');\r\n    middlewareClasses.push(...importClassesFromDirectories(middlewareDirs));\r\n  }\r\n  let interceptorClasses: Function[];\r\n  if (options && options.interceptors && options.interceptors.length) {\r\n    interceptorClasses = (options.interceptors as any[]).filter(controller => controller instanceof Function);\r\n    const interceptorDirs = (options.interceptors as any[]).filter(controller => typeof controller === 'string');\r\n    interceptorClasses.push(...importClassesFromDirectories(interceptorDirs));\r\n  }\r\n\r\n  if (options && options.development !== undefined) {\r\n    driver.developmentMode = options.development;\r\n  } else {\r\n    driver.developmentMode = process.env.NODE_ENV !== 'production';\r\n  }\r\n\r\n  if (options.defaultErrorHandler !== undefined) {\r\n    driver.isDefaultErrorHandlingEnabled = options.defaultErrorHandler;\r\n  } else {\r\n    driver.isDefaultErrorHandlingEnabled = true;\r\n  }\r\n\r\n  if (options.classTransformer !== undefined) {\r\n    driver.useClassTransformer = options.classTransformer;\r\n  } else {\r\n    driver.useClassTransformer = true;\r\n  }\r\n\r\n  if (options.validation !== undefined) {\r\n    driver.enableValidation = !!options.validation;\r\n    if (options.validation instanceof Object) driver.validationOptions = options.validation as ValidationOptions;\r\n  } else {\r\n    driver.enableValidation = true;\r\n  }\r\n\r\n  driver.classToPlainTransformOptions = options.classToPlainTransformOptions;\r\n  driver.plainToClassTransformOptions = options.plainToClassTransformOptions;\r\n\r\n  if (options.errorOverridingMap !== undefined) driver.errorOverridingMap = options.errorOverridingMap;\r\n\r\n  if (options.routePrefix !== undefined) driver.routePrefix = options.routePrefix;\r\n\r\n  if (options.currentUserChecker !== undefined) driver.currentUserChecker = options.currentUserChecker;\r\n\r\n  if (options.authorizationChecker !== undefined) driver.authorizationChecker = options.authorizationChecker;\r\n\r\n  driver.cors = options.cors;\r\n\r\n  // next create a controller executor\r\n  new RoutingControllers(driver, options)\r\n    .initialize()\r\n    .registerInterceptors(interceptorClasses)\r\n    .registerMiddlewares('before', middlewareClasses)\r\n    .registerControllers(controllerClasses)\r\n    .registerMiddlewares('after', middlewareClasses); // todo: register only for loaded controllers?\r\n}\r\n\r\n/**\r\n * Registers custom parameter decorator used in the controller actions.\r\n */\r\nexport function createParamDecorator(options: CustomParameterDecorator) {\r\n  return function (object: Object, method: string, index: number) {\r\n    getMetadataArgsStorage().params.push({\r\n      type: 'custom-converter',\r\n      object: object,\r\n      method: method,\r\n      index: index,\r\n      parse: false,\r\n      required: options.required,\r\n      transform: options.value,\r\n    });\r\n  };\r\n}\r\n"]}