@zorionapp/gg-core 5.0.33 → 5.0.34-feat-e2e-debug-gg-core.2

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 (39) hide show
  1. package/package.json +1 -1
  2. package/src/gg-config/app-env.enum.d.ts +5 -0
  3. package/src/gg-config/app-env.enum.js +10 -0
  4. package/src/gg-config/app-env.enum.js.map +1 -0
  5. package/src/gg-config/app.config.d.ts +2 -0
  6. package/src/gg-config/app.config.js +9 -0
  7. package/src/gg-config/app.config.js.map +1 -1
  8. package/src/gg-config/index.d.ts +1 -0
  9. package/src/gg-config/index.js +1 -0
  10. package/src/gg-config/index.js.map +1 -1
  11. package/src/gg-debug/canary.controller.d.ts +2 -0
  12. package/src/gg-debug/canary.controller.js +33 -0
  13. package/src/gg-debug/canary.controller.js.map +1 -0
  14. package/src/gg-debug/decorators/debug-controller.decorator.d.ts +1 -0
  15. package/src/gg-debug/decorators/debug-controller.decorator.js +12 -0
  16. package/src/gg-debug/decorators/debug-controller.decorator.js.map +1 -0
  17. package/src/gg-debug/e2e-debug.env.d.ts +6 -0
  18. package/src/gg-debug/e2e-debug.env.js +26 -0
  19. package/src/gg-debug/e2e-debug.env.js.map +1 -0
  20. package/src/gg-debug/gg-debug.module.d.ts +8 -0
  21. package/src/gg-debug/gg-debug.module.js +17 -0
  22. package/src/gg-debug/gg-debug.module.js.map +1 -0
  23. package/src/gg-debug/guards/e2e-token.guard.d.ts +5 -0
  24. package/src/gg-debug/guards/e2e-token.guard.js +34 -0
  25. package/src/gg-debug/guards/e2e-token.guard.js.map +1 -0
  26. package/src/gg-debug/index.d.ts +4 -0
  27. package/src/gg-debug/index.js +8 -0
  28. package/src/gg-debug/index.js.map +1 -0
  29. package/src/gg-kernel/kernel.js +1 -0
  30. package/src/gg-kernel/kernel.js.map +1 -1
  31. package/src/gg-kernel/service-providers/e2e-debug.service-provider.d.ts +4 -0
  32. package/src/gg-kernel/service-providers/e2e-debug.service-provider.js +20 -0
  33. package/src/gg-kernel/service-providers/e2e-debug.service-provider.js.map +1 -0
  34. package/src/gg-kernel/service-providers/index.d.ts +1 -0
  35. package/src/gg-kernel/service-providers/index.js +1 -0
  36. package/src/gg-kernel/service-providers/index.js.map +1 -1
  37. package/src/index.d.ts +1 -0
  38. package/src/index.js +1 -0
  39. package/src/index.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zorionapp/gg-core",
3
- "version": "5.0.33",
3
+ "version": "5.0.34-feat-e2e-debug-gg-core.2",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "cache-manager": "5.2.4",
@@ -0,0 +1,5 @@
1
+ export declare enum AppEnv {
2
+ Dev = "dev",
3
+ Stage = "stage",
4
+ Prod = "prod"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppEnv = void 0;
4
+ var AppEnv;
5
+ (function (AppEnv) {
6
+ AppEnv["Dev"] = "dev";
7
+ AppEnv["Stage"] = "stage";
8
+ AppEnv["Prod"] = "prod";
9
+ })(AppEnv || (exports.AppEnv = AppEnv = {}));
10
+ //# sourceMappingURL=app-env.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-env.enum.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/app-env.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,qBAAW,CAAA;IACX,yBAAe,CAAA;IACf,uBAAa,CAAA;AACf,CAAC,EAJW,MAAM,sBAAN,MAAM,QAIjB"}
@@ -1,6 +1,8 @@
1
1
  import { LogLevel } from '@nestjs/common';
2
+ import { AppEnv } from './app-env.enum';
2
3
  declare class AppConfig {
3
4
  readonly nodeEnv: string;
5
+ readonly appEnv?: AppEnv;
4
6
  readonly name: string;
5
7
  readonly appVersion: string;
6
8
  readonly port: number;
@@ -5,10 +5,14 @@ const tslib_1 = require("tslib");
5
5
  const common_1 = require("@nestjs/common");
6
6
  const class_validator_1 = require("class-validator");
7
7
  const lodash_1 = require("lodash");
8
+ const app_env_enum_1 = require("./app-env.enum");
8
9
  const validate_config_1 = require("./validate-config");
9
10
  let AppConfig = class AppConfig {
10
11
  constructor() {
11
12
  this.nodeEnv = (0, lodash_1.get)(process.env, 'NODE_ENV', 'development');
13
+ // Explicit deploy environment (NODE_ENV is 'production' in every k8s env). Optional and without a
14
+ // fallback: an unset value must NOT look like dev (that would be fail-open for the prod gate).
15
+ this.appEnv = (0, lodash_1.get)(process.env, 'APP_ENV') || undefined;
12
16
  this.name = (0, lodash_1.get)(process.env, 'APP_NAME');
13
17
  this.appVersion = (0, lodash_1.get)(process.env, 'APP_VERSION');
14
18
  this.port = Number((0, lodash_1.get)(process.env, 'APP_PORT', 3000));
@@ -24,6 +28,11 @@ tslib_1.__decorate([
24
28
  (0, class_validator_1.IsString)(),
25
29
  tslib_1.__metadata("design:type", String)
26
30
  ], AppConfig.prototype, "nodeEnv", void 0);
31
+ tslib_1.__decorate([
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsEnum)(app_env_enum_1.AppEnv),
34
+ tslib_1.__metadata("design:type", String)
35
+ ], AppConfig.prototype, "appEnv", void 0);
27
36
  tslib_1.__decorate([
28
37
  (0, class_validator_1.IsNotEmpty)(),
29
38
  (0, class_validator_1.IsString)(),
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/app.config.ts"],"names":[],"mappings":";;;;AAAA,2CAAsD;AACtD,qDAAwF;AACxF,mCAA6B;AAC7B,uDAAmD;AAGnD,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QAGkB,YAAO,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAI9D,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAI5C,eAAU,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAIrD,SAAI,GAAW,MAAM,CAAC,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAI1D,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAI3D,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC;QAGjE,mBAAc,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAY,CAAC;QAGhF,cAAS,GAAsB,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAsB,CAAC;QAG3F,aAAQ,GAAa,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAa,CAAC;IACzF,CAAC;CAAA,CAAA;AA9BiB;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0CACmE;AAI9D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCACiD;AAI5C;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6CAC0D;AAIrD;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCAC+D;AAI1D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yCACgE;AAI3D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wCACqE;AAGjE;IADf,IAAA,4BAAU,GAAE;;iDACmF;AAGhF;IADf,IAAA,4BAAU,GAAE;;4CAC8F;AAG3F;IADf,IAAA,4BAAU,GAAE;;2CAC0E;AAhCnF,SAAS;IADd,IAAA,mBAAU,GAAE;GACP,SAAS,CAiCd;AAEY,QAAA,SAAS,GAAG,IAAA,gCAAc,EAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/app.config.ts"],"names":[],"mappings":";;;;AAAA,2CAAsD;AACtD,qDAAgG;AAChG,mCAA6B;AAC7B,iDAAwC;AACxC,uDAAmD;AAGnD,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QAGkB,YAAO,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,kGAAkG;QAClG,+FAA+F;QAG/E,WAAM,GAAa,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAY,IAAI,SAAS,CAAC;QAIvE,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAI5C,eAAU,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAIrD,SAAI,GAAW,MAAM,CAAC,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAI1D,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAI3D,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC;QAGjE,mBAAc,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAY,CAAC;QAGhF,cAAS,GAAsB,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAsB,CAAC;QAG3F,aAAQ,GAAa,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAa,CAAC;IACzF,CAAC;CAAA,CAAA;AApCiB;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0CACmE;AAM9D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,qBAAM,CAAC;;yCACwE;AAIvE;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCACiD;AAI5C;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6CAC0D;AAIrD;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCAC+D;AAI1D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yCACgE;AAI3D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wCACqE;AAGjE;IADf,IAAA,4BAAU,GAAE;;iDACmF;AAGhF;IADf,IAAA,4BAAU,GAAE;;4CAC8F;AAG3F;IADf,IAAA,4BAAU,GAAE;;2CAC0E;AAtCnF,SAAS;IADd,IAAA,mBAAU,GAAE;GACP,SAAS,CAuCd;AAEY,QAAA,SAAS,GAAG,IAAA,gCAAc,EAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './app-env.enum';
1
2
  export * from './app.config';
2
3
  export * from './gg-config.module';
3
4
  export * from './validate-config';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./app-env.enum"), exports);
4
5
  tslib_1.__exportStar(require("./app.config"), exports);
5
6
  tslib_1.__exportStar(require("./gg-config.module"), exports);
6
7
  tslib_1.__exportStar(require("./validate-config"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,6DAAmC;AACnC,4DAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,uDAA6B;AAC7B,6DAAmC;AACnC,4DAAkC"}
@@ -0,0 +1,2 @@
1
+ import { Type } from '@nestjs/common';
2
+ export declare const createCanaryController: (basePath: string) => Type<any>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCanaryController = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const swagger_1 = require("@nestjs/swagger");
7
+ const throttler_1 = require("@nestjs/throttler");
8
+ // Guard-exempt sentinel for the prod canary (L5). When GgDebugModule is loaded it answers 200
9
+ // here WITHOUT a token, so a prod probe receiving any 2xx proves the debug module leaked into prod.
10
+ // It must carry no @Protected and no token guard (load-bearing). @SkipThrottle/@ApiExcludeController
11
+ // mirror GgHealthchecksController so the global guards don't turn the 200 into 401/429.
12
+ const createCanaryController = (basePath) => {
13
+ let CanaryController = class CanaryController {
14
+ ping() {
15
+ // Bodyless 200 — the status alone is the signal; intentionally returns nothing.
16
+ }
17
+ };
18
+ tslib_1.__decorate([
19
+ (0, common_1.Get)('_canary'),
20
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
21
+ tslib_1.__metadata("design:type", Function),
22
+ tslib_1.__metadata("design:paramtypes", []),
23
+ tslib_1.__metadata("design:returntype", void 0)
24
+ ], CanaryController.prototype, "ping", null);
25
+ CanaryController = tslib_1.__decorate([
26
+ (0, swagger_1.ApiExcludeController)(),
27
+ (0, throttler_1.SkipThrottle)({ default: true, short: true, medium: true, long: true }),
28
+ (0, common_1.Controller)({ path: basePath, version: common_1.VERSION_NEUTRAL })
29
+ ], CanaryController);
30
+ return CanaryController;
31
+ };
32
+ exports.createCanaryController = createCanaryController;
33
+ //# sourceMappingURL=canary.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canary.controller.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-debug/canary.controller.ts"],"names":[],"mappings":";;;;AAAA,2CAA8F;AAC9F,6CAAuD;AACvD,iDAAiD;AAEjD,8FAA8F;AAC9F,oGAAoG;AACpG,qGAAqG;AACrG,wFAAwF;AACjF,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAa,EAAE;IAIpE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;QAGb,IAAI;YACT,gFAAgF;QAClF,CAAC;KACF,CAAA;IAHQ;QAFN,IAAA,YAAG,EAAC,SAAS,CAAC;QACd,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;;;;gDAGvB;IALG,gBAAgB;QAHrB,IAAA,8BAAoB,GAAE;QACtB,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,IAAA,mBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAe,EAAE,CAAC;OACnD,gBAAgB,CAMrB;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
@@ -0,0 +1 @@
1
+ export declare const DebugController: (path: string) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DebugController = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const e2e_token_guard_1 = require("../guards/e2e-token.guard");
7
+ // Bundles the token guard and Swagger exclusion so debug controllers can't forget either.
8
+ // Version-neutral: the version segment is baked into `path` (it differs per service: v1/v2/v3),
9
+ // so URI versioning doesn't prepend a second one.
10
+ const DebugController = (path) => (0, common_1.applyDecorators)((0, common_1.Controller)({ path, version: common_1.VERSION_NEUTRAL }), (0, common_1.UseGuards)(e2e_token_guard_1.E2eTokenGuard), (0, swagger_1.ApiExcludeController)());
11
+ exports.DebugController = DebugController;
12
+ //# sourceMappingURL=debug-controller.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-controller.decorator.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-debug/decorators/debug-controller.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,6CAAuD;AACvD,+DAA0D;AAE1D,0FAA0F;AAC1F,gGAAgG;AAChG,kDAAkD;AAC3C,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9C,IAAA,wBAAe,EAAC,IAAA,mBAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAe,EAAE,CAAC,EAAE,IAAA,kBAAS,EAAC,+BAAa,CAAC,EAAE,IAAA,8BAAoB,GAAE,CAAC,CAAC;AADvG,QAAA,eAAe,mBACwF"}
@@ -0,0 +1,6 @@
1
+ export declare const E2E_DEBUG_ENABLED_ENV = "E2E_DEBUG_ENABLED";
2
+ export declare const E2E_DEBUG_TOKEN_ENV = "E2E_DEBUG_TOKEN";
3
+ export declare const APP_ENV_VAR = "APP_ENV";
4
+ export declare const E2E_TOKEN_HEADER = "x-e2e-token";
5
+ export declare const isE2eDebugEnabled: () => boolean;
6
+ export declare const assertE2eDebugEnvSafe: () => void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertE2eDebugEnvSafe = exports.isE2eDebugEnabled = exports.E2E_TOKEN_HEADER = exports.APP_ENV_VAR = exports.E2E_DEBUG_TOKEN_ENV = exports.E2E_DEBUG_ENABLED_ENV = void 0;
4
+ const app_env_enum_1 = require("../gg-config/app-env.enum");
5
+ exports.E2E_DEBUG_ENABLED_ENV = 'E2E_DEBUG_ENABLED';
6
+ exports.E2E_DEBUG_TOKEN_ENV = 'E2E_DEBUG_TOKEN';
7
+ exports.APP_ENV_VAR = 'APP_ENV';
8
+ // Express normalizes request headers to lowercase, so the lookup key must be lowercase.
9
+ exports.E2E_TOKEN_HEADER = 'x-e2e-token';
10
+ const E2E_ALLOWED_ENVS = [app_env_enum_1.AppEnv.Dev, app_env_enum_1.AppEnv.Stage];
11
+ const isEnabledFlagSet = () => process.env[exports.E2E_DEBUG_ENABLED_ENV] === 'true';
12
+ // True only for an explicit dev/stage. Fail-closed: unset, a typo, or prod all return false,
13
+ // so the gate keeps debug off and the assertion crashes a misconfigured boot.
14
+ const isE2eAllowedEnv = () => E2E_ALLOWED_ENVS.includes(process.env[exports.APP_ENV_VAR] ?? '');
15
+ // L1 gate — consumers call this in their AppModule imports to decide whether to load GgDebugModule.
16
+ // Pure process.env read so it can run at module-import time, before DI/config exist.
17
+ const isE2eDebugEnabled = () => isEnabledFlagSet() && isE2eAllowedEnv();
18
+ exports.isE2eDebugEnabled = isE2eDebugEnabled;
19
+ // L3 boot assertion — refuse to start if debug is enabled outside dev/stage.
20
+ const assertE2eDebugEnvSafe = () => {
21
+ if (isEnabledFlagSet() && !isE2eAllowedEnv()) {
22
+ throw new Error('E2E debug endpoints must never be enabled outside dev/stage');
23
+ }
24
+ };
25
+ exports.assertE2eDebugEnvSafe = assertE2eDebugEnvSafe;
26
+ //# sourceMappingURL=e2e-debug.env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-debug.env.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-debug/e2e-debug.env.ts"],"names":[],"mappings":";;;AAAA,4DAAmD;AAEtC,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAC5C,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AACxC,QAAA,WAAW,GAAG,SAAS,CAAC;AAErC,wFAAwF;AAC3E,QAAA,gBAAgB,GAAG,aAAa,CAAC;AAE9C,MAAM,gBAAgB,GAAsB,CAAC,qBAAM,CAAC,GAAG,EAAE,qBAAM,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAAqB,CAAC,KAAK,MAAM,CAAC;AAEtF,6FAA6F;AAC7F,8EAA8E;AAC9E,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AAEjG,oGAAoG;AACpG,qFAAqF;AAC9E,MAAM,iBAAiB,GAAG,GAAY,EAAE,CAAC,gBAAgB,EAAE,IAAI,eAAe,EAAE,CAAC;AAA3E,QAAA,iBAAiB,qBAA0D;AAExF,6EAA6E;AACtE,MAAM,qBAAqB,GAAG,GAAS,EAAE;IAC9C,IAAI,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC"}
@@ -0,0 +1,8 @@
1
+ import { DynamicModule, Type } from '@nestjs/common';
2
+ export interface GgDebugForFeatureOptions {
3
+ controllers: Type<any>[];
4
+ canaryPath: string;
5
+ }
6
+ export declare class GgDebugModule {
7
+ static forFeature(options: GgDebugForFeatureOptions): DynamicModule;
8
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GgDebugModule = void 0;
4
+ const canary_controller_1 = require("./canary.controller");
5
+ const e2e_token_guard_1 = require("./guards/e2e-token.guard");
6
+ class GgDebugModule {
7
+ static forFeature(options) {
8
+ return {
9
+ module: GgDebugModule,
10
+ controllers: [...options.controllers, (0, canary_controller_1.createCanaryController)(options.canaryPath)],
11
+ // Provided here so @UseGuards(E2eTokenGuard) on the passed-in controllers resolves via DI.
12
+ providers: [e2e_token_guard_1.E2eTokenGuard],
13
+ };
14
+ }
15
+ }
16
+ exports.GgDebugModule = GgDebugModule;
17
+ //# sourceMappingURL=gg-debug.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gg-debug.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-debug/gg-debug.module.ts"],"names":[],"mappings":";;;AACA,2DAA6D;AAC7D,8DAAyD;AAQzD,MAAa,aAAa;IACjB,MAAM,CAAC,UAAU,CAAC,OAAiC;QACxD,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,IAAA,0CAAsB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjF,2FAA2F;YAC3F,SAAS,EAAE,CAAC,+BAAa,CAAC;SAC3B,CAAC;IACJ,CAAC;CACF;AATD,sCASC"}
@@ -0,0 +1,5 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class E2eTokenGuard implements CanActivate {
3
+ canActivate(context: ExecutionContext): boolean;
4
+ private tokensMatch;
5
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.E2eTokenGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const crypto_1 = require("crypto");
7
+ const e2e_debug_env_1 = require("../e2e-debug.env");
8
+ let E2eTokenGuard = class E2eTokenGuard {
9
+ canActivate(context) {
10
+ const expected = process.env[e2e_debug_env_1.E2E_DEBUG_TOKEN_ENV];
11
+ // No secret configured -> deny everything; never crash the request.
12
+ if (!expected)
13
+ throw new common_1.UnauthorizedException();
14
+ const request = context.switchToHttp().getRequest();
15
+ const provided = request?.headers?.[e2e_debug_env_1.E2E_TOKEN_HEADER];
16
+ if (typeof provided !== 'string' || provided.length === 0)
17
+ throw new common_1.UnauthorizedException();
18
+ if (!this.tokensMatch(provided, expected))
19
+ throw new common_1.UnauthorizedException();
20
+ return true;
21
+ }
22
+ // Compare SHA-256 digests so timingSafeEqual gets equal-length buffers (never throws) and the
23
+ // comparison leaks neither the token nor its length.
24
+ tokensMatch(provided, expected) {
25
+ const providedHash = (0, crypto_1.createHash)('sha256').update(provided).digest();
26
+ const expectedHash = (0, crypto_1.createHash)('sha256').update(expected).digest();
27
+ return (0, crypto_1.timingSafeEqual)(providedHash, expectedHash);
28
+ }
29
+ };
30
+ exports.E2eTokenGuard = E2eTokenGuard;
31
+ exports.E2eTokenGuard = E2eTokenGuard = tslib_1.__decorate([
32
+ (0, common_1.Injectable)()
33
+ ], E2eTokenGuard);
34
+ //# sourceMappingURL=e2e-token.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-token.guard.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-debug/guards/e2e-token.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAAkG;AAClG,mCAAqD;AACrD,oDAAyE;AAGlE,IAAM,aAAa,GAAnB,MAAM,aAAa;IACjB,WAAW,CAAC,OAAyB;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmB,CAAC,CAAC;QAClD,oEAAoE;QACpE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,8BAAqB,EAAE,CAAC;QAEjD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,gCAAgB,CAAC,CAAC;QACtD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,8BAAqB,EAAE,CAAC;QAE7F,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,MAAM,IAAI,8BAAqB,EAAE,CAAC;QAE7E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8FAA8F;IAC9F,qDAAqD;IAC7C,WAAW,CAAC,QAAgB,EAAE,QAAgB;QACpD,MAAM,YAAY,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACpE,MAAM,YAAY,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAEpE,OAAO,IAAA,wBAAe,EAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAuBzB"}
@@ -0,0 +1,4 @@
1
+ export * from './canary.controller';
2
+ export * from './decorators/debug-controller.decorator';
3
+ export * from './e2e-debug.env';
4
+ export * from './gg-debug.module';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./canary.controller"), exports);
5
+ tslib_1.__exportStar(require("./decorators/debug-controller.decorator"), exports);
6
+ tslib_1.__exportStar(require("./e2e-debug.env"), exports);
7
+ tslib_1.__exportStar(require("./gg-debug.module"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-debug/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kFAAwD;AACxD,0DAAgC;AAChC,4DAAkC"}
@@ -41,6 +41,7 @@ class Kernel {
41
41
  service_providers_1.VersioningServiceProvider,
42
42
  service_providers_1.SwaggerServiceProvider,
43
43
  service_providers_1.HelmetServiceProvider,
44
+ service_providers_1.E2eDebugServiceProvider,
44
45
  ]);
45
46
  }
46
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-kernel/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-kernel/kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { BaseServiceProvider } from './base-service-provider';
2
+ export declare class E2eDebugServiceProvider extends BaseServiceProvider {
3
+ register(): Promise<void>;
4
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.E2eDebugServiceProvider = void 0;
4
+ const e2e_debug_env_1 = require("../../gg-debug/e2e-debug.env");
5
+ const base_service_provider_1 = require("./base-service-provider");
6
+ // Runs for every gg-core service at boot: crash-loops the pod if E2E debug is enabled outside
7
+ // dev/stage (L3). Universal — independent of whether the service registers any debug controller.
8
+ class E2eDebugServiceProvider extends base_service_provider_1.BaseServiceProvider {
9
+ async register() {
10
+ try {
11
+ (0, e2e_debug_env_1.assertE2eDebugEnvSafe)();
12
+ }
13
+ catch (error) {
14
+ this.logger.error({ msg: 'E2E debug endpoints enabled outside dev/stage; refusing to start', err: error });
15
+ throw error;
16
+ }
17
+ }
18
+ }
19
+ exports.E2eDebugServiceProvider = E2eDebugServiceProvider;
20
+ //# sourceMappingURL=e2e-debug.service-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-debug.service-provider.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-kernel/service-providers/e2e-debug.service-provider.ts"],"names":[],"mappings":";;;AAAA,gEAAqE;AACrE,mEAA8D;AAE9D,8FAA8F;AAC9F,iGAAiG;AACjG,MAAa,uBAAwB,SAAQ,2CAAmB;IACvD,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC;YACH,IAAA,qCAAqB,GAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,kEAAkE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3G,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AATD,0DASC"}
@@ -1,4 +1,5 @@
1
1
  export * from './base-service-provider';
2
+ export * from './e2e-debug.service-provider';
2
3
  export * from './global-prefix.service-provider';
3
4
  export * from './helmet.service-provider';
4
5
  export * from './logger.service-provider';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./base-service-provider"), exports);
5
+ tslib_1.__exportStar(require("./e2e-debug.service-provider"), exports);
5
6
  tslib_1.__exportStar(require("./global-prefix.service-provider"), exports);
6
7
  tslib_1.__exportStar(require("./helmet.service-provider"), exports);
7
8
  tslib_1.__exportStar(require("./logger.service-provider"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-kernel/service-providers/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,2EAAiD;AACjD,oEAA0C;AAC1C,oEAA0C;AAC1C,4EAAkD;AAClD,qEAA2C;AAC3C,wEAA8C;AAC9C,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-kernel/service-providers/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,uEAA6C;AAC7C,2EAAiD;AACjD,oEAA0C;AAC1C,oEAA0C;AAC1C,4EAAkD;AAClD,qEAA2C;AAC3C,wEAA8C;AAC9C,wEAA8C"}
package/src/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './gg-cache';
3
3
  export * from './gg-config';
4
4
  export * from './gg-core';
5
5
  export * from './gg-database';
6
+ export * from './gg-debug';
6
7
  export * from './gg-errors';
7
8
  export * from './gg-kernel';
8
9
  export * from './gg-metrics';
package/src/index.js CHANGED
@@ -6,6 +6,7 @@ tslib_1.__exportStar(require("./gg-cache"), exports);
6
6
  tslib_1.__exportStar(require("./gg-config"), exports);
7
7
  tslib_1.__exportStar(require("./gg-core"), exports);
8
8
  tslib_1.__exportStar(require("./gg-database"), exports);
9
+ tslib_1.__exportStar(require("./gg-debug"), exports);
9
10
  tslib_1.__exportStar(require("./gg-errors"), exports);
10
11
  tslib_1.__exportStar(require("./gg-kernel"), exports);
11
12
  tslib_1.__exportStar(require("./gg-metrics"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/gg-core/src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,oDAA0B;AAC1B,wDAA8B;AAC9B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,qDAA2B;AAC3B,qDAA2B;AAC3B,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/gg-core/src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,oDAA0B;AAC1B,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,qDAA2B;AAC3B,qDAA2B;AAC3B,uDAA6B"}