@warlock.js/auth 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/cjs/commands/index.d.ts +2 -0
  2. package/cjs/commands/index.d.ts.map +1 -0
  3. package/cjs/commands/index.js +3 -0
  4. package/cjs/commands/index.js.map +1 -0
  5. package/cjs/contracts/auth-contract.d.ts +23 -0
  6. package/cjs/contracts/auth-contract.d.ts.map +1 -0
  7. package/cjs/contracts/index.d.ts +3 -0
  8. package/cjs/contracts/index.d.ts.map +1 -0
  9. package/cjs/contracts/types.d.ts +23 -0
  10. package/cjs/contracts/types.d.ts.map +1 -0
  11. package/cjs/controllers/guest-login.d.ts +3 -0
  12. package/cjs/controllers/guest-login.d.ts.map +1 -0
  13. package/cjs/controllers/guest-login.js +5 -0
  14. package/cjs/controllers/guest-login.js.map +1 -0
  15. package/cjs/controllers/index.d.ts +2 -0
  16. package/cjs/controllers/index.d.ts.map +1 -0
  17. package/cjs/index.d.ts +7 -0
  18. package/cjs/index.d.ts.map +1 -0
  19. package/cjs/index.js +1 -0
  20. package/cjs/index.js.map +1 -0
  21. package/cjs/middleware/auth-middleware.d.ts +2 -0
  22. package/cjs/middleware/auth-middleware.d.ts.map +1 -0
  23. package/cjs/middleware/auth-middleware.js +79 -0
  24. package/cjs/middleware/auth-middleware.js.map +1 -0
  25. package/cjs/middleware/index.d.ts +2 -0
  26. package/cjs/middleware/index.d.ts.map +1 -0
  27. package/cjs/models/access-token/access-token.d.ts +9 -0
  28. package/cjs/models/access-token/access-token.d.ts.map +1 -0
  29. package/cjs/models/access-token/access-token.js +7 -0
  30. package/cjs/models/access-token/access-token.js.map +1 -0
  31. package/cjs/models/access-token/index.d.ts +3 -0
  32. package/cjs/models/access-token/index.d.ts.map +1 -0
  33. package/cjs/models/access-token/migration.d.ts +6 -0
  34. package/cjs/models/access-token/migration.d.ts.map +1 -0
  35. package/cjs/models/access-token/migration.js +7 -0
  36. package/cjs/models/access-token/migration.js.map +1 -0
  37. package/cjs/models/auth.d.ts +25 -0
  38. package/cjs/models/auth.d.ts.map +1 -0
  39. package/cjs/models/auth.js +57 -0
  40. package/cjs/models/auth.js.map +1 -0
  41. package/cjs/models/casts/cast-password.d.ts +7 -0
  42. package/cjs/models/casts/cast-password.d.ts.map +1 -0
  43. package/cjs/models/casts/cast-password.js +9 -0
  44. package/cjs/models/casts/cast-password.js.map +1 -0
  45. package/cjs/models/casts/index.d.ts +2 -0
  46. package/cjs/models/casts/index.d.ts.map +1 -0
  47. package/cjs/models/guest/guest.d.ts +26 -0
  48. package/cjs/models/guest/guest.d.ts.map +1 -0
  49. package/cjs/models/guest/guest.js +39 -0
  50. package/cjs/models/guest/guest.js.map +1 -0
  51. package/cjs/models/guest/index.d.ts +3 -0
  52. package/cjs/models/guest/index.d.ts.map +1 -0
  53. package/cjs/models/guest/migration.d.ts +7 -0
  54. package/cjs/models/guest/migration.d.ts.map +1 -0
  55. package/cjs/models/guest/migration.js +8 -0
  56. package/cjs/models/guest/migration.js.map +1 -0
  57. package/cjs/models/index.d.ts +5 -0
  58. package/cjs/models/index.d.ts.map +1 -0
  59. package/cjs/services/generate-guest-token.d.ts +2 -0
  60. package/cjs/services/generate-guest-token.d.ts.map +1 -0
  61. package/cjs/services/generate-guest-token.js +11 -0
  62. package/cjs/services/generate-guest-token.js.map +1 -0
  63. package/cjs/services/generate-jwt-secret.d.ts +2 -0
  64. package/cjs/services/generate-jwt-secret.d.ts.map +1 -0
  65. package/cjs/services/generate-jwt-secret.js +26 -0
  66. package/cjs/services/generate-jwt-secret.js.map +1 -0
  67. package/cjs/services/index.d.ts +4 -0
  68. package/cjs/services/index.d.ts.map +1 -0
  69. package/cjs/services/jwt.d.ts +23 -0
  70. package/cjs/services/jwt.d.ts.map +1 -0
  71. package/cjs/services/jwt.js +39 -0
  72. package/cjs/services/jwt.js.map +1 -0
  73. package/esm/commands/index.d.ts +2 -0
  74. package/esm/commands/index.d.ts.map +1 -0
  75. package/esm/commands/index.js +3 -0
  76. package/esm/commands/index.js.map +1 -0
  77. package/esm/contracts/auth-contract.d.ts +23 -0
  78. package/esm/contracts/auth-contract.d.ts.map +1 -0
  79. package/esm/contracts/index.d.ts +3 -0
  80. package/esm/contracts/index.d.ts.map +1 -0
  81. package/esm/contracts/types.d.ts +23 -0
  82. package/esm/contracts/types.d.ts.map +1 -0
  83. package/esm/controllers/guest-login.d.ts +3 -0
  84. package/esm/controllers/guest-login.d.ts.map +1 -0
  85. package/esm/controllers/guest-login.js +5 -0
  86. package/esm/controllers/guest-login.js.map +1 -0
  87. package/esm/controllers/index.d.ts +2 -0
  88. package/esm/controllers/index.d.ts.map +1 -0
  89. package/esm/index.d.ts +7 -0
  90. package/esm/index.d.ts.map +1 -0
  91. package/esm/index.js +1 -0
  92. package/esm/index.js.map +1 -0
  93. package/esm/middleware/auth-middleware.d.ts +2 -0
  94. package/esm/middleware/auth-middleware.d.ts.map +1 -0
  95. package/esm/middleware/auth-middleware.js +79 -0
  96. package/esm/middleware/auth-middleware.js.map +1 -0
  97. package/esm/middleware/index.d.ts +2 -0
  98. package/esm/middleware/index.d.ts.map +1 -0
  99. package/esm/models/access-token/access-token.d.ts +9 -0
  100. package/esm/models/access-token/access-token.d.ts.map +1 -0
  101. package/esm/models/access-token/access-token.js +7 -0
  102. package/esm/models/access-token/access-token.js.map +1 -0
  103. package/esm/models/access-token/index.d.ts +3 -0
  104. package/esm/models/access-token/index.d.ts.map +1 -0
  105. package/esm/models/access-token/migration.d.ts +6 -0
  106. package/esm/models/access-token/migration.d.ts.map +1 -0
  107. package/esm/models/access-token/migration.js +7 -0
  108. package/esm/models/access-token/migration.js.map +1 -0
  109. package/esm/models/auth.d.ts +25 -0
  110. package/esm/models/auth.d.ts.map +1 -0
  111. package/esm/models/auth.js +57 -0
  112. package/esm/models/auth.js.map +1 -0
  113. package/esm/models/casts/cast-password.d.ts +7 -0
  114. package/esm/models/casts/cast-password.d.ts.map +1 -0
  115. package/esm/models/casts/cast-password.js +9 -0
  116. package/esm/models/casts/cast-password.js.map +1 -0
  117. package/esm/models/casts/index.d.ts +2 -0
  118. package/esm/models/casts/index.d.ts.map +1 -0
  119. package/esm/models/guest/guest.d.ts +26 -0
  120. package/esm/models/guest/guest.d.ts.map +1 -0
  121. package/esm/models/guest/guest.js +39 -0
  122. package/esm/models/guest/guest.js.map +1 -0
  123. package/esm/models/guest/index.d.ts +3 -0
  124. package/esm/models/guest/index.d.ts.map +1 -0
  125. package/esm/models/guest/migration.d.ts +7 -0
  126. package/esm/models/guest/migration.d.ts.map +1 -0
  127. package/esm/models/guest/migration.js +8 -0
  128. package/esm/models/guest/migration.js.map +1 -0
  129. package/esm/models/index.d.ts +5 -0
  130. package/esm/models/index.d.ts.map +1 -0
  131. package/esm/services/generate-guest-token.d.ts +2 -0
  132. package/esm/services/generate-guest-token.d.ts.map +1 -0
  133. package/esm/services/generate-guest-token.js +11 -0
  134. package/esm/services/generate-guest-token.js.map +1 -0
  135. package/esm/services/generate-jwt-secret.d.ts +2 -0
  136. package/esm/services/generate-jwt-secret.d.ts.map +1 -0
  137. package/esm/services/generate-jwt-secret.js +26 -0
  138. package/esm/services/generate-jwt-secret.js.map +1 -0
  139. package/esm/services/index.d.ts +4 -0
  140. package/esm/services/index.d.ts.map +1 -0
  141. package/esm/services/jwt.d.ts +23 -0
  142. package/esm/services/jwt.d.ts.map +1 -0
  143. package/esm/services/jwt.js +39 -0
  144. package/esm/services/jwt.js.map +1 -0
  145. package/package.json +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,OAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type SignerOptions, type VerifierOptions } from "fast-jwt";
2
+ export declare const jwt: {
3
+ /**
4
+ * Generate a new JWT token for the user.
5
+ * @param payload The payload to encode in the JWT token.
6
+ */
7
+ generate(payload: any, { key, algorithm, ...options }?: any): Promise<string>;
8
+ /**
9
+ * Verify the given token.
10
+ * @param token The JWT token to verify.
11
+ * @returns The decoded token payload if verification is successful.
12
+ */
13
+ verify(token: string, { key, algorithms, ...options }?: any): Promise<any>;
14
+ /**
15
+ * Generate a new refresh token for the user.
16
+ */
17
+ generateRefreshToken(payload: any, { key, expiresIn, algorithm, ...options }?: any): Promise<string>;
18
+ /**
19
+ * Verify the given refresh token.
20
+ */
21
+ verifyRefreshToken(token: string, { key, algorithms, ...options }?: any): Promise<any>;
22
+ };
23
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/services/jwt.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAWlB,eAAO,MAAM,GAAG;IACd;;;OAGG;sBAEQ,GAAG,yCAMX,QAAQ,MAAM,CAAC;IAOlB;;;;OAIG;kBAEM,MAAM;IAYf;;OAEG;kCAEQ,GAAG,oDAOX,QAAQ,MAAM,CAAC;IAKlB;;OAEG;8BAEM,MAAM;CAUhB,CAAC"}
@@ -0,0 +1,39 @@
1
+ 'use strict';var config=require('@mongez/config'),fastJwt=require('fast-jwt');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var config__default=/*#__PURE__*/_interopDefault(config);const getSecretKey = () => config__default.default.get("auth.jwt.secret");
2
+ const getAlgorithm = () => config__default.default.get("auth.jwt.algorithm");
3
+ const getRefreshSecretKey = () => config__default.default.get("auth.jwt.refresh.secret");
4
+ // Assuming there's a separate config for refresh token validity, for example, '7d' for 7 days
5
+ const getRefreshTokenValidity = () => config__default.default.get("auth.jwt.refresh.expiresIn");
6
+ const jwt = {
7
+ /**
8
+ * Generate a new JWT token for the user.
9
+ * @param payload The payload to encode in the JWT token.
10
+ */
11
+ async generate(payload, { key = getSecretKey(), algorithm = getAlgorithm(), ...options } = {}) {
12
+ // Create a signer function with predefined options
13
+ const sign = fastJwt.createSigner({ key, ...options, algorithm });
14
+ return sign({ ...payload });
15
+ },
16
+ /**
17
+ * Verify the given token.
18
+ * @param token The JWT token to verify.
19
+ * @returns The decoded token payload if verification is successful.
20
+ */
21
+ async verify(token, { key = getSecretKey(), algorithms = getAlgorithm() ? [getAlgorithm()] : undefined, ...options } = {}) {
22
+ const verify = fastJwt.createVerifier({ key, ...options, algorithms });
23
+ return await verify(token);
24
+ },
25
+ /**
26
+ * Generate a new refresh token for the user.
27
+ */
28
+ async generateRefreshToken(payload, { key = getRefreshSecretKey(), expiresIn = getRefreshTokenValidity(), algorithm = getAlgorithm(), ...options } = {}) {
29
+ const sign = fastJwt.createSigner({ key, expiresIn, algorithm, ...options });
30
+ return sign({ ...payload });
31
+ },
32
+ /**
33
+ * Verify the given refresh token.
34
+ */
35
+ async verifyRefreshToken(token, { key = getRefreshSecretKey(), algorithms = [getAlgorithm()], ...options } = {}) {
36
+ const verify = fastJwt.createVerifier({ key, algorithms, ...options });
37
+ return await verify(token);
38
+ },
39
+ };exports.jwt=jwt;//# sourceMappingURL=jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.js","sources":["../../src/services/jwt.ts"],"sourcesContent":[null],"names":["config","createSigner","createVerifier"],"mappings":"wMASA,MAAM,YAAY,GAAG,MAAMA,uBAAM,CAAC,GAAG,CAAC,iBAAiB,CAAW,CAAC;AACnE,MAAM,YAAY,GAAG,MAAMA,uBAAM,CAAC,GAAG,CAAC,oBAAoB,CAAc,CAAC;AAEzE,MAAM,mBAAmB,GAAG,MAC1BA,uBAAM,CAAC,GAAG,CAAC,yBAAyB,CAAW,CAAC;AAClD;AACA,MAAM,uBAAuB,GAAG,MAC9BA,uBAAM,CAAC,GAAG,CAAC,4BAA4B,CAAoB,CAAC;AAEjD,MAAA,GAAG,GAAG;AACjB;;;AAGG;AACH,IAAA,MAAM,QAAQ,CACZ,OAAY,EACZ,EACE,GAAG,GAAG,YAAY,EAAE,EACpB,SAAS,GAAG,YAAY,EAAE,EAC1B,GAAG,OAAO,KAC0B,EAAE,EAAA;;AAGxC,QAAA,MAAM,IAAI,GAAGC,oBAAY,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAE1D,QAAA,OAAO,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;KAC7B;AAED;;;;AAIG;AACH,IAAA,MAAM,MAAM,CACV,KAAa,EACb,EACE,GAAG,GAAG,YAAY,EAAE,EACpB,UAAU,GAAG,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,SAAS,EAC1D,GAAG,OAAO,KAC4B,EAAE,EAAA;AAE1C,QAAA,MAAM,MAAM,GAAGC,sBAAc,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAE/D,QAAA,OAAO,MAAM,MAAM,CAAC,KAAe,CAAC,CAAC;KACtC;AAED;;AAEG;IACH,MAAM,oBAAoB,CACxB,OAAY,EACZ,EACE,GAAG,GAAG,mBAAmB,EAAE,EAC3B,SAAS,GAAG,uBAAuB,EAAE,EACrC,SAAS,GAAG,YAAY,EAAE,EAC1B,GAAG,OAAO,EAAA,GAC0B,EAAE,EAAA;AAExC,QAAA,MAAM,IAAI,GAAGD,oBAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;KAC7B;AAED;;AAEG;IACH,MAAM,kBAAkB,CACtB,KAAa,EACb,EACE,GAAG,GAAG,mBAAmB,EAAE,EAC3B,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC,EAC7B,GAAG,OAAO,EAAA,GAC4B,EAAE,EAAA;AAE1C,QAAA,MAAM,MAAM,GAAGC,sBAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC/D,QAAA,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;KAC5B;"}
@@ -0,0 +1,2 @@
1
+ export declare function registerJWTSecretGeneratorCommand(): any;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,iCAAiC,QAEhD"}
@@ -0,0 +1,3 @@
1
+ import {command}from'@warlock.js/core';import {generateJWTSecret}from'../services/generate-jwt-secret.js';function registerJWTSecretGeneratorCommand() {
2
+ return command("jwt.generate").action(generateJWTSecret);
3
+ }export{registerJWTSecretGeneratorCommand};//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/commands/index.ts"],"sourcesContent":[null],"names":[],"mappings":"mHAGgB,iCAAiC,GAAA;IAC/C,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3D"}
@@ -0,0 +1,23 @@
1
+ export interface Authenticable {
2
+ /**
3
+ * Generate access token
4
+ */
5
+ generateAccessToken(): Promise<string>;
6
+ /**
7
+ * Generate refresh token
8
+ */
9
+ generateRefreshToken(): Promise<string>;
10
+ /**
11
+ * Change password
12
+ */
13
+ changePassword(password: string): Promise<void>;
14
+ /**
15
+ * Verify Password
16
+ */
17
+ verifyPassword(password: string): Promise<boolean>;
18
+ /**
19
+ * Get user type
20
+ */
21
+ getUserType(): string;
22
+ }
23
+ //# sourceMappingURL=auth-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/auth-contract.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ export * from "./auth-contract";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Algorithm } from "fast-jwt";
2
+ import type { Auth } from "../models/auth";
3
+ export type AuthConfigurations = {
4
+ /**
5
+ * Define all user types
6
+ * This is important to differentiate between user types when validating and generating tokens
7
+ */
8
+ userType: {
9
+ [userType: string]: typeof Auth;
10
+ };
11
+ /**
12
+ * JWT configurations
13
+ */
14
+ jwt: {
15
+ secret: string;
16
+ algorithm?: Algorithm;
17
+ refresh?: {
18
+ secret?: string;
19
+ expiresIn?: number | string;
20
+ };
21
+ };
22
+ };
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,QAAQ,EAAE;QACR,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,IAAI,CAAC;KACjC,CAAC;IACF;;OAEG;IACH,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response } from "@warlock.js/core";
2
+ export declare function guestLogin(_request: Request, response: Response): Promise<any>;
3
+ //# sourceMappingURL=guest-login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-login.d.ts","sourceRoot":"","sources":["../../src/controllers/guest-login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1D,wBAAsB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,gBAIrE"}
@@ -0,0 +1,5 @@
1
+ import {generateGuestToken}from'../services/generate-guest-token.js';async function guestLogin(_request, response) {
2
+ return response.send({
3
+ user: await generateGuestToken(),
4
+ });
5
+ }export{guestLogin};//# sourceMappingURL=guest-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-login.js","sources":["../../src/controllers/guest-login.ts"],"sourcesContent":[null],"names":[],"mappings":"qEAGO,eAAe,UAAU,CAAC,QAAiB,EAAE,QAAkB,EAAA;IACpE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,MAAM,kBAAkB,EAAE;AACjC,KAAA,CAAC,CAAC;AACL"}
@@ -0,0 +1,2 @@
1
+ export * from "./guest-login";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./commands";
2
+ export * from "./contracts";
3
+ export * from "./controllers";
4
+ export * from "./middleware";
5
+ export * from "./models";
6
+ export * from "./services";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
package/esm/index.js ADDED
@@ -0,0 +1 @@
1
+ export{registerJWTSecretGeneratorCommand}from'./commands/index.js';export{guestLogin}from'./controllers/guest-login.js';export{authMiddleware}from'./middleware/auth-middleware.js';export{AccessToken,AccessTokenBlueprint}from'./models/access-token/access-token.js';export{accessTokenMigration}from'./models/access-token/migration.js';export{Auth}from'./models/auth.js';export{castPassword}from'./models/casts/cast-password.js';export{Guest}from'./models/guest/guest.js';export{guestBlueprint,guestMigration}from'./models/guest/migration.js';export{generateGuestToken}from'./services/generate-guest-token.js';export{generateJWTSecret}from'./services/generate-jwt-secret.js';export{jwt}from'./services/jwt.js';//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function authMiddleware(allowedUserType?: string): Middleware;
2
+ //# sourceMappingURL=auth-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth-middleware.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,cAkGtD"}
@@ -0,0 +1,79 @@
1
+ import config from'@mongez/config';import {log}from'@warlock.js/logger';import {AccessToken}from'../models/access-token/access-token.js';import'../models/access-token/migration.js';import {jwt}from'../services/jwt.js';function authMiddleware(allowedUserType) {
2
+ const auth = async (request, response) => {
3
+ try {
4
+ const authorizationValue = request.authorizationValue;
5
+ if (!authorizationValue) {
6
+ return response.unauthorized({
7
+ error: "Unauthorized: Access Token is missing",
8
+ });
9
+ }
10
+ // get current user jwt
11
+ const user = await jwt.verify(authorizationValue);
12
+ // use our own jwt verify to verify the token
13
+ const accessToken = await AccessToken.first({
14
+ token: authorizationValue,
15
+ });
16
+ if (!accessToken) {
17
+ return response.unauthorized({
18
+ error: "Unauthorized: Invalid Access Token",
19
+ });
20
+ }
21
+ // now, we need to get an instance of user using its corresponding model
22
+ const userType = user.userType || accessToken.get("userType");
23
+ // check if the user type is allowed
24
+ if (allowedUserType && userType !== allowedUserType) {
25
+ return response.unauthorized({
26
+ error: "You are not allowed to access this resource",
27
+ });
28
+ }
29
+ // get user model class
30
+ const UserModel = config.get(`auth.userType.${userType}`);
31
+ if (!UserModel) {
32
+ throw new Error(`User type ${userType} is unknown type.`);
33
+ }
34
+ // get user model instance
35
+ const currentUser = await UserModel.find(user.id);
36
+ if (!currentUser) {
37
+ accessToken.destroy();
38
+ return response.unauthorized({
39
+ error: "Unauthorized: Invalid Access Token",
40
+ });
41
+ }
42
+ // set current user
43
+ request.user = currentUser;
44
+ }
45
+ catch (err) {
46
+ log.error("http", "auth", err);
47
+ // unset current user
48
+ request.clearCurrentUser();
49
+ return response.unauthorized({
50
+ error: "Unauthorized: Invalid Access Token",
51
+ });
52
+ }
53
+ };
54
+ if (allowedUserType) {
55
+ const userAccessTokenKey = `${allowedUserType}AccessToken`;
56
+ const userAccessTokenKeyNameHeader = `${allowedUserType}AccessTokenHeader`;
57
+ auth.postman = {
58
+ onCollectingVariables(variables) {
59
+ if (variables.find((variable) => variable.key === userAccessTokenKeyNameHeader))
60
+ return;
61
+ variables.push({
62
+ key: userAccessTokenKey,
63
+ value: "YOUR_TOKEN_HERE",
64
+ });
65
+ variables.push({
66
+ key: userAccessTokenKeyNameHeader,
67
+ value: `Bearer {{${userAccessTokenKey}}}`,
68
+ });
69
+ },
70
+ onAddingRequest({ request }) {
71
+ request.header.push({
72
+ key: "Authorization",
73
+ value: `{{${userAccessTokenKeyNameHeader}}}`,
74
+ });
75
+ },
76
+ };
77
+ }
78
+ return auth;
79
+ }export{authMiddleware};//# sourceMappingURL=auth-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-middleware.js","sources":["../../src/middleware/auth-middleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./auth-middleware";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Model } from "@warlock.js/cascade";
2
+ export declare class AccessToken extends Model {
3
+ /**
4
+ * {@inheritDoc}
5
+ */
6
+ static collection: string;
7
+ }
8
+ export declare const AccessTokenBlueprint: any;
9
+ //# sourceMappingURL=access-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,qBAAa,WAAY,SAAQ,KAAK;IACpC;;OAEG;IACH,OAAc,UAAU,SAAkB;CAC3C;AAED,eAAO,MAAM,oBAAoB,KAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import {Model}from'@warlock.js/cascade';class AccessToken extends Model {
2
+ /**
3
+ * {@inheritDoc}
4
+ */
5
+ static collection = "accessTokens";
6
+ }
7
+ const AccessTokenBlueprint = AccessToken.blueprint();export{AccessToken,AccessTokenBlueprint};//# sourceMappingURL=access-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-token.js","sources":["../../../src/models/access-token/access-token.ts"],"sourcesContent":[null],"names":[],"mappings":"wCAEM,MAAO,WAAY,SAAQ,KAAK,CAAA;AACpC;;AAEG;AACI,IAAA,OAAO,UAAU,GAAG,cAAc,CAAC;;MAG/B,oBAAoB,GAAG,WAAW,CAAC,SAAS"}
@@ -0,0 +1,3 @@
1
+ export * from "./access-token";
2
+ export * from "./migration";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function accessTokenMigration(): Promise<void>;
2
+ export declare namespace accessTokenMigration {
3
+ var down: () => Promise<void>;
4
+ var blueprint: any;
5
+ }
6
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/migration.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,kBAEzC;yBAFqB,oBAAoB"}
@@ -0,0 +1,7 @@
1
+ import {AccessTokenBlueprint}from'./access-token.js';async function accessTokenMigration() {
2
+ AccessTokenBlueprint.unique("token");
3
+ }
4
+ accessTokenMigration.down = async () => {
5
+ AccessTokenBlueprint.dropUniqueIndex("token");
6
+ };
7
+ accessTokenMigration.blueprint = AccessTokenBlueprint;export{accessTokenMigration};//# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sources":["../../../src/models/access-token/migration.ts"],"sourcesContent":[null],"names":[],"mappings":"qDAEO,eAAe,oBAAoB,GAAA;AACxC,IAAA,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,oBAAoB,CAAC,IAAI,GAAG,YAAW;AACrC,IAAA,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,GAAG,oBAAoB"}
@@ -0,0 +1,25 @@
1
+ import type { ChildModel } from "@warlock.js/cascade";
2
+ import { Model } from "@warlock.js/cascade";
3
+ export declare abstract class Auth extends Model {
4
+ /**
5
+ * Get user type
6
+ */
7
+ abstract get userType(): string;
8
+ /**
9
+ * Generate jwt token
10
+ */
11
+ generateAccessToken(): Promise<string>;
12
+ /**
13
+ * Remove current access token
14
+ */
15
+ removeAccessToken(token: string): Promise<void>;
16
+ /**
17
+ * Attempt to login the user
18
+ */
19
+ static attempt<T>(this: ChildModel<T>, data: any): Promise<T | null>;
20
+ /**
21
+ * Confirm password
22
+ */
23
+ confirmPassword(password: string): any;
24
+ }
25
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/models/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C,8BAAsB,IAAK,SAAQ,KAAK;IACtC;;OAEG;IACH,aAAoB,QAAQ,IAAI,MAAM,CAAC;IAEvC;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyBnD;;OAEG;IACU,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAO5C;;OAEG;WACiB,OAAO,CAAC,CAAC,EAC3B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAkBpB;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM;CAGxC"}
@@ -0,0 +1,57 @@
1
+ import {verify}from'@mongez/password';import {Model}from'@warlock.js/cascade';import {jwt}from'../services/jwt.js';import {AccessToken}from'./access-token/access-token.js';import'./access-token/migration.js';class Auth extends Model {
2
+ /**
3
+ * Generate jwt token
4
+ */
5
+ async generateAccessToken() {
6
+ // store the main data in the data object
7
+ // we need to store the user data in an object
8
+ // that we'll sue to generate the token
9
+ // and also it will be saved in the Access Token model under `user` column
10
+ const data = {
11
+ ...this.only(["id", "_id"]),
12
+ userType: this.userType,
13
+ createdAt: Date.now(),
14
+ };
15
+ // use our own jwt generator to generate a token for the guest
16
+ const token = await jwt.generate(data);
17
+ // store token and the auth model data in the access token model
18
+ // note that we didn't make it sync because we don't want to wait for the token to be stored in the database
19
+ // as nothing depends on it
20
+ AccessToken.create({
21
+ token,
22
+ user: data,
23
+ });
24
+ return token;
25
+ }
26
+ /**
27
+ * Remove current access token
28
+ */
29
+ async removeAccessToken(token) {
30
+ AccessToken.delete({
31
+ token: token,
32
+ "user.id": this.id,
33
+ });
34
+ }
35
+ /**
36
+ * Attempt to login the user
37
+ */
38
+ static async attempt(data) {
39
+ // find first user with the given data, but exclude from it the password
40
+ const { password, ...otherData } = data;
41
+ const user = (await this.first(otherData));
42
+ if (!user) {
43
+ return null;
44
+ }
45
+ // now verify the password
46
+ if (!user.confirmPassword(password)) {
47
+ return null;
48
+ }
49
+ return user;
50
+ }
51
+ /**
52
+ * Confirm password
53
+ */
54
+ confirmPassword(password) {
55
+ return verify(String(this.get("password")), String(password));
56
+ }
57
+ }export{Auth};//# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sources":["../../src/models/auth.ts"],"sourcesContent":[null],"names":[],"mappings":"gNAMM,MAAgB,IAAK,SAAQ,KAAK,CAAA;AAMtC;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;;;;;AAK9B,QAAA,MAAM,IAAI,GAAG;YACX,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;;QAGF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;QAKvC,WAAW,CAAC,MAAM,CAAC;YACjB,KAAK;AACL,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;AAEG;IACI,MAAM,iBAAiB,CAAC,KAAa,EAAA;QAC1C,WAAW,CAAC,MAAM,CAAC;AACjB,YAAA,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI,CAAC,EAAE;AACnB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,aAAa,OAAO,CAEzB,IAAS,EAAA;;QAGT,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAExC,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,KAAK,CAAI,SAAS,CAAC,CAAgB,CAAC;QAE7D,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,IAAS,CAAC;KAClB;AAED;;AAEG;AACI,IAAA,eAAe,CAAC,QAAgB,EAAA;AACrC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC/D;AACF"}
@@ -0,0 +1,7 @@
1
+ import type { Model } from "@warlock.js/cascade";
2
+ /**
3
+ * Cast password on model save
4
+ * If the password is not changed, keep it as is
5
+ */
6
+ export declare function castPassword(value: any, column: string, model: Model): any;
7
+ //# sourceMappingURL=cast-password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-password.d.ts","sourceRoot":"","sources":["../../../src/models/casts/cast-password.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,OAIpE"}
@@ -0,0 +1,9 @@
1
+ import Password from'@mongez/password';/**
2
+ * Cast password on model save
3
+ * If the password is not changed, keep it as is
4
+ */
5
+ function castPassword(value, column, model) {
6
+ return value
7
+ ? Password.generate(String(value), 12)
8
+ : model.getInitial(column);
9
+ }export{castPassword};//# sourceMappingURL=cast-password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-password.js","sources":["../../../src/models/casts/cast-password.ts"],"sourcesContent":[null],"names":[],"mappings":"uCAGA;;;AAGG;SACa,YAAY,CAAC,KAAU,EAAE,MAAc,EAAE,KAAY,EAAA;AACnE,IAAA,OAAO,KAAK;UACR,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACtC,UAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B"}
@@ -0,0 +1,2 @@
1
+ export * from "./cast-password";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/casts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Document } from "@warlock.js/cascade";
2
+ import { Auth } from "../auth";
3
+ export declare class Guest extends Auth {
4
+ /**
5
+ * {@inheritDoc}
6
+ */
7
+ static collection: string;
8
+ /**
9
+ * Set the user type key
10
+ * If set to empty string, then it will ignored
11
+ */
12
+ userTypeKey: string;
13
+ /**
14
+ * Get user type
15
+ */
16
+ get userType(): string;
17
+ /**
18
+ * {@inheritDoc}
19
+ */
20
+ get embeddedData(): Document;
21
+ /**
22
+ * {@inheritDoc}
23
+ */
24
+ toJSON(): Promise<any>;
25
+ }
26
+ //# sourceMappingURL=guest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../../../src/models/guest/guest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,qBAAa,KAAM,SAAQ,IAAI;IAC7B;;OAEG;IACH,OAAc,UAAU,SAAY;IAEpC;;;OAGG;IACI,WAAW,SAAc;IAEhC;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,QAAQ,CAMlC;IAED;;OAEG;IACU,MAAM;CAQpB"}
@@ -0,0 +1,39 @@
1
+ import {Auth}from'../auth.js';class Guest extends Auth {
2
+ /**
3
+ * {@inheritDoc}
4
+ */
5
+ static collection = "guests";
6
+ /**
7
+ * Set the user type key
8
+ * If set to empty string, then it will ignored
9
+ */
10
+ userTypeKey = "userType";
11
+ /**
12
+ * Get user type
13
+ */
14
+ get userType() {
15
+ return "guest";
16
+ }
17
+ /**
18
+ * {@inheritDoc}
19
+ */
20
+ get embeddedData() {
21
+ if (!this.userTypeKey)
22
+ return super.embeddedData;
23
+ return {
24
+ ...this.onlyId,
25
+ [this.userTypeKey]: this.userType,
26
+ };
27
+ }
28
+ /**
29
+ * {@inheritDoc}
30
+ */
31
+ async toJSON() {
32
+ if (!this.userTypeKey)
33
+ return this.onlyId;
34
+ return {
35
+ ...this.onlyId,
36
+ [this.userTypeKey]: this.userType,
37
+ };
38
+ }
39
+ }export{Guest};//# sourceMappingURL=guest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest.js","sources":["../../../src/models/guest/guest.ts"],"sourcesContent":[null],"names":[],"mappings":"8BAGM,MAAO,KAAM,SAAQ,IAAI,CAAA;AAC7B;;AAEG;AACI,IAAA,OAAO,UAAU,GAAG,QAAQ,CAAC;AAEpC;;;AAGG;IACI,WAAW,GAAG,UAAU,CAAC;AAEhC;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;AAEG;AACH,IAAA,IAAW,YAAY,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC,YAAY,CAAC;QACjD,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;AACd,YAAA,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;SAClC,CAAC;KACH;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE1C,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;AACd,YAAA,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;SAClC,CAAC;KACH;"}
@@ -0,0 +1,3 @@
1
+ export * from "./guest";
2
+ export * from "./migration";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/guest/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const guestBlueprint: any;
2
+ export declare function guestMigration(): Promise<void>;
3
+ export declare namespace guestMigration {
4
+ var down: () => Promise<void>;
5
+ var blueprint: any;
6
+ }
7
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/models/guest/migration.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,KAAoB,CAAC;AAEhD,wBAAsB,cAAc,kBAEnC;yBAFqB,cAAc"}
@@ -0,0 +1,8 @@
1
+ import {Guest}from'./guest.js';const guestBlueprint = Guest.blueprint();
2
+ async function guestMigration() {
3
+ await guestBlueprint.unique("id");
4
+ }
5
+ guestMigration.down = async () => {
6
+ await guestBlueprint.dropUniqueIndex("id");
7
+ };
8
+ guestMigration.blueprint = guestBlueprint;export{guestBlueprint,guestMigration};//# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sources":["../../../src/models/guest/migration.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAEa,cAAc,GAAG,KAAK,CAAC,SAAS,GAAG;AAEzC,eAAe,cAAc,GAAA;AAClC,IAAA,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,cAAc,CAAC,IAAI,GAAG,YAAW;AAC/B,IAAA,MAAM,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,cAAc,CAAC,SAAS,GAAG,cAAc"}
@@ -0,0 +1,5 @@
1
+ export * from "./access-token";
2
+ export * from "./auth";
3
+ export * from "./casts";
4
+ export * from "./guest";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}