@innv/nest-initializer 0.2.1 → 0.4.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 (149) hide show
  1. package/README.md +43 -41
  2. package/dist/cjs/core/app-initializer.d.ts +81 -0
  3. package/dist/cjs/core/app-initializer.js +22 -162
  4. package/dist/cjs/core/app-initializer.js.map +1 -0
  5. package/dist/cjs/core/auto-discovery.helper.d.ts +10 -0
  6. package/dist/cjs/core/auto-discovery.helper.js +7 -9
  7. package/dist/cjs/core/auto-discovery.helper.js.map +1 -0
  8. package/dist/cjs/core/config-validator.helper.d.ts +2 -0
  9. package/dist/cjs/core/config-validator.helper.js +1 -7
  10. package/dist/cjs/core/config-validator.helper.js.map +1 -0
  11. package/dist/cjs/core/index.d.ts +1 -0
  12. package/dist/cjs/core/index.js +3 -15
  13. package/dist/cjs/core/index.js.map +1 -0
  14. package/dist/cjs/features/health.controller.d.ts +11 -0
  15. package/dist/cjs/features/health.controller.js +11 -54
  16. package/dist/cjs/features/health.controller.js.map +1 -0
  17. package/dist/cjs/features/index-page.factory.d.ts +8 -0
  18. package/dist/cjs/features/index-page.factory.js +30 -0
  19. package/dist/cjs/features/index-page.factory.js.map +1 -0
  20. package/dist/cjs/features/index.d.ts +2 -0
  21. package/dist/cjs/features/index.js +4 -16
  22. package/dist/cjs/features/index.js.map +1 -0
  23. package/dist/cjs/features/metrics/metrics.controller.d.ts +6 -0
  24. package/dist/cjs/features/metrics/metrics.controller.js +10 -20
  25. package/dist/cjs/features/metrics/metrics.controller.js.map +1 -0
  26. package/dist/cjs/features/metrics/metrics.interceptor.d.ts +8 -0
  27. package/dist/cjs/features/metrics/metrics.interceptor.js +5 -15
  28. package/dist/cjs/features/metrics/metrics.interceptor.js.map +1 -0
  29. package/dist/cjs/features/metrics/metrics.module.d.ts +4 -0
  30. package/dist/cjs/features/metrics/metrics.module.js +3 -7
  31. package/dist/cjs/features/metrics/metrics.module.js.map +1 -0
  32. package/dist/cjs/features/metrics/metrics.provider.d.ts +2 -0
  33. package/dist/cjs/features/metrics/metrics.provider.js +2 -1
  34. package/dist/cjs/features/metrics/metrics.provider.js.map +1 -0
  35. package/dist/cjs/features/metrics/metrics.tokens.d.ts +2 -0
  36. package/dist/cjs/features/metrics/metrics.tokens.js +1 -0
  37. package/dist/cjs/features/metrics/metrics.tokens.js.map +1 -0
  38. package/dist/cjs/features/terminus-health-check.module.d.ts +11 -0
  39. package/dist/cjs/features/terminus-health-check.module.js +3 -7
  40. package/dist/cjs/features/terminus-health-check.module.js.map +1 -0
  41. package/dist/cjs/index.d.ts +7 -0
  42. package/dist/cjs/index.js +4 -16
  43. package/dist/cjs/index.js.map +1 -0
  44. package/dist/cjs/interceptors/response-pattern.interceptor.d.ts +8 -0
  45. package/dist/cjs/interceptors/response-pattern.interceptor.js +1 -0
  46. package/dist/cjs/interceptors/response-pattern.interceptor.js.map +1 -0
  47. package/dist/cjs/plugins/index.d.ts +3 -0
  48. package/dist/cjs/plugins/index.js +5 -17
  49. package/dist/cjs/plugins/index.js.map +1 -0
  50. package/dist/cjs/plugins/rate-limiter.plugin.d.ts +8 -0
  51. package/dist/cjs/plugins/rate-limiter.plugin.js +3 -4
  52. package/dist/cjs/plugins/rate-limiter.plugin.js.map +1 -0
  53. package/dist/cjs/plugins/request-logger.plugin.d.ts +5 -0
  54. package/dist/cjs/plugins/request-logger.plugin.js +3 -4
  55. package/dist/cjs/plugins/request-logger.plugin.js.map +1 -0
  56. package/dist/cjs/plugins/typeorm-migration.plugin.d.ts +6 -0
  57. package/dist/cjs/plugins/typeorm-migration.plugin.js +1 -9
  58. package/dist/cjs/plugins/typeorm-migration.plugin.js.map +1 -0
  59. package/dist/cjs/starters/caching.starter.d.ts +5 -0
  60. package/dist/cjs/starters/caching.starter.js +1 -4
  61. package/dist/cjs/starters/caching.starter.js.map +1 -0
  62. package/dist/cjs/starters/index.d.ts +3 -0
  63. package/dist/cjs/starters/index.js +5 -17
  64. package/dist/cjs/starters/index.js.map +1 -0
  65. package/dist/cjs/starters/mongoose.starter.d.ts +9 -0
  66. package/dist/cjs/starters/mongoose.starter.js +1 -4
  67. package/dist/cjs/starters/mongoose.starter.js.map +1 -0
  68. package/dist/cjs/starters/typeorm.starter.d.ts +12 -0
  69. package/dist/cjs/starters/typeorm.starter.js +1 -4
  70. package/dist/cjs/starters/typeorm.starter.js.map +1 -0
  71. package/dist/esm/core/app-initializer.d.ts +81 -0
  72. package/dist/esm/core/app-initializer.js +22 -162
  73. package/dist/esm/core/app-initializer.js.map +1 -0
  74. package/dist/esm/core/auto-discovery.helper.d.ts +10 -0
  75. package/dist/esm/core/auto-discovery.helper.js +7 -9
  76. package/dist/esm/core/auto-discovery.helper.js.map +1 -0
  77. package/dist/esm/core/config-validator.helper.d.ts +2 -0
  78. package/dist/esm/core/config-validator.helper.js +1 -7
  79. package/dist/esm/core/config-validator.helper.js.map +1 -0
  80. package/dist/esm/core/index.d.ts +1 -0
  81. package/dist/esm/core/index.js +3 -15
  82. package/dist/esm/core/index.js.map +1 -0
  83. package/dist/esm/features/health.controller.d.ts +11 -0
  84. package/dist/esm/features/health.controller.js +11 -54
  85. package/dist/esm/features/health.controller.js.map +1 -0
  86. package/dist/esm/features/index-page.factory.d.ts +8 -0
  87. package/dist/esm/features/index-page.factory.js +30 -0
  88. package/dist/esm/features/index-page.factory.js.map +1 -0
  89. package/dist/esm/features/index.d.ts +2 -0
  90. package/dist/esm/features/index.js +4 -16
  91. package/dist/esm/features/index.js.map +1 -0
  92. package/dist/esm/features/metrics/metrics.controller.d.ts +6 -0
  93. package/dist/esm/features/metrics/metrics.controller.js +10 -20
  94. package/dist/esm/features/metrics/metrics.controller.js.map +1 -0
  95. package/dist/esm/features/metrics/metrics.interceptor.d.ts +8 -0
  96. package/dist/esm/features/metrics/metrics.interceptor.js +5 -15
  97. package/dist/esm/features/metrics/metrics.interceptor.js.map +1 -0
  98. package/dist/esm/features/metrics/metrics.module.d.ts +4 -0
  99. package/dist/esm/features/metrics/metrics.module.js +3 -7
  100. package/dist/esm/features/metrics/metrics.module.js.map +1 -0
  101. package/dist/esm/features/metrics/metrics.provider.d.ts +2 -0
  102. package/dist/esm/features/metrics/metrics.provider.js +2 -1
  103. package/dist/esm/features/metrics/metrics.provider.js.map +1 -0
  104. package/dist/esm/features/metrics/metrics.tokens.d.ts +2 -0
  105. package/dist/esm/features/metrics/metrics.tokens.js +1 -0
  106. package/dist/esm/features/metrics/metrics.tokens.js.map +1 -0
  107. package/dist/esm/features/terminus-health-check.module.d.ts +11 -0
  108. package/dist/esm/features/terminus-health-check.module.js +3 -7
  109. package/dist/esm/features/terminus-health-check.module.js.map +1 -0
  110. package/dist/esm/index.d.ts +7 -0
  111. package/dist/esm/index.js +4 -16
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/esm/interceptors/response-pattern.interceptor.d.ts +8 -0
  114. package/dist/esm/interceptors/response-pattern.interceptor.js +1 -0
  115. package/dist/esm/interceptors/response-pattern.interceptor.js.map +1 -0
  116. package/dist/esm/plugins/index.d.ts +3 -0
  117. package/dist/esm/plugins/index.js +5 -17
  118. package/dist/esm/plugins/index.js.map +1 -0
  119. package/dist/esm/plugins/rate-limiter.plugin.d.ts +8 -0
  120. package/dist/esm/plugins/rate-limiter.plugin.js +3 -4
  121. package/dist/esm/plugins/rate-limiter.plugin.js.map +1 -0
  122. package/dist/esm/plugins/request-logger.plugin.d.ts +5 -0
  123. package/dist/esm/plugins/request-logger.plugin.js +3 -4
  124. package/dist/esm/plugins/request-logger.plugin.js.map +1 -0
  125. package/dist/esm/plugins/typeorm-migration.plugin.d.ts +6 -0
  126. package/dist/esm/plugins/typeorm-migration.plugin.js +1 -9
  127. package/dist/esm/plugins/typeorm-migration.plugin.js.map +1 -0
  128. package/dist/esm/starters/caching.starter.d.ts +5 -0
  129. package/dist/esm/starters/caching.starter.js +1 -4
  130. package/dist/esm/starters/caching.starter.js.map +1 -0
  131. package/dist/esm/starters/index.d.ts +3 -0
  132. package/dist/esm/starters/index.js +5 -17
  133. package/dist/esm/starters/index.js.map +1 -0
  134. package/dist/esm/starters/mongoose.starter.d.ts +9 -0
  135. package/dist/esm/starters/mongoose.starter.js +1 -4
  136. package/dist/esm/starters/mongoose.starter.js.map +1 -0
  137. package/dist/esm/starters/typeorm.starter.d.ts +12 -0
  138. package/dist/esm/starters/typeorm.starter.js +1 -4
  139. package/dist/esm/starters/typeorm.starter.js.map +1 -0
  140. package/dist/types/core/app-initializer.d.ts +4 -152
  141. package/dist/types/core/auto-discovery.helper.d.ts +1 -6
  142. package/dist/types/core/config-validator.helper.d.ts +0 -7
  143. package/dist/types/features/index-page.factory.d.ts +8 -0
  144. package/dist/types/index.d.ts +1 -0
  145. package/dist/types/plugins/typeorm-migration.plugin.d.ts +0 -9
  146. package/dist/types/starters/caching.starter.d.ts +0 -15
  147. package/dist/types/starters/mongoose.starter.d.ts +0 -15
  148. package/dist/types/starters/typeorm.starter.d.ts +0 -7
  149. package/package.json +26 -30
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.plugin.js","sourceRoot":"","sources":["../../../src/plugins/rate-limiter.plugin.ts"],"names":[],"mappings":";;;;AACA,oFAA4E;AAI5E,MAAa,iBAAiB;IACX,OAAO,CAAmB;IAE3C,YAAY,UAAqC,EAAE;QACjD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACxB,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,GAAG;YACf,OAAO,EACL,mEAAmE;YACrE,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,YAAgC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,GAAqB;QACzB,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAS,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;CACF;AArBD,8CAqBC"}
@@ -0,0 +1,5 @@
1
+ import { INestApplication } from '@nestjs/common';
2
+ import { AppInitializerPlugin } from '../core';
3
+ export declare class RequestLoggerPlugin implements AppInitializerPlugin {
4
+ apply(app: INestApplication): void;
5
+ }
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.RequestLoggerPlugin = void 0;
7
- const morgan_1 = __importDefault(require("morgan"));
4
+ const tslib_1 = require("tslib");
5
+ const morgan_1 = tslib_1.__importDefault(require("morgan"));
8
6
  class RequestLoggerPlugin {
9
7
  apply(app) {
10
8
  app.use((0, morgan_1.default)('dev'));
11
9
  }
12
10
  }
13
11
  exports.RequestLoggerPlugin = RequestLoggerPlugin;
12
+ //# sourceMappingURL=request-logger.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.plugin.js","sourceRoot":"","sources":["../../../src/plugins/request-logger.plugin.ts"],"names":[],"mappings":";;;;AACA,4DAA4B;AAI5B,MAAa,mBAAmB;IAC9B,KAAK,CAAC,GAAqB;QACzB,GAAG,CAAC,GAAG,CAAC,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,CAAC;IACzB,CAAC;CACF;AAJD,kDAIC"}
@@ -0,0 +1,6 @@
1
+ import { INestApplication } from '@nestjs/common';
2
+ import { AppInitializerPlugin } from '../core';
3
+ export declare class TypeOrmMigrationPlugin implements AppInitializerPlugin {
4
+ private readonly logger;
5
+ apply(app: INestApplication): Promise<void>;
6
+ }
@@ -3,17 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeOrmMigrationPlugin = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const typeorm_1 = require("typeorm");
6
- /**
7
- * Um plugin do AppInitializer que executa automaticamente as migrations
8
- * do TypeORM na inicialização da aplicação.
9
- */
10
6
  class TypeOrmMigrationPlugin {
11
7
  logger = new common_1.Logger(TypeOrmMigrationPlugin.name);
12
- /**
13
- * Método 'apply' que será chamado pelo AppInitializer durante o bootstrap.
14
- * Este método é assíncrono para poder aguardar a conclusão das migrations.
15
- * @param app A instância da aplicação NestJS.
16
- */
17
8
  async apply(app) {
18
9
  try {
19
10
  const dataSource = app.get(typeorm_1.DataSource);
@@ -28,3 +19,4 @@ class TypeOrmMigrationPlugin {
28
19
  }
29
20
  }
30
21
  exports.TypeOrmMigrationPlugin = TypeOrmMigrationPlugin;
22
+ //# sourceMappingURL=typeorm-migration.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-migration.plugin.js","sourceRoot":"","sources":["../../../src/plugins/typeorm-migration.plugin.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAC1D,qCAAqC;AAQrC,MAAa,sBAAsB;IAChB,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAOlE,KAAK,CAAC,KAAK,CAAC,GAAqB;QAC/B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAU,CAAC,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YAE1E,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mDAAmD,EACnD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAzBD,wDAyBC"}
@@ -0,0 +1,5 @@
1
+ export interface CachingStarterOptions {
2
+ redisUrlEnvKey?: string;
3
+ defaultTtlInSeconds?: number;
4
+ }
5
+ export declare function createCachingStarter(options?: CachingStarterOptions): import("@nestjs/common").DynamicModule;
@@ -4,10 +4,6 @@ exports.createCachingStarter = createCachingStarter;
4
4
  const cache_manager_1 = require("@nestjs/cache-manager");
5
5
  const config_1 = require("@nestjs/config");
6
6
  const cache_manager_redis_store_1 = require("cache-manager-redis-store");
7
- /**
8
- * Cria o módulo dinâmico para o "Starter" de Cache.
9
- * Configura o CacheModule para ser global e usar o Redis.
10
- */
11
7
  function createCachingStarter(options = {}) {
12
8
  const { redisUrlEnvKey = 'REDIS_URL', defaultTtlInSeconds = 300 } = options;
13
9
  return cache_manager_1.CacheModule.registerAsync({
@@ -25,3 +21,4 @@ function createCachingStarter(options = {}) {
25
21
  },
26
22
  });
27
23
  }
24
+ //# sourceMappingURL=caching.starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caching.starter.js","sourceRoot":"","sources":["../../../src/starters/caching.starter.ts"],"names":[],"mappings":";;AAwBA,oDAqBC;AA7CD,yDAAoD;AACpD,2CAA+C;AAC/C,yEAAuD;AAsBvD,SAAgB,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,EAAE,cAAc,GAAG,WAAW,EAAE,mBAAmB,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAE5E,OAAO,2BAAW,CAAC,aAAa,CAAC;QAC/B,QAAQ,EAAE,IAAI;QAEd,OAAO,EAAE,EAAE;QAEX,MAAM,EAAE,CAAC,sBAAa,CAAC;QAEvB,UAAU,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,MAAM,IAAA,sCAAU,EAAC;gBAC7B,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,cAAc,CAAC;aAC/C,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;gBAClB,GAAG,EAAE,mBAAmB;aACzB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './typeorm.starter';
2
+ export * from './mongoose.starter';
3
+ export * from './caching.starter';
@@ -1,19 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./typeorm.starter"), exports);
18
- __exportStar(require("./mongoose.starter"), exports);
19
- __exportStar(require("./caching.starter"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./typeorm.starter"), exports);
5
+ tslib_1.__exportStar(require("./mongoose.starter"), exports);
6
+ tslib_1.__exportStar(require("./caching.starter"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/starters/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,6DAAmC;AACnC,4DAAkC"}
@@ -0,0 +1,9 @@
1
+ import { MongooseModuleOptions } from '@nestjs/mongoose';
2
+ export interface MongooseStarterOptions {
3
+ uriEnvKey?: string;
4
+ mongooseOptions?: Omit<MongooseModuleOptions, 'uri'>;
5
+ }
6
+ export declare function createMongooseStarter(options?: MongooseStarterOptions): {
7
+ module: import("@nestjs/common").DynamicModule;
8
+ plugins: never[];
9
+ };
@@ -3,10 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMongooseStarter = createMongooseStarter;
4
4
  const config_1 = require("@nestjs/config");
5
5
  const mongoose_1 = require("@nestjs/mongoose");
6
- /**
7
- * Cria o módulo dinâmico para o "Starter" de Mongoose.
8
- * Configura o MongooseModule para ser global e usar a URI do .env.
9
- */
10
6
  function createMongooseStarter(options = {}) {
11
7
  const { uriEnvKey = 'MONGO_URI', mongooseOptions = {} } = options;
12
8
  const mongooseDynamicModule = mongoose_1.MongooseModule.forRootAsync({
@@ -22,3 +18,4 @@ function createMongooseStarter(options = {}) {
22
18
  plugins: [],
23
19
  };
24
20
  }
21
+ //# sourceMappingURL=mongoose.starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoose.starter.js","sourceRoot":"","sources":["../../../src/starters/mongoose.starter.ts"],"names":[],"mappings":";;AAuBA,sDAiBC;AAxCD,2CAA+C;AAC/C,+CAAyE;AAsBzE,SAAgB,qBAAqB,CAAC,UAAkC,EAAE;IACxE,MAAM,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAElE,MAAM,qBAAqB,GAAG,yBAAc,CAAC,YAAY,CAAC;QACxD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,sBAAa,CAAC;QAEvB,UAAU,EAAE,CAAC,aAA4B,EAAyB,EAAE,CAAC,CAAC;YACpE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,SAAS,CAAC;YACzC,GAAG,eAAe;SACnB,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TypeOrmModuleOptions } from '@nestjs/typeorm';
2
+ import { AppInitializerPlugin } from '../core';
3
+ export interface TypeOrmStarterOptions {
4
+ autoLoadEntities?: boolean;
5
+ runMigrationsOnStartup?: boolean;
6
+ databaseUrlEnvKey?: string;
7
+ typeOrmOptions?: Omit<TypeOrmModuleOptions, 'url' | 'autoLoadEntities' | 'synchronize'>;
8
+ }
9
+ export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions): {
10
+ module: import("@nestjs/common").DynamicModule;
11
+ plugins: AppInitializerPlugin[];
12
+ };
@@ -4,10 +4,6 @@ exports.createTypeOrmStarter = createTypeOrmStarter;
4
4
  const config_1 = require("@nestjs/config");
5
5
  const typeorm_1 = require("@nestjs/typeorm");
6
6
  const plugins_1 = require("../plugins");
7
- /**
8
- * Cria o módulo dinâmico para o "Starter" de TypeORM.
9
- * Esta função constrói toda a configuração necessária para o TypeOrmModule.
10
- */
11
7
  function createTypeOrmStarter(options = {}) {
12
8
  const { autoLoadEntities = true, runMigrationsOnStartup = false, databaseUrlEnvKey = 'DATABASE_URL', typeOrmOptions = {}, } = options;
13
9
  const typeOrmDynamicModule = typeorm_1.TypeOrmModule.forRootAsync({
@@ -29,3 +25,4 @@ function createTypeOrmStarter(options = {}) {
29
25
  plugins: plugins,
30
26
  };
31
27
  }
28
+ //# sourceMappingURL=typeorm.starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm.starter.js","sourceRoot":"","sources":["../../../src/starters/typeorm.starter.ts"],"names":[],"mappings":";;AAuBA,oDA6BC;AApDD,2CAA+C;AAC/C,6CAAsE;AAGtE,wCAAoD;AAmBpD,SAAgB,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,EACJ,gBAAgB,GAAG,IAAI,EACvB,sBAAsB,GAAG,KAAK,EAC9B,iBAAiB,GAAG,cAAc,EAClC,cAAc,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,oBAAoB,GAAG,uBAAa,CAAC,YAAY,CAAC;QACtD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,sBAAa,CAAC;QACvB,UAAU,EAAE,CAAC,aAA4B,EAAwB,EAAE,CACjE,CAAC;YACC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,iBAAiB,CAAC;YACjD,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,KAAK;YAClB,GAAG,cAAc;SAClB,CAAyB;KAC7B,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,gCAAsB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,MAAM,EAAE,oBAAoB;QAC5B,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import 'reflect-metadata';
1
2
  import { CanActivate, ExceptionFilter, INestApplication, NestInterceptor, PipeTransform, Type, ValidationPipeOptions, VersioningOptions } from '@nestjs/common';
2
3
  import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';
3
4
  import { AbstractHttpAdapter } from '@nestjs/core';
@@ -5,27 +6,14 @@ import { SwaggerCustomOptions, SwaggerDocumentOptions } from '@nestjs/swagger';
5
6
  import { TerminusHealthCheckOptions } from '../features';
6
7
  import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
7
8
  import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
8
- /**
9
- * Interface que todos os plugins do AppInitializer devem implementar.
10
- */
9
+ import { IndexPageOptions } from '../features/index-page.factory';
11
10
  export interface AppInitializerPlugin {
12
- /**
13
- * Método que será executado durante a inicialização para aplicar a lógica do plugin.
14
- * Pode ser síncrono ou assíncrono.
15
- * @param app A instância da aplicação NestJS (INestApplication).
16
- */
17
11
  apply(app: INestApplication): Promise<void> | void;
18
12
  }
19
- /**
20
- * Representa uma tag na documentação Swagger (OpenAPI).
21
- */
22
13
  export type SwaggerDocumentTags = {
23
14
  name: string;
24
15
  description?: string;
25
16
  };
26
- /**
27
- * Opções para a configuração do Swagger (OpenAPI).
28
- */
29
17
  export type SwaggerOptions = {
30
18
  title: string;
31
19
  description: string;
@@ -35,14 +23,7 @@ export type SwaggerOptions = {
35
23
  documentOptions?: SwaggerDocumentOptions;
36
24
  customOptions?: SwaggerCustomOptions;
37
25
  };
38
- /**
39
- * Assinatura da função de callback usada para configurar o inicializador.
40
- * @param app A instância do AppInitializer a ser configurada.
41
- */
42
26
  type AppConfigurator<T extends INestApplication> = (app: AppInitializer<T>) => void;
43
- /**
44
- * Uma classe fluente (Builder) para inicializar uma aplicação NestJS de forma declarativa.
45
- */
46
27
  export declare class AppInitializer<T extends INestApplication = INestApplication> {
47
28
  private app;
48
29
  private readonly module;
@@ -56,173 +37,44 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
56
37
  private readonly setupFunctions;
57
38
  private readonly plugins;
58
39
  private readonly featureModules;
59
- private advancedSwaggerUiOptions?;
60
40
  private autoDiscoveredComponents?;
61
41
  private readonly globalProviders;
42
+ private readonly nexusClientProviders;
62
43
  private readonly globalInterceptors;
63
44
  private readonly factoryGeneratedControllers;
64
45
  private constructor();
65
- /**
66
- * Aplica um conjunto de configurações padrão recomendadas para o ambiente de desenvolvimento.
67
- * Inclui Swagger e um logger de requisições.
68
- * @param swaggerOptions Opções para customizar a documentação Swagger.
69
- */
70
46
  useDevelopmentDefaults(swaggerOptions: Omit<SwaggerOptions, 'path'>): this;
71
- /**
72
- * Aplica um conjunto de configurações padrão recomendadas para o ambiente de produção.
73
- * Inclui Helmet, compressão, graceful shutdown e um rate limiter básico.
74
- */
75
47
  useProductionDefaults(): this;
76
- /**
77
- * Aplica um bloco de configurações de forma condicional.
78
- * @param condition A condição booleana. Se for `true`, o callback de configuração será executado.
79
- * @param configure A função de callback que recebe o builder para aplicar as configurações.
80
- */
81
48
  when(condition: boolean, configure: (builder: this) => void): this;
82
49
  withHealthCheck(options: TerminusHealthCheckOptions): this;
83
- /**
84
- * Habilita a coleta e exposição de métricas no padrão Prometheus
85
- * no endpoint /metrics. Inclui métricas padrão do Node.js
86
- * e métricas de latência de requisições HTTP.
87
- */
88
50
  withMetrics(): this;
89
51
  static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T>): Promise<void>;
90
52
  static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T>): Promise<void>;
91
- /**
92
- * Define a porta em que a aplicação vai rodar.
93
- * @param port O número da porta.
94
- */
95
53
  onPort(port: number): this;
96
- /**
97
- * Registra um plugin para ser executado durante a inicialização.
98
- * @param plugin Uma instância de um objeto que implementa a interface AppInitializerPlugin.
99
- */
100
54
  withPlugin(plugin: AppInitializerPlugin): this;
101
- /**
102
- * Habilita e configura o versionamento da API.
103
- * @param options As opções de versionamento do NestJS.
104
- */
105
55
  withVersioning(options: VersioningOptions): this;
106
- /**
107
- * Define um prefixo global para todas as rotas da aplicação (ex: /api/v1).
108
- * @param prefix O prefixo a ser aplicado.
109
- */
110
56
  withGlobalPrefix(prefix: string): this;
111
- /**
112
- * Habilita e configura o Cross-Origin Resource Sharing (CORS).
113
- * @param options As opções de configuração do CORS.
114
- */
115
57
  withCors(options?: CorsOptions): this;
116
- /**
117
- * Adiciona o ValidationPipe global com opções customizadas.
118
- * Esta é a forma recomendada de habilitar a validação padrão.
119
- * @param options Opções de configuração para o ValidationPipe.
120
- */
121
58
  withValidationPipe(options?: ValidationPipeOptions): this;
122
- /**
123
- * Registra um Pipe global customizado (ex: um pipe de parsing).
124
- * O pipe participará da Injeção de Dependência.
125
- * @param pipe A *classe* do pipe a ser registrada.
126
- */
127
59
  useGlobalPipe(pipe: Type<PipeTransform>): this;
128
- /**
129
- * Registra um Filtro de Exceção global (ex: HttpExceptionFilter).
130
- * O filtro participará da Injeção de Dependência.
131
- * @param filter A *classe* do filtro a ser registrada.
132
- */
133
60
  useGlobalFilter(filter: Type<ExceptionFilter>): this;
134
- /**
135
- * Registra um Guard global (ex: JwtAuthGuard).
136
- * O guard participará da Injeção de Dependência.
137
- * @param guard A *classe* do guard a ser registrada.
138
- */
139
61
  useGlobalGuard(guard: Type<CanActivate>): this;
140
- /**
141
- * Registra um Interceptor global (ex: LoggingInterceptor).
142
- * O interceptor participará da Injeção de Dependência.
143
- * @param interceptor A *classe* do interceptor a ser registrada.
144
- */
145
62
  useGlobalInterceptor(interceptor: Type<NestInterceptor>): this;
146
- /**
147
- * Registra o ClassSerializerInterceptor globalmente.
148
- * Essencial para transformações de DTO (@Exclude, @Expose).
149
- * Ele automaticamente recebe o Reflector via DI.
150
- */
151
63
  withClassSerializer(): this;
152
- /**
153
- * Habilita e configura a documentação da API via Swagger (OpenAPI).
154
- * @param options As opções para construir a documentação.
155
- */
156
64
  withSwagger(options: SwaggerOptions): this;
157
- /**
158
- * Aplica customizações avançadas à interface do Swagger UI.
159
- * Isso pode incluir temas, scripts e outras configurações visuais.
160
- * Por padrão, aplica um tema escuro e algumas configurações de layout.
161
- */
162
- withAdvancedSwaggerUI(): this;
163
- /**
164
- * Habilita os 'shutdown hooks' do NestJS para um desligamento gracioso.
165
- */
166
65
  withGracefulShutdown(): this;
167
- /**
168
- * Adiciona o middleware de segurança Helmet com configurações padrão.
169
- */
170
66
  useHelmet(): this;
171
- /**
172
- * Adiciona o middleware de compressão (gzip) para as respostas.
173
- */
174
67
  enableCompression(): this;
175
- /**
176
- * Carrega e valida as variáveis de ambiente na inicialização
177
- * usando um schema de validação (classe com decoradores class-validator).
178
- * Se a validação falhar, a aplicação não será iniciada.
179
- * @param schema A classe de schema para validar (ex: EnvironmentVariables).
180
- */
181
68
  withValidatedConfig<T extends object>(schema: Type<T>): this;
182
- /**
183
- * Configura e registra automaticamente o TypeOrmModule (Estilo "Starter").
184
- * @param options Opções para o "Starter" de TypeORM.
185
- */
186
69
  withTypeOrm(options?: TypeOrmStarterOptions): this;
187
- /**
188
- * Configura e registra automaticamente o MongooseModule (Estilo "Starter").
189
- * Usa a configuração global (de .withValidatedConfig) para se conectar
190
- * ao MongoDB e descobre schemas automaticamente.
191
- *
192
- * @param options Opções para o "Starter" de Mongoose.
193
- */
194
70
  withMongoose(options?: MongooseStarterOptions): this;
195
- /**
196
- * Configura e registra automaticamente o CacheModule (Estilo "Starter").
197
- * Usa a configuração global (de .withValidatedConfig) para se conectar
198
- * ao Redis e torna o cache globalmente disponível.
199
- *
200
- * @param options Opções para o "Starter" de Cache.
201
- */
202
71
  withCaching(options?: CachingStarterOptions): this;
203
- /**
204
- * Retorna a instância da aplicação NestJS (INestApplication) após a inicialização.
205
- * @throws Error se a aplicação ainda não foi inicializada.
206
- */
207
72
  getApp(): T;
208
- /**
209
- * Habilita a descoberta e registro automático de Providers e Controllers.
210
- * Varre o projeto em busca de classes com @Injectable() e @Controller()
211
- * e as adiciona ao módulo raiz.
212
- * @param options Opções para configurar a descoberta.
213
- */
214
73
  withAutoDiscovery(options: {
215
74
  basePath: string;
216
75
  }): this;
217
- /**
218
- * Adiciona um Interceptor global diretamente (instância).
219
- * @param interceptor
220
- */
76
+ withIndexPage(options?: IndexPageOptions): this;
221
77
  addGlobalInterceptor(interceptor: NestInterceptor): this;
222
- /**
223
- * Adiciona um ResponseMapper global para padronizar respostas.
224
- * @param mapper
225
- */
226
78
  withResponseMapper<T>(mapper: ResponseMapper<T>): this;
227
79
  private listen;
228
80
  }
@@ -3,13 +3,8 @@ import { Reflector } from '@nestjs/core';
3
3
  interface DiscoveredComponents {
4
4
  providers: Type[];
5
5
  controllers: Type[];
6
+ nexusClients: Type[];
6
7
  }
7
8
  type RequireFn = (id: string) => any;
8
- /**
9
- * Descobre componentes NestJS (Providers e Controllers) em um diretório.
10
- * @param basePath O diretório raiz para a varredura.
11
- * @param reflectorInst Uma instância do Reflector.
12
- * @param requireFn A função 'require' a ser usada (padrão: Node's require).
13
- */
14
9
  export declare function discoverComponents(basePath: string, reflectorInst: Reflector, requireFn?: RequireFn): DiscoveredComponents;
15
10
  export {};
@@ -1,9 +1,2 @@
1
1
  import { Type } from '@nestjs/common';
2
- /**
3
- * Valida um objeto de configuração (ex: process.env) contra uma classe de schema.
4
- * Se a validação falhar, lança um erro detalhado.
5
- * @param config O objeto de configuração a ser validado (geralmente process.env).
6
- * @param schema A classe de schema com decoradores do class-validator.
7
- * @returns O objeto de configuração validado e transformado.
8
- */
9
2
  export declare function validateConfig<T extends object>(config: Record<string, any>, schema: Type<T>): T;
@@ -0,0 +1,8 @@
1
+ import 'reflect-metadata';
2
+ import { Type } from '@nestjs/common';
3
+ export interface IndexPageOptions {
4
+ path?: string;
5
+ filename?: string;
6
+ publicDir?: string;
7
+ }
8
+ export declare function createIndexPageController(options?: IndexPageOptions): Type;
@@ -3,4 +3,5 @@ export { TypeOrmStarterOptions } from './starters/typeorm.starter';
3
3
  export { MongooseStarterOptions } from './starters/mongoose.starter';
4
4
  export { CachingStarterOptions } from './starters/caching.starter';
5
5
  export { TerminusHealthCheckOptions } from './features/terminus-health-check.module';
6
+ export { IndexPageOptions } from './features/index-page.factory';
6
7
  export * from './plugins';
@@ -1,15 +1,6 @@
1
1
  import { INestApplication } from '@nestjs/common';
2
2
  import { AppInitializerPlugin } from '../core';
3
- /**
4
- * Um plugin do AppInitializer que executa automaticamente as migrations
5
- * do TypeORM na inicialização da aplicação.
6
- */
7
3
  export declare class TypeOrmMigrationPlugin implements AppInitializerPlugin {
8
4
  private readonly logger;
9
- /**
10
- * Método 'apply' que será chamado pelo AppInitializer durante o bootstrap.
11
- * Este método é assíncrono para poder aguardar a conclusão das migrations.
12
- * @param app A instância da aplicação NestJS.
13
- */
14
5
  apply(app: INestApplication): Promise<void>;
15
6
  }
@@ -1,20 +1,5 @@
1
- /**
2
- * Opções para o "Starter" de Cache (Redis).
3
- */
4
1
  export interface CachingStarterOptions {
5
- /**
6
- * Chave do .env que contém a URL de conexão com o Redis.
7
- * (Padrão: 'REDIS_URL')
8
- */
9
2
  redisUrlEnvKey?: string;
10
- /**
11
- * Tempo de vida (TTL) padrão para os itens em cache, em segundos.
12
- * (Padrão: 300 segundos / 5 minutos)
13
- */
14
3
  defaultTtlInSeconds?: number;
15
4
  }
16
- /**
17
- * Cria o módulo dinâmico para o "Starter" de Cache.
18
- * Configura o CacheModule para ser global e usar o Redis.
19
- */
20
5
  export declare function createCachingStarter(options?: CachingStarterOptions): import("@nestjs/common").DynamicModule;
@@ -1,23 +1,8 @@
1
1
  import { MongooseModuleOptions } from '@nestjs/mongoose';
2
- /**
3
- * Opções para o "Starter" de Mongoose (MongoDB).
4
- */
5
2
  export interface MongooseStarterOptions {
6
- /**
7
- * Chave do .env que contém a URI de conexão com o MongoDB.
8
- * (Padrão: 'MONGO_URI')
9
- */
10
3
  uriEnvKey?: string;
11
- /**
12
- * Permite sobrescrever qualquer outra opção de configuração do Mongoose
13
- * (ex: { retryAttempts: 2 }).
14
- */
15
4
  mongooseOptions?: Omit<MongooseModuleOptions, 'uri'>;
16
5
  }
17
- /**
18
- * Cria o módulo dinâmico para o "Starter" de Mongoose.
19
- * Configura o MongooseModule para ser global e usar a URI do .env.
20
- */
21
6
  export declare function createMongooseStarter(options?: MongooseStarterOptions): {
22
7
  module: import("@nestjs/common").DynamicModule;
23
8
  plugins: never[];
@@ -1,18 +1,11 @@
1
1
  import { TypeOrmModuleOptions } from '@nestjs/typeorm';
2
2
  import { AppInitializerPlugin } from '../core';
3
- /**
4
- * Opções para o "Starter" de TypeORM.
5
- */
6
3
  export interface TypeOrmStarterOptions {
7
4
  autoLoadEntities?: boolean;
8
5
  runMigrationsOnStartup?: boolean;
9
6
  databaseUrlEnvKey?: string;
10
7
  typeOrmOptions?: Omit<TypeOrmModuleOptions, 'url' | 'autoLoadEntities' | 'synchronize'>;
11
8
  }
12
- /**
13
- * Cria o módulo dinâmico para o "Starter" de TypeORM.
14
- * Esta função constrói toda a configuração necessária para o TypeOrmModule.
15
- */
16
9
  export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions): {
17
10
  module: import("@nestjs/common").DynamicModule;
18
11
  plugins: AppInitializerPlugin[];