@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,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
+ 'use strict';var core=require('@warlock.js/core'),generateJwtSecret=require('../services/generate-jwt-secret.js');function registerJWTSecretGeneratorCommand() {
2
+ return core.command("jwt.generate").action(generateJwtSecret.generateJWTSecret);
3
+ }exports.registerJWTSecretGeneratorCommand=registerJWTSecretGeneratorCommand;//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/commands/index.ts"],"sourcesContent":[null],"names":["command","generateJWTSecret"],"mappings":"2HAGgB,iCAAiC,GAAA;IAC/C,OAAOA,YAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAACC,mCAAiB,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
+ 'use strict';var generateGuestToken=require('../services/generate-guest-token.js');async function guestLogin(_request, response) {
2
+ return response.send({
3
+ user: await generateGuestToken.generateGuestToken(),
4
+ });
5
+ }exports.guestLogin=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":["generateGuestToken"],"mappings":"mFAGO,eAAe,UAAU,CAAC,QAAiB,EAAE,QAAkB,EAAA;IACpE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,MAAMA,qCAAkB,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/cjs/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/cjs/index.js ADDED
@@ -0,0 +1 @@
1
+ 'use strict';var index=require('./commands/index.js'),guestLogin=require('./controllers/guest-login.js'),authMiddleware=require('./middleware/auth-middleware.js'),accessToken=require('./models/access-token/access-token.js'),migration=require('./models/access-token/migration.js'),auth=require('./models/auth.js'),castPassword=require('./models/casts/cast-password.js'),guest=require('./models/guest/guest.js'),migration$1=require('./models/guest/migration.js'),generateGuestToken=require('./services/generate-guest-token.js'),generateJwtSecret=require('./services/generate-jwt-secret.js'),jwt=require('./services/jwt.js');exports.registerJWTSecretGeneratorCommand=index.registerJWTSecretGeneratorCommand;exports.guestLogin=guestLogin.guestLogin;exports.authMiddleware=authMiddleware.authMiddleware;exports.AccessToken=accessToken.AccessToken;exports.AccessTokenBlueprint=accessToken.AccessTokenBlueprint;exports.accessTokenMigration=migration.accessTokenMigration;exports.Auth=auth.Auth;exports.castPassword=castPassword.castPassword;exports.Guest=guest.Guest;exports.guestBlueprint=migration$1.guestBlueprint;exports.guestMigration=migration$1.guestMigration;exports.generateGuestToken=generateGuestToken.generateGuestToken;exports.generateJWTSecret=generateJwtSecret.generateJWTSecret;exports.jwt=jwt.jwt;//# 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
+ 'use strict';var config=require('@mongez/config'),logger=require('@warlock.js/logger'),accessToken=require('../models/access-token/access-token.js');require('../models/access-token/migration.js');var jwt=require('../services/jwt.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var config__default=/*#__PURE__*/_interopDefault(config);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.jwt.verify(authorizationValue);
12
+ // use our own jwt verify to verify the token
13
+ const accessToken$1 = await accessToken.AccessToken.first({
14
+ token: authorizationValue,
15
+ });
16
+ if (!accessToken$1) {
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$1.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__default.default.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$1.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
+ logger.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
+ }exports.authMiddleware=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":["jwt","accessToken","AccessToken","config","log"],"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
+ 'use strict';var cascade=require('@warlock.js/cascade');class AccessToken extends cascade.Model {
2
+ /**
3
+ * {@inheritDoc}
4
+ */
5
+ static collection = "accessTokens";
6
+ }
7
+ const AccessTokenBlueprint = AccessToken.blueprint();exports.AccessToken=AccessToken;exports.AccessTokenBlueprint=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":["Model"],"mappings":"wDAEM,MAAO,WAAY,SAAQA,aAAK,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
+ 'use strict';var accessToken=require('./access-token.js');async function accessTokenMigration() {
2
+ accessToken.AccessTokenBlueprint.unique("token");
3
+ }
4
+ accessTokenMigration.down = async () => {
5
+ accessToken.AccessTokenBlueprint.dropUniqueIndex("token");
6
+ };
7
+ accessTokenMigration.blueprint = accessToken.AccessTokenBlueprint;exports.accessTokenMigration=accessTokenMigration;//# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sources":["../../../src/models/access-token/migration.ts"],"sourcesContent":[null],"names":["AccessTokenBlueprint"],"mappings":"0DAEO,eAAe,oBAAoB,GAAA;AACxC,IAAAA,gCAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,oBAAoB,CAAC,IAAI,GAAG,YAAW;AACrC,IAAAA,gCAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,GAAGA,gCAAoB"}
@@ -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
+ 'use strict';var Password=require('@mongez/password'),cascade=require('@warlock.js/cascade'),jwt=require('../services/jwt.js'),accessToken=require('./access-token/access-token.js');require('./access-token/migration.js');class Auth extends cascade.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.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.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.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 Password.verify(String(this.get("password")), String(password));
56
+ }
57
+ }exports.Auth=Auth;//# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sources":["../../src/models/auth.ts"],"sourcesContent":[null],"names":["Model","jwt","AccessToken","verify"],"mappings":"4NAMM,MAAgB,IAAK,SAAQA,aAAK,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,MAAMC,OAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;QAKvCC,uBAAW,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;QAC1CA,uBAAW,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,OAAOC,eAAM,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
+ 'use strict';var Password=require('@mongez/password');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Password__default=/*#__PURE__*/_interopDefault(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__default.default.generate(String(value), 12)
8
+ : model.getInitial(column);
9
+ }exports.castPassword=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":["Password"],"mappings":"oLAGA;;;AAGG;SACa,YAAY,CAAC,KAAU,EAAE,MAAc,EAAE,KAAY,EAAA;AACnE,IAAA,OAAO,KAAK;UACRA,yBAAQ,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
+ 'use strict';var auth=require('../auth.js');class Guest extends auth.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
+ }exports.Guest=Guest;//# sourceMappingURL=guest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest.js","sources":["../../../src/models/guest/guest.ts"],"sourcesContent":[null],"names":["Auth"],"mappings":"4CAGM,MAAO,KAAM,SAAQA,SAAI,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
+ 'use strict';var guest=require('./guest.js');const guestBlueprint = guest.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;exports.guestBlueprint=guestBlueprint;exports.guestMigration=guestMigration;//# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sources":["../../../src/models/guest/migration.ts"],"sourcesContent":[null],"names":["Guest"],"mappings":"mDAEa,cAAc,GAAGA,WAAK,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"}
@@ -0,0 +1,2 @@
1
+ export declare function generateGuestToken(): Promise<any>;
2
+ //# sourceMappingURL=generate-guest-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-guest-token.d.ts","sourceRoot":"","sources":["../../src/services/generate-guest-token.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,iBAYvC"}
@@ -0,0 +1,11 @@
1
+ 'use strict';var config=require('@mongez/config'),guest=require('../models/guest/guest.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var config__default=/*#__PURE__*/_interopDefault(config);async function generateGuestToken() {
2
+ const GuestModel = config__default.default.get(`auth.userType.guest`) || guest.Guest;
3
+ const guest$1 = await GuestModel.create({
4
+ userType: "guest",
5
+ });
6
+ return {
7
+ // use our own jwt generator to generate a token for the guest
8
+ accessToken: await guest$1.generateAccessToken(),
9
+ ...(await guest$1.toJSON()),
10
+ };
11
+ }exports.generateGuestToken=generateGuestToken;//# sourceMappingURL=generate-guest-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-guest-token.js","sources":["../../src/services/generate-guest-token.ts"],"sourcesContent":[null],"names":["config","Guest","guest"],"mappings":"sNAGO,eAAe,kBAAkB,GAAA;IACtC,MAAM,UAAU,GAAiBA,uBAAM,CAAC,GAAG,CAAC,CAAqB,mBAAA,CAAA,CAAC,IAAIC,WAAK,CAAC;AAE5E,IAAA,MAAMC,OAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;AACpC,QAAA,QAAQ,EAAE,OAAO;AAClB,KAAA,CAAC,CAAC;IAEH,OAAO;;AAEL,QAAA,WAAW,EAAE,MAAMA,OAAK,CAAC,mBAAmB,EAAE;AAC9C,QAAA,IAAI,MAAMA,OAAK,CAAC,MAAM,EAAE;KACzB,CAAC;AACJ"}
@@ -0,0 +1,2 @@
1
+ export declare function generateJWTSecret(): Promise<void>;
2
+ //# sourceMappingURL=generate-jwt-secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-jwt-secret.d.ts","sourceRoot":"","sources":["../../src/services/generate-jwt-secret.ts"],"names":[],"mappings":"AAKA,wBAAsB,iBAAiB,kBAwCtC"}
@@ -0,0 +1,26 @@
1
+ 'use strict';var fs=require('@mongez/fs'),reinforcements=require('@mongez/reinforcements'),core=require('@warlock.js/core'),logger=require('@warlock.js/logger');async function generateJWTSecret() {
2
+ let envFile = core.rootPath(".env");
3
+ logger.log.info("jwt", "generating", "Generating jwt secret");
4
+ const environmentMode = core.environment();
5
+ if (!fs.fileExists(envFile)) {
6
+ const envFileType = environmentMode === "production" ? ".env.production" : ".env.development";
7
+ envFile = core.rootPath(envFileType);
8
+ }
9
+ if (!fs.fileExists(envFile)) {
10
+ logger.log.error("jwt", "error", ".env file not found");
11
+ return;
12
+ }
13
+ let contents = fs.getFile(envFile);
14
+ if (contents.includes("JWT_SECRET")) {
15
+ logger.log.warn("jwt", "exists", "JWT secret already exists in the .env file.");
16
+ return;
17
+ }
18
+ const key = reinforcements.Random.string(32);
19
+ contents += `
20
+
21
+ # JWT Secret
22
+ JWT_SECRET=${key}
23
+ `;
24
+ fs.putFile(envFile, contents);
25
+ logger.log.success("jwt", "generated", `JWT secret key generated and added to the .env file.`);
26
+ }exports.generateJWTSecret=generateJWTSecret;//# sourceMappingURL=generate-jwt-secret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-jwt-secret.js","sources":["../../src/services/generate-jwt-secret.ts"],"sourcesContent":[null],"names":["rootPath","log","environment","fileExists","getFile","Random","putFile"],"mappings":"iKAKO,eAAe,iBAAiB,GAAA;AACrC,IAAA,IAAI,OAAO,GAAGA,aAAQ,CAAC,MAAM,CAAC,CAAC;IAE/BC,UAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;AAEvD,IAAA,MAAM,eAAe,GAAGC,gBAAW,EAAE,CAAC;AAEtC,IAAA,IAAI,CAACC,aAAU,CAAC,OAAO,CAAC,EAAE;AACxB,QAAA,MAAM,WAAW,GACf,eAAe,KAAK,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAC5E,QAAA,OAAO,GAAGH,aAAQ,CAAC,WAAW,CAAC,CAAC;AACjC,KAAA;AAED,IAAA,IAAI,CAACG,aAAU,CAAC,OAAO,CAAC,EAAE;QACxBF,UAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACjD,OAAO;AACR,KAAA;AAED,IAAA,IAAI,QAAQ,GAAGG,UAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,IAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QACnCH,UAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,6CAA6C,CAAC,CAAC;QACzE,OAAO;AACR,KAAA;IAED,MAAM,GAAG,GAAGI,qBAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9B,IAAA,QAAQ,IAAI,CAAA;;;aAGD,GAAG,CAAA;CACf,CAAC;AAEA,IAAAC,UAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3BL,UAAG,CAAC,OAAO,CACT,KAAK,EACL,WAAW,EACX,CAAsD,oDAAA,CAAA,CACvD,CAAC;AACJ"}
@@ -0,0 +1,4 @@
1
+ export * from "./generate-guest-token";
2
+ export * from "./generate-jwt-secret";
3
+ export * from "./jwt";
4
+ //# sourceMappingURL=index.d.ts.map