@miguelmorales13/nestkit 0.1.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 (69) hide show
  1. package/README.md +305 -1
  2. package/dist/auth/auth-user.entity.d.ts +8 -0
  3. package/dist/auth/auth-user.port.d.ts +16 -0
  4. package/dist/auth/auth.controller.d.ts +25 -0
  5. package/dist/auth/auth.dto.d.ts +13 -0
  6. package/dist/auth/auth.service.d.ts +24 -0
  7. package/dist/auth/authenticated-user.d.ts +7 -0
  8. package/dist/auth/current-tenant.decorator.d.ts +2 -0
  9. package/dist/auth/current-user.decorator.d.ts +1 -0
  10. package/dist/auth/hash.util.d.ts +2 -0
  11. package/dist/auth/index.cjs +265 -0
  12. package/dist/auth/index.d.ts +16 -0
  13. package/dist/auth/index.js +265 -0
  14. package/dist/auth/jwt-auth.guard.d.ts +5 -0
  15. package/dist/auth/require-tenant.guard.d.ts +9 -0
  16. package/dist/auth/roles.decorator.d.ts +3 -0
  17. package/dist/auth/roles.guard.d.ts +11 -0
  18. package/dist/auth/token.service.d.ts +7 -0
  19. package/dist/bootstrap/index.cjs +4 -3
  20. package/dist/bootstrap/index.js +3 -2
  21. package/dist/{chunk-AUA4X3RE.cjs → chunk-54ZXIB5T.cjs} +3 -3
  22. package/dist/{chunk-EQXYK6AL.js → chunk-7I2Y7V52.js} +5 -13
  23. package/dist/chunk-7SOM7EZP.cjs +1 -0
  24. package/dist/{chunk-VPS5CLHT.js → chunk-AOCF5QCZ.js} +3 -3
  25. package/dist/chunk-DQYAIQQ5.js +0 -0
  26. package/dist/{chunk-AR3EKJBR.cjs → chunk-FDNGAYTZ.cjs} +6 -6
  27. package/dist/{chunk-4IDLJMQA.cjs → chunk-J7TURDAL.cjs} +6 -14
  28. package/dist/{chunk-HGJX2GPE.js → chunk-ORWJ7LES.js} +1 -1
  29. package/dist/chunk-R7BVS6CI.cjs +13 -0
  30. package/dist/chunk-YFYHLYHN.js +13 -0
  31. package/dist/email/nodemailer/index.cjs +40 -0
  32. package/dist/email/nodemailer/index.d.ts +1 -0
  33. package/dist/email/nodemailer/index.js +40 -0
  34. package/dist/email/nodemailer/nodemailer.module.d.ts +4 -0
  35. package/dist/email/resend/index.cjs +31 -0
  36. package/dist/email/resend/index.d.ts +1 -0
  37. package/dist/email/resend/index.js +31 -0
  38. package/dist/email/resend/resend.module.d.ts +4 -0
  39. package/dist/errors/index.cjs +7 -4
  40. package/dist/errors/index.js +6 -3
  41. package/dist/index.cjs +17 -14
  42. package/dist/index.js +20 -17
  43. package/dist/media/index.cjs +127 -0
  44. package/dist/media/index.d.ts +5 -0
  45. package/dist/media/index.js +127 -0
  46. package/dist/media/media.controller.d.ts +44 -0
  47. package/dist/media/media.module.d.ts +7 -0
  48. package/dist/media/media.options.d.ts +13 -0
  49. package/dist/media/media.service.d.ts +29 -0
  50. package/dist/meta/index.cjs +164 -0
  51. package/dist/meta/index.d.ts +3 -0
  52. package/dist/meta/index.js +164 -0
  53. package/dist/meta/meta.module.d.ts +16 -0
  54. package/dist/meta/meta.service.d.ts +81 -0
  55. package/dist/stripe/index.cjs +78 -0
  56. package/dist/stripe/index.d.ts +3 -0
  57. package/dist/stripe/index.js +78 -0
  58. package/dist/stripe/stripe-webhook.controller.d.ts +20 -0
  59. package/dist/stripe/stripe.module.d.ts +4 -0
  60. package/dist/telegram/index.cjs +31 -0
  61. package/dist/telegram/index.d.ts +1 -0
  62. package/dist/telegram/index.js +31 -0
  63. package/dist/telegram/telegram.module.d.ts +8 -0
  64. package/dist/whatsapp/index.cjs +68 -0
  65. package/dist/whatsapp/index.d.ts +3 -0
  66. package/dist/whatsapp/index.js +68 -0
  67. package/dist/whatsapp/whatsapp-client.d.ts +21 -0
  68. package/dist/whatsapp/whatsapp.module.d.ts +4 -0
  69. package/package.json +84 -10
@@ -1,9 +1,9 @@
1
- import {
2
- GlobalExceptionFilter
3
- } from "./chunk-EQXYK6AL.js";
4
1
  import {
5
2
  ResponseInterceptor
6
3
  } from "./chunk-KDAA6GFF.js";
4
+ import {
5
+ GlobalExceptionFilter
6
+ } from "./chunk-7I2Y7V52.js";
7
7
 
8
8
  // src/bootstrap/apply-defaults.ts
9
9
  import {
File without changes
@@ -1,30 +1,30 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk4IDLJMQAcjs = require('./chunk-4IDLJMQA.cjs');
3
+ var _chunkR7BVS6CIcjs = require('./chunk-R7BVS6CI.cjs');
4
4
 
5
5
  // src/errors/common.exceptions.ts
6
6
  var _common = require('@nestjs/common');
7
- var NotFoundAppException = class extends _chunk4IDLJMQAcjs.AppException {
7
+ var NotFoundAppException = class extends _chunkR7BVS6CIcjs.AppException {
8
8
  constructor(message = "Resource not found", details, code = "NOT_FOUND") {
9
9
  super(code, message, _common.HttpStatus.NOT_FOUND, details);
10
10
  }
11
11
  };
12
- var ConflictAppException = class extends _chunk4IDLJMQAcjs.AppException {
12
+ var ConflictAppException = class extends _chunkR7BVS6CIcjs.AppException {
13
13
  constructor(message = "Conflict", details, code = "CONFLICT") {
14
14
  super(code, message, _common.HttpStatus.CONFLICT, details);
15
15
  }
16
16
  };
17
- var ValidationAppException = class extends _chunk4IDLJMQAcjs.AppException {
17
+ var ValidationAppException = class extends _chunkR7BVS6CIcjs.AppException {
18
18
  constructor(message = "Validation failed", details, code = "VALIDATION_ERROR") {
19
19
  super(code, message, _common.HttpStatus.BAD_REQUEST, details);
20
20
  }
21
21
  };
22
- var UnauthorizedAppException = class extends _chunk4IDLJMQAcjs.AppException {
22
+ var UnauthorizedAppException = class extends _chunkR7BVS6CIcjs.AppException {
23
23
  constructor(message = "Unauthorized", details, code = "UNAUTHORIZED") {
24
24
  super(code, message, _common.HttpStatus.UNAUTHORIZED, details);
25
25
  }
26
26
  };
27
- var ForbiddenAppException = class extends _chunk4IDLJMQAcjs.AppException {
27
+ var ForbiddenAppException = class extends _chunkR7BVS6CIcjs.AppException {
28
28
  constructor(message = "Forbidden", details, code = "FORBIDDEN") {
29
29
  super(code, message, _common.HttpStatus.FORBIDDEN, details);
30
30
  }
@@ -3,25 +3,18 @@
3
3
  var _chunkZA56XBCKcjs = require('./chunk-ZA56XBCK.cjs');
4
4
 
5
5
 
6
- var _chunk2REOCMUDcjs = require('./chunk-2REOCMUD.cjs');
6
+ var _chunkR7BVS6CIcjs = require('./chunk-R7BVS6CI.cjs');
7
7
 
8
- // src/errors/app.exception.ts
9
- var _common = require('@nestjs/common');
10
- var AppException = class extends _common.HttpException {
11
- constructor(code, message, status, details) {
12
- super({ code, message, details }, status);
13
- this.code = code;
14
- this.details = details;
15
- }
16
- };
17
8
 
18
- // src/errors/global-exception.filter.ts
9
+ var _chunk2REOCMUDcjs = require('./chunk-2REOCMUD.cjs');
19
10
 
11
+ // src/errors/global-exception.filter.ts
20
12
 
21
13
 
22
14
 
23
15
 
24
16
 
17
+ var _common = require('@nestjs/common');
25
18
  var GlobalExceptionFilter = class {
26
19
  constructor() {
27
20
  this.logger = new (0, _common.Logger)(GlobalExceptionFilter.name);
@@ -46,7 +39,7 @@ var GlobalExceptionFilter = class {
46
39
  response.status(resolved.status).send(body);
47
40
  }
48
41
  resolve(exception) {
49
- if (exception instanceof AppException) {
42
+ if (exception instanceof _chunkR7BVS6CIcjs.AppException) {
50
43
  return {
51
44
  status: exception.getStatus(),
52
45
  code: exception.code,
@@ -77,5 +70,4 @@ GlobalExceptionFilter = exports.GlobalExceptionFilter = _chunk2REOCMUDcjs.__deco
77
70
 
78
71
 
79
72
 
80
-
81
- exports.AppException = AppException; exports.GlobalExceptionFilter = GlobalExceptionFilter;
73
+ exports.GlobalExceptionFilter = GlobalExceptionFilter;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AppException
3
- } from "./chunk-EQXYK6AL.js";
3
+ } from "./chunk-YFYHLYHN.js";
4
4
 
5
5
  // src/errors/common.exceptions.ts
6
6
  import { HttpStatus } from "@nestjs/common";
@@ -0,0 +1,13 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/errors/app.exception.ts
2
+ var _common = require('@nestjs/common');
3
+ var AppException = class extends _common.HttpException {
4
+ constructor(code, message, status, details) {
5
+ super({ code, message, details }, status);
6
+ this.code = code;
7
+ this.details = details;
8
+ }
9
+ };
10
+
11
+
12
+
13
+ exports.AppException = AppException;
@@ -0,0 +1,13 @@
1
+ // src/errors/app.exception.ts
2
+ import { HttpException } from "@nestjs/common";
3
+ var AppException = class extends HttpException {
4
+ constructor(code, message, status, details) {
5
+ super({ code, message, details }, status);
6
+ this.code = code;
7
+ this.details = details;
8
+ }
9
+ };
10
+
11
+ export {
12
+ AppException
13
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunk2REOCMUDcjs = require('../../chunk-2REOCMUD.cjs');
4
+
5
+ // src/email/nodemailer/nodemailer.module.ts
6
+ var _common = require('@nestjs/common');
7
+ var _nodemailer = require('nodemailer'); var _nodemailer2 = _interopRequireDefault(_nodemailer);
8
+ var NODEMAILER_TRANSPORT = /* @__PURE__ */ Symbol("NODEMAILER_TRANSPORT");
9
+ function requireEnv(name) {
10
+ const value = process.env[name];
11
+ if (!value) {
12
+ throw new Error(`NodemailerModule: ${name} environment variable is not set`);
13
+ }
14
+ return value;
15
+ }
16
+ var NodemailerModule = class {
17
+ };
18
+ NodemailerModule = exports.NodemailerModule = _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
19
+ _common.Module.call(void 0, {
20
+ providers: [
21
+ {
22
+ provide: NODEMAILER_TRANSPORT,
23
+ useFactory: () => _nodemailer2.default.createTransport({
24
+ host: requireEnv("SMTP_HOST"),
25
+ port: Number(requireEnv("SMTP_PORT")),
26
+ secure: process.env.SMTP_SECURE === "true",
27
+ auth: {
28
+ user: requireEnv("SMTP_USER"),
29
+ pass: requireEnv("SMTP_PASSWORD")
30
+ }
31
+ })
32
+ }
33
+ ],
34
+ exports: [NODEMAILER_TRANSPORT]
35
+ })
36
+ ], NodemailerModule);
37
+
38
+
39
+
40
+ exports.NODEMAILER_TRANSPORT = NODEMAILER_TRANSPORT; exports.NodemailerModule = NodemailerModule;
@@ -0,0 +1 @@
1
+ export { NodemailerModule, NODEMAILER_TRANSPORT } from './nodemailer.module.js';
@@ -0,0 +1,40 @@
1
+ import {
2
+ __decorateClass
3
+ } from "../../chunk-4MGIQFAJ.js";
4
+
5
+ // src/email/nodemailer/nodemailer.module.ts
6
+ import { Module } from "@nestjs/common";
7
+ import nodemailer from "nodemailer";
8
+ var NODEMAILER_TRANSPORT = /* @__PURE__ */ Symbol("NODEMAILER_TRANSPORT");
9
+ function requireEnv(name) {
10
+ const value = process.env[name];
11
+ if (!value) {
12
+ throw new Error(`NodemailerModule: ${name} environment variable is not set`);
13
+ }
14
+ return value;
15
+ }
16
+ var NodemailerModule = class {
17
+ };
18
+ NodemailerModule = __decorateClass([
19
+ Module({
20
+ providers: [
21
+ {
22
+ provide: NODEMAILER_TRANSPORT,
23
+ useFactory: () => nodemailer.createTransport({
24
+ host: requireEnv("SMTP_HOST"),
25
+ port: Number(requireEnv("SMTP_PORT")),
26
+ secure: process.env.SMTP_SECURE === "true",
27
+ auth: {
28
+ user: requireEnv("SMTP_USER"),
29
+ pass: requireEnv("SMTP_PASSWORD")
30
+ }
31
+ })
32
+ }
33
+ ],
34
+ exports: [NODEMAILER_TRANSPORT]
35
+ })
36
+ ], NodemailerModule);
37
+ export {
38
+ NODEMAILER_TRANSPORT,
39
+ NodemailerModule
40
+ };
@@ -0,0 +1,4 @@
1
+ /** DI token for the Nodemailer SMTP transport. Inject with `@Inject(NODEMAILER_TRANSPORT)`. */
2
+ export declare const NODEMAILER_TRANSPORT: unique symbol;
3
+ export declare class NodemailerModule {
4
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk2REOCMUDcjs = require('../../chunk-2REOCMUD.cjs');
4
+
5
+ // src/email/resend/resend.module.ts
6
+ var _common = require('@nestjs/common');
7
+ var _resend = require('resend');
8
+ var RESEND_CLIENT = /* @__PURE__ */ Symbol("RESEND_CLIENT");
9
+ var ResendModule = class {
10
+ };
11
+ ResendModule = exports.ResendModule = _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
12
+ _common.Module.call(void 0, {
13
+ providers: [
14
+ {
15
+ provide: RESEND_CLIENT,
16
+ useFactory: () => {
17
+ const apiKey = process.env.RESEND_API_KEY;
18
+ if (!apiKey) {
19
+ throw new Error("ResendModule: RESEND_API_KEY environment variable is not set");
20
+ }
21
+ return new (0, _resend.Resend)(apiKey);
22
+ }
23
+ }
24
+ ],
25
+ exports: [RESEND_CLIENT]
26
+ })
27
+ ], ResendModule);
28
+
29
+
30
+
31
+ exports.RESEND_CLIENT = RESEND_CLIENT; exports.ResendModule = ResendModule;
@@ -0,0 +1 @@
1
+ export { ResendModule, RESEND_CLIENT } from './resend.module.js';
@@ -0,0 +1,31 @@
1
+ import {
2
+ __decorateClass
3
+ } from "../../chunk-4MGIQFAJ.js";
4
+
5
+ // src/email/resend/resend.module.ts
6
+ import { Module } from "@nestjs/common";
7
+ import { Resend } from "resend";
8
+ var RESEND_CLIENT = /* @__PURE__ */ Symbol("RESEND_CLIENT");
9
+ var ResendModule = class {
10
+ };
11
+ ResendModule = __decorateClass([
12
+ Module({
13
+ providers: [
14
+ {
15
+ provide: RESEND_CLIENT,
16
+ useFactory: () => {
17
+ const apiKey = process.env.RESEND_API_KEY;
18
+ if (!apiKey) {
19
+ throw new Error("ResendModule: RESEND_API_KEY environment variable is not set");
20
+ }
21
+ return new Resend(apiKey);
22
+ }
23
+ }
24
+ ],
25
+ exports: [RESEND_CLIENT]
26
+ })
27
+ ], ResendModule);
28
+ export {
29
+ RESEND_CLIENT,
30
+ ResendModule
31
+ };
@@ -0,0 +1,4 @@
1
+ /** DI token for the Resend email client. Inject with `@Inject(RESEND_CLIENT)`. */
2
+ export declare const RESEND_CLIENT: unique symbol;
3
+ export declare class ResendModule {
4
+ }
@@ -1,15 +1,18 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-7SOM7EZP.cjs');
2
2
 
3
3
 
4
4
 
5
5
 
6
6
 
7
- var _chunkAR3EKJBRcjs = require('../chunk-AR3EKJBR.cjs');
8
7
 
8
+ var _chunkFDNGAYTZcjs = require('../chunk-FDNGAYTZ.cjs');
9
9
 
10
10
 
11
- var _chunk4IDLJMQAcjs = require('../chunk-4IDLJMQA.cjs');
11
+ var _chunkJ7TURDALcjs = require('../chunk-J7TURDAL.cjs');
12
12
  require('../chunk-ZA56XBCK.cjs');
13
+
14
+
15
+ var _chunkR7BVS6CIcjs = require('../chunk-R7BVS6CI.cjs');
13
16
  require('../chunk-2REOCMUD.cjs');
14
17
 
15
18
 
@@ -19,4 +22,4 @@ require('../chunk-2REOCMUD.cjs');
19
22
 
20
23
 
21
24
 
22
- exports.AppException = _chunk4IDLJMQAcjs.AppException; exports.ConflictAppException = _chunkAR3EKJBRcjs.ConflictAppException; exports.ForbiddenAppException = _chunkAR3EKJBRcjs.ForbiddenAppException; exports.GlobalExceptionFilter = _chunk4IDLJMQAcjs.GlobalExceptionFilter; exports.NotFoundAppException = _chunkAR3EKJBRcjs.NotFoundAppException; exports.UnauthorizedAppException = _chunkAR3EKJBRcjs.UnauthorizedAppException; exports.ValidationAppException = _chunkAR3EKJBRcjs.ValidationAppException;
25
+ exports.AppException = _chunkR7BVS6CIcjs.AppException; exports.ConflictAppException = _chunkFDNGAYTZcjs.ConflictAppException; exports.ForbiddenAppException = _chunkFDNGAYTZcjs.ForbiddenAppException; exports.GlobalExceptionFilter = _chunkJ7TURDALcjs.GlobalExceptionFilter; exports.NotFoundAppException = _chunkFDNGAYTZcjs.NotFoundAppException; exports.UnauthorizedAppException = _chunkFDNGAYTZcjs.UnauthorizedAppException; exports.ValidationAppException = _chunkFDNGAYTZcjs.ValidationAppException;
@@ -1,15 +1,18 @@
1
+ import "../chunk-DQYAIQQ5.js";
1
2
  import {
2
3
  ConflictAppException,
3
4
  ForbiddenAppException,
4
5
  NotFoundAppException,
5
6
  UnauthorizedAppException,
6
7
  ValidationAppException
7
- } from "../chunk-HGJX2GPE.js";
8
+ } from "../chunk-ORWJ7LES.js";
8
9
  import {
9
- AppException,
10
10
  GlobalExceptionFilter
11
- } from "../chunk-EQXYK6AL.js";
11
+ } from "../chunk-7I2Y7V52.js";
12
12
  import "../chunk-EBO6UKHL.js";
13
+ import {
14
+ AppException
15
+ } from "../chunk-YFYHLYHN.js";
13
16
  import "../chunk-4MGIQFAJ.js";
14
17
  export {
15
18
  AppException,
package/dist/index.cjs CHANGED
@@ -1,51 +1,54 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-KVBQBT3D.cjs');
2
-
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
3
2
 
4
3
 
5
4
 
6
5
  var _chunkRF75KC63cjs = require('./chunk-RF75KC63.cjs');
6
+ require('./chunk-MR2IFCZE.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- var _chunkSPTDXUEDcjs = require('./chunk-SPTDXUED.cjs');
12
-
11
+ var _chunkV2M75FN3cjs = require('./chunk-V2M75FN3.cjs');
12
+ require('./chunk-KVBQBT3D.cjs');
13
13
 
14
- var _chunkAUA4X3REcjs = require('./chunk-AUA4X3RE.cjs');
15
14
 
16
15
 
17
16
 
18
- var _chunk3CLYZC3Tcjs = require('./chunk-3CLYZC3T.cjs');
17
+ var _chunkSPTDXUEDcjs = require('./chunk-SPTDXUED.cjs');
19
18
 
20
19
 
20
+ var _chunk54ZXIB5Tcjs = require('./chunk-54ZXIB5T.cjs');
21
21
 
22
22
 
23
+ var _chunkTJHRABMLcjs = require('./chunk-TJHRABML.cjs');
23
24
 
24
25
 
25
- var _chunkAR3EKJBRcjs = require('./chunk-AR3EKJBR.cjs');
26
26
 
27
+ var _chunk3CLYZC3Tcjs = require('./chunk-3CLYZC3T.cjs');
28
+ require('./chunk-7SOM7EZP.cjs');
27
29
 
28
30
 
29
- var _chunk4IDLJMQAcjs = require('./chunk-4IDLJMQA.cjs');
30
31
 
31
32
 
32
- var _chunkQS2W5XCQcjs = require('./chunk-QS2W5XCQ.cjs');
33
- require('./chunk-MR2IFCZE.cjs');
34
33
 
35
34
 
36
- var _chunkTJHRABMLcjs = require('./chunk-TJHRABML.cjs');
35
+ var _chunkFDNGAYTZcjs = require('./chunk-FDNGAYTZ.cjs');
37
36
 
38
37
 
38
+ var _chunkJ7TURDALcjs = require('./chunk-J7TURDAL.cjs');
39
39
 
40
40
 
41
- var _chunkV2M75FN3cjs = require('./chunk-V2M75FN3.cjs');
41
+ var _chunkZA56XBCKcjs = require('./chunk-ZA56XBCK.cjs');
42
42
 
43
43
 
44
- var _chunkZA56XBCKcjs = require('./chunk-ZA56XBCK.cjs');
44
+ var _chunkR7BVS6CIcjs = require('./chunk-R7BVS6CI.cjs');
45
45
 
46
46
 
47
47
 
48
48
  var _chunkM3EL5O6Tcjs = require('./chunk-M3EL5O6T.cjs');
49
+
50
+
51
+ var _chunkQS2W5XCQcjs = require('./chunk-QS2W5XCQ.cjs');
49
52
  require('./chunk-2REOCMUD.cjs');
50
53
 
51
54
 
@@ -72,4 +75,4 @@ require('./chunk-2REOCMUD.cjs');
72
75
 
73
76
 
74
77
 
75
- exports.AppException = _chunk4IDLJMQAcjs.AppException; exports.BaseCrudService = _chunk3CLYZC3Tcjs.BaseCrudService; exports.BaseResponseDto = _chunkQS2W5XCQcjs.BaseResponseDto; exports.ConflictAppException = _chunkAR3EKJBRcjs.ConflictAppException; exports.ForbiddenAppException = _chunkAR3EKJBRcjs.ForbiddenAppException; exports.GlobalExceptionFilter = _chunk4IDLJMQAcjs.GlobalExceptionFilter; exports.I18nModule = _chunkM3EL5O6Tcjs.I18nModule; exports.NotFoundAppException = _chunkAR3EKJBRcjs.NotFoundAppException; exports.PG_POOL = _chunkRF75KC63cjs.PG_POOL; exports.PgModule = _chunkRF75KC63cjs.PgModule; exports.REQUEST_ID_HEADER = _chunkV2M75FN3cjs.REQUEST_ID_HEADER; exports.RequestContext = _chunkZA56XBCKcjs.RequestContext; exports.RequestIdMiddleware = _chunkV2M75FN3cjs.RequestIdMiddleware; exports.ResponseInterceptor = _chunkTJHRABMLcjs.ResponseInterceptor; exports.SUPABASE_ANON_CLIENT = _chunkSPTDXUEDcjs.SUPABASE_ANON_CLIENT; exports.SUPABASE_SERVICE_ROLE_CLIENT = _chunkSPTDXUEDcjs.SUPABASE_SERVICE_ROLE_CLIENT; exports.SupabaseModule = _chunkSPTDXUEDcjs.SupabaseModule; exports.TrackingModule = _chunkV2M75FN3cjs.TrackingModule; exports.UnauthorizedAppException = _chunkAR3EKJBRcjs.UnauthorizedAppException; exports.ValidationAppException = _chunkAR3EKJBRcjs.ValidationAppException; exports.applyNestKitDefaults = _chunkAUA4X3REcjs.applyNestKitDefaults; exports.createCrudController = _chunk3CLYZC3Tcjs.createCrudController; exports.translateOr = _chunkM3EL5O6Tcjs.translateOr; exports.withTenantScope = _chunkRF75KC63cjs.withTenantScope;
78
+ exports.AppException = _chunkR7BVS6CIcjs.AppException; exports.BaseCrudService = _chunk3CLYZC3Tcjs.BaseCrudService; exports.BaseResponseDto = _chunkQS2W5XCQcjs.BaseResponseDto; exports.ConflictAppException = _chunkFDNGAYTZcjs.ConflictAppException; exports.ForbiddenAppException = _chunkFDNGAYTZcjs.ForbiddenAppException; exports.GlobalExceptionFilter = _chunkJ7TURDALcjs.GlobalExceptionFilter; exports.I18nModule = _chunkM3EL5O6Tcjs.I18nModule; exports.NotFoundAppException = _chunkFDNGAYTZcjs.NotFoundAppException; exports.PG_POOL = _chunkRF75KC63cjs.PG_POOL; exports.PgModule = _chunkRF75KC63cjs.PgModule; exports.REQUEST_ID_HEADER = _chunkV2M75FN3cjs.REQUEST_ID_HEADER; exports.RequestContext = _chunkZA56XBCKcjs.RequestContext; exports.RequestIdMiddleware = _chunkV2M75FN3cjs.RequestIdMiddleware; exports.ResponseInterceptor = _chunkTJHRABMLcjs.ResponseInterceptor; exports.SUPABASE_ANON_CLIENT = _chunkSPTDXUEDcjs.SUPABASE_ANON_CLIENT; exports.SUPABASE_SERVICE_ROLE_CLIENT = _chunkSPTDXUEDcjs.SUPABASE_SERVICE_ROLE_CLIENT; exports.SupabaseModule = _chunkSPTDXUEDcjs.SupabaseModule; exports.TrackingModule = _chunkV2M75FN3cjs.TrackingModule; exports.UnauthorizedAppException = _chunkFDNGAYTZcjs.UnauthorizedAppException; exports.ValidationAppException = _chunkFDNGAYTZcjs.ValidationAppException; exports.applyNestKitDefaults = _chunk54ZXIB5Tcjs.applyNestKitDefaults; exports.createCrudController = _chunk3CLYZC3Tcjs.createCrudController; exports.translateOr = _chunkM3EL5O6Tcjs.translateOr; exports.withTenantScope = _chunkRF75KC63cjs.withTenantScope;
package/dist/index.js CHANGED
@@ -1,9 +1,15 @@
1
- import "./chunk-EPVKCBPT.js";
2
1
  import {
3
2
  PG_POOL,
4
3
  PgModule,
5
4
  withTenantScope
6
5
  } from "./chunk-VKOPDDCC.js";
6
+ import "./chunk-NAK4WDKS.js";
7
+ import {
8
+ REQUEST_ID_HEADER,
9
+ RequestIdMiddleware,
10
+ TrackingModule
11
+ } from "./chunk-EYURGACO.js";
12
+ import "./chunk-EPVKCBPT.js";
7
13
  import {
8
14
  SUPABASE_ANON_CLIENT,
9
15
  SUPABASE_SERVICE_ROLE_CLIENT,
@@ -11,41 +17,38 @@ import {
11
17
  } from "./chunk-PA24P76K.js";
12
18
  import {
13
19
  applyNestKitDefaults
14
- } from "./chunk-VPS5CLHT.js";
20
+ } from "./chunk-AOCF5QCZ.js";
21
+ import {
22
+ ResponseInterceptor
23
+ } from "./chunk-KDAA6GFF.js";
15
24
  import {
16
25
  BaseCrudService,
17
26
  createCrudController
18
27
  } from "./chunk-JOVBJDJ2.js";
28
+ import "./chunk-DQYAIQQ5.js";
19
29
  import {
20
30
  ConflictAppException,
21
31
  ForbiddenAppException,
22
32
  NotFoundAppException,
23
33
  UnauthorizedAppException,
24
34
  ValidationAppException
25
- } from "./chunk-HGJX2GPE.js";
35
+ } from "./chunk-ORWJ7LES.js";
26
36
  import {
27
- AppException,
28
37
  GlobalExceptionFilter
29
- } from "./chunk-EQXYK6AL.js";
30
- import {
31
- BaseResponseDto
32
- } from "./chunk-XX2HPTRU.js";
33
- import "./chunk-NAK4WDKS.js";
34
- import {
35
- ResponseInterceptor
36
- } from "./chunk-KDAA6GFF.js";
37
- import {
38
- REQUEST_ID_HEADER,
39
- RequestIdMiddleware,
40
- TrackingModule
41
- } from "./chunk-EYURGACO.js";
38
+ } from "./chunk-7I2Y7V52.js";
42
39
  import {
43
40
  RequestContext
44
41
  } from "./chunk-EBO6UKHL.js";
42
+ import {
43
+ AppException
44
+ } from "./chunk-YFYHLYHN.js";
45
45
  import {
46
46
  I18nModule,
47
47
  translateOr
48
48
  } from "./chunk-IYUUYCP5.js";
49
+ import {
50
+ BaseResponseDto
51
+ } from "./chunk-XX2HPTRU.js";
49
52
  import "./chunk-4MGIQFAJ.js";
50
53
  export {
51
54
  AppException,
@@ -0,0 +1,127 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunk2REOCMUDcjs = require('../chunk-2REOCMUD.cjs');
5
+
6
+ // src/media/media.module.ts
7
+ var _common = require('@nestjs/common');
8
+
9
+ // src/media/media.controller.ts
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ // src/media/media.service.ts
24
+
25
+ var _crypto = require('crypto');
26
+ var MediaService = class {
27
+ constructor(ttlMs) {
28
+ this.ttlMs = ttlMs;
29
+ this.logger = new (0, _common.Logger)(MediaService.name);
30
+ this.store = /* @__PURE__ */ new Map();
31
+ }
32
+ store_(data, contentType) {
33
+ return this.put(data, contentType);
34
+ }
35
+ put(data, contentType) {
36
+ this.sweep();
37
+ const id = _crypto.randomUUID.call(void 0, ).replace(/-/g, "");
38
+ this.store.set(id, { data, contentType, expiresAt: Date.now() + this.ttlMs });
39
+ this.logger.log(`Stored ${id} (${(data.length / 1024).toFixed(0)} KB)`);
40
+ return id;
41
+ }
42
+ get(id) {
43
+ const found = this.store.get(id);
44
+ if (!found) return void 0;
45
+ if (Date.now() > found.expiresAt) {
46
+ this.store.delete(id);
47
+ return void 0;
48
+ }
49
+ return found;
50
+ }
51
+ /** Swept on write, which is the only moment the map can have grown. */
52
+ sweep() {
53
+ const now = Date.now();
54
+ for (const [id, entry] of this.store) {
55
+ if (now > entry.expiresAt) this.store.delete(id);
56
+ }
57
+ }
58
+ };
59
+ MediaService = exports.MediaService = _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
60
+ _common.Injectable.call(void 0, )
61
+ ], MediaService);
62
+
63
+ // src/media/media.options.ts
64
+ var MEDIA_OPTIONS = /* @__PURE__ */ Symbol("MEDIA_OPTIONS");
65
+
66
+ // src/media/media.controller.ts
67
+ var MediaController = class {
68
+ constructor(media, options) {
69
+ this.media = media;
70
+ this.options = options;
71
+ }
72
+ upload(request, secret) {
73
+ if (!this.options.uploadSecret) {
74
+ throw new (0, _common.UnauthorizedException)("Media uploads are not configured.");
75
+ }
76
+ if (secret !== this.options.uploadSecret) {
77
+ throw new (0, _common.UnauthorizedException)("Invalid secret.");
78
+ }
79
+ const data = request.body;
80
+ if (!_optionalChain([data, 'optionalAccess', _ => _.length])) throw new (0, _common.UnauthorizedException)("Empty body.");
81
+ const id = this.media.put(Buffer.from(data), _nullishCoalesce(request.headers["content-type"], () => ( "image/png")));
82
+ return { url: `${this.options.publicUrl}/media/${id}` };
83
+ }
84
+ serve(id, reply) {
85
+ const found = this.media.get(id);
86
+ if (!found) throw new (0, _common.NotFoundException)("That file is no longer available.");
87
+ reply.header("content-type", found.contentType).header("cache-control", "no-store").send(found.data);
88
+ }
89
+ };
90
+ _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
91
+ _common.Post.call(void 0, "media"),
92
+ _chunk2REOCMUDcjs.__decorateParam.call(void 0, 0, _common.Req.call(void 0, )),
93
+ _chunk2REOCMUDcjs.__decorateParam.call(void 0, 1, _common.Headers.call(void 0, "x-media-secret"))
94
+ ], MediaController.prototype, "upload", 1);
95
+ _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
96
+ _common.Get.call(void 0, "media/:id"),
97
+ _chunk2REOCMUDcjs.__decorateParam.call(void 0, 0, _common.Param.call(void 0, "id")),
98
+ _chunk2REOCMUDcjs.__decorateParam.call(void 0, 1, _common.Res.call(void 0, ))
99
+ ], MediaController.prototype, "serve", 1);
100
+ MediaController = _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
101
+ _common.Controller.call(void 0, ),
102
+ _chunk2REOCMUDcjs.__decorateParam.call(void 0, 1, _common.Inject.call(void 0, MEDIA_OPTIONS))
103
+ ], MediaController);
104
+
105
+ // src/media/media.module.ts
106
+ var ONE_HOUR = 60 * 60 * 1e3;
107
+ var MediaModule = class {
108
+ static forRoot(options) {
109
+ return {
110
+ module: MediaModule,
111
+ controllers: [MediaController],
112
+ providers: [
113
+ { provide: MEDIA_OPTIONS, useValue: options },
114
+ { provide: MediaService, useFactory: () => new MediaService(_nullishCoalesce(options.ttlMs, () => ( ONE_HOUR))) }
115
+ ],
116
+ exports: [MediaService]
117
+ };
118
+ }
119
+ };
120
+ MediaModule = exports.MediaModule = _chunk2REOCMUDcjs.__decorateClass.call(void 0, [
121
+ _common.Module.call(void 0, {})
122
+ ], MediaModule);
123
+
124
+
125
+
126
+
127
+ exports.MEDIA_OPTIONS = MEDIA_OPTIONS; exports.MediaModule = MediaModule; exports.MediaService = MediaService;
@@ -0,0 +1,5 @@
1
+ export { MediaModule } from './media.module.js';
2
+ export { MediaService } from './media.service.js';
3
+ export { MEDIA_OPTIONS } from './media.options.js';
4
+ export type { MediaOptions } from './media.options.js';
5
+ export type { StoredMedia } from './media.service.js';