@starklabs/forge 1.3.2 → 1.3.4

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 (127) hide show
  1. package/dist/js/app.d.ts +2 -1
  2. package/dist/js/app.d.ts.map +1 -1
  3. package/dist/js/app.js +4 -4
  4. package/dist/js/app.js.map +1 -1
  5. package/dist/js/auth/builtin/auth.collection.d.ts.map +1 -1
  6. package/dist/js/auth/builtin/auth.collection.js +5 -0
  7. package/dist/js/auth/builtin/auth.collection.js.map +1 -1
  8. package/dist/js/auth/bunch.auth.d.ts +1 -0
  9. package/dist/js/auth/bunch.auth.d.ts.map +1 -1
  10. package/dist/js/auth/bunch.auth.js +1 -0
  11. package/dist/js/auth/bunch.auth.js.map +1 -1
  12. package/dist/js/auth/index.js +2 -2
  13. package/dist/js/auth/index.js.map +1 -1
  14. package/dist/js/auth/login.d.ts.map +1 -1
  15. package/dist/js/auth/login.js +2 -2
  16. package/dist/js/auth/login.js.map +1 -1
  17. package/dist/js/auth/refresh.d.ts +7 -0
  18. package/dist/js/auth/refresh.d.ts.map +1 -0
  19. package/dist/js/auth/refresh.js +70 -0
  20. package/dist/js/auth/refresh.js.map +1 -0
  21. package/dist/js/auth/signup.d.ts.map +1 -1
  22. package/dist/js/auth/signup.js +2 -1
  23. package/dist/js/auth/signup.js.map +1 -1
  24. package/dist/js/auth/utils/UAParser.d.ts +11 -0
  25. package/dist/js/auth/utils/UAParser.d.ts.map +1 -0
  26. package/dist/js/auth/utils/UAParser.js +16 -0
  27. package/dist/js/auth/utils/UAParser.js.map +1 -0
  28. package/dist/js/auth/utils/authenticateUser.d.ts +3 -2
  29. package/dist/js/auth/utils/authenticateUser.d.ts.map +1 -1
  30. package/dist/js/auth/utils/authenticateUser.js +29 -6
  31. package/dist/js/auth/utils/authenticateUser.js.map +1 -1
  32. package/dist/js/auth/utils/createOTPModel.d.ts.map +1 -1
  33. package/dist/js/auth/utils/createOTPModel.js +2 -2
  34. package/dist/js/auth/utils/createOTPModel.js.map +1 -1
  35. package/dist/js/auth/utils/createUser.d.ts +3 -2
  36. package/dist/js/auth/utils/createUser.d.ts.map +1 -1
  37. package/dist/js/auth/utils/createUser.js +28 -6
  38. package/dist/js/auth/utils/createUser.js.map +1 -1
  39. package/dist/js/auth/utils/findRefreshToken.d.ts +4 -0
  40. package/dist/js/auth/utils/findRefreshToken.d.ts.map +1 -0
  41. package/dist/js/auth/utils/findRefreshToken.js +29 -0
  42. package/dist/js/auth/utils/findRefreshToken.js.map +1 -0
  43. package/dist/js/auth/utils/findRefreshTokenUser.d.ts +4 -0
  44. package/dist/js/auth/utils/findRefreshTokenUser.d.ts.map +1 -0
  45. package/dist/js/auth/utils/findRefreshTokenUser.js +18 -0
  46. package/dist/js/auth/utils/findRefreshTokenUser.js.map +1 -0
  47. package/dist/js/auth/utils/handleRefreshTokenValidation.d.ts +4 -0
  48. package/dist/js/auth/utils/handleRefreshTokenValidation.d.ts.map +1 -0
  49. package/dist/js/auth/utils/handleRefreshTokenValidation.js +24 -0
  50. package/dist/js/auth/utils/handleRefreshTokenValidation.js.map +1 -0
  51. package/dist/js/auth/utils/handleRotateRefreshToken.d.ts +18 -0
  52. package/dist/js/auth/utils/handleRotateRefreshToken.d.ts.map +1 -0
  53. package/dist/js/auth/utils/handleRotateRefreshToken.js +66 -0
  54. package/dist/js/auth/utils/handleRotateRefreshToken.js.map +1 -0
  55. package/dist/js/auth/utils/modeMap.d.ts +4 -2
  56. package/dist/js/auth/utils/modeMap.d.ts.map +1 -1
  57. package/dist/js/auth/utils/returnRotationToken.d.ts +2 -0
  58. package/dist/js/auth/utils/returnRotationToken.d.ts.map +1 -0
  59. package/dist/js/auth/utils/returnRotationToken.js +3 -0
  60. package/dist/js/auth/utils/returnRotationToken.js.map +1 -0
  61. package/dist/js/auth/utils/rotateRefreshToken.d.ts +16 -0
  62. package/dist/js/auth/utils/rotateRefreshToken.d.ts.map +1 -0
  63. package/dist/js/auth/utils/rotateRefreshToken.js +53 -0
  64. package/dist/js/auth/utils/rotateRefreshToken.js.map +1 -0
  65. package/dist/js/auth/utils/sendCookie.d.ts +14 -4
  66. package/dist/js/auth/utils/sendCookie.d.ts.map +1 -1
  67. package/dist/js/auth/utils/sendCookie.js +43 -22
  68. package/dist/js/auth/utils/sendCookie.js.map +1 -1
  69. package/dist/js/auth/verifyOTP.d.ts.map +1 -1
  70. package/dist/js/auth/verifyOTP.js +1 -0
  71. package/dist/js/auth/verifyOTP.js.map +1 -1
  72. package/dist/js/config/defaultConfig.d.ts.map +1 -1
  73. package/dist/js/config/defaultConfig.js +0 -2
  74. package/dist/js/config/defaultConfig.js.map +1 -1
  75. package/dist/js/config/duration.d.ts +36 -0
  76. package/dist/js/config/duration.d.ts.map +1 -1
  77. package/dist/js/config/duration.js +40 -4
  78. package/dist/js/config/duration.js.map +1 -1
  79. package/dist/js/config/envs.d.ts.map +1 -1
  80. package/dist/js/config/envs.js +18 -8
  81. package/dist/js/config/envs.js.map +1 -1
  82. package/dist/js/config/handlerMap.d.ts.map +1 -1
  83. package/dist/js/config/handlerMap.js +2 -1
  84. package/dist/js/config/handlerMap.js.map +1 -1
  85. package/dist/js/config/refreshModel.d.ts +3 -0
  86. package/dist/js/config/refreshModel.d.ts.map +1 -0
  87. package/dist/js/config/refreshModel.js +51 -0
  88. package/dist/js/config/refreshModel.js.map +1 -0
  89. package/dist/js/crud/encryption/handleEncryption.d.ts.map +1 -1
  90. package/dist/js/crud/encryption/handleEncryption.js +0 -1
  91. package/dist/js/crud/encryption/handleEncryption.js.map +1 -1
  92. package/dist/js/lib/model.factory.d.ts +1 -1
  93. package/dist/js/lib/model.factory.d.ts.map +1 -1
  94. package/dist/js/lib/model.factory.js +1 -1
  95. package/dist/js/lib/model.factory.js.map +1 -1
  96. package/dist/js/middleware/auth.middleware.d.ts +1 -0
  97. package/dist/js/middleware/auth.middleware.d.ts.map +1 -1
  98. package/dist/js/middleware/auth.middleware.js +23 -19
  99. package/dist/js/middleware/auth.middleware.js.map +1 -1
  100. package/dist/js/terminal/appInfo.d.ts.map +1 -1
  101. package/dist/js/terminal/appInfo.js +7 -2
  102. package/dist/js/terminal/appInfo.js.map +1 -1
  103. package/dist/js/types/Constructor.d.ts +10 -3
  104. package/dist/js/types/Constructor.d.ts.map +1 -1
  105. package/dist/js/types/Routepath.d.ts +1 -1
  106. package/dist/js/types/Routepath.d.ts.map +1 -1
  107. package/dist/js/types/authHandlers.d.ts +1 -1
  108. package/dist/js/types/authHandlers.d.ts.map +1 -1
  109. package/dist/js/utils/getModel.d.ts +2 -2
  110. package/dist/js/utils/getModel.d.ts.map +1 -1
  111. package/dist/js/utils/getModel.js.map +1 -1
  112. package/dist/js/utils/handleJWT.d.ts +3 -1
  113. package/dist/js/utils/handleJWT.d.ts.map +1 -1
  114. package/dist/js/utils/handleJWT.js +28 -23
  115. package/dist/js/utils/handleJWT.js.map +1 -1
  116. package/dist/js/utils/libsodium.d.ts +1 -1
  117. package/dist/js/utils/libsodium.d.ts.map +1 -1
  118. package/dist/js/utils/libsodium.js.map +1 -1
  119. package/dist/js/utils/response.d.ts +2 -1
  120. package/dist/js/utils/response.d.ts.map +1 -1
  121. package/dist/js/utils/response.js +2 -1
  122. package/dist/js/utils/response.js.map +1 -1
  123. package/dist/js/utils/saveRefreshToken.d.ts +17 -0
  124. package/dist/js/utils/saveRefreshToken.d.ts.map +1 -0
  125. package/dist/js/utils/saveRefreshToken.js +18 -0
  126. package/dist/js/utils/saveRefreshToken.js.map +1 -0
  127. package/package.json +5 -4
package/dist/js/app.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- declare const app: import("express-serve-static-core").Express;
1
+ import type { Express } from "express";
2
+ declare const app: Express;
2
3
  declare const startServer: () => Promise<void>;
3
4
  export { startServer, app };
4
5
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/js/app.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,GAAG,6CAAY,CAAC;AA6EtB,QAAA,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAkCzC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/js/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,QAAA,MAAM,GAAG,EAAE,OAAmB,CAAC;AA8E/B,QAAA,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAmCzC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC"}
package/dist/js/app.js CHANGED
@@ -13,6 +13,7 @@ import healthCollection from "./health/health.collection.js";
13
13
  import authCollection from "./auth/builtin/auth.collection.js";
14
14
  import { setAppInfo } from "./terminal/appInfo.js";
15
15
  import printInfo from "./terminal/loggerConfig.js";
16
+ import createRefreshModel from "./config/refreshModel.js";
16
17
  const jsonParser = express.json();
17
18
  const urlencodedParser = express.urlencoded({ extended: true });
18
19
  app.use(cookieParser());
@@ -37,7 +38,7 @@ const handleCollection = (collections, authConfigObj) => {
37
38
  modelName = authConfigObj.schemaObj?.modelName;
38
39
  }
39
40
  if (modelName) {
40
- const MODEL = createModel(routeName, modelName, mongooseSchemaObj);
41
+ const MODEL = createModel(modelName, mongooseSchemaObj, routeName);
41
42
  registerModel[modelName] = MODEL;
42
43
  }
43
44
  handleReqType(reqType, app, routeName, routesArray, modelName, validationsObj, mongooseSchemaObj);
@@ -46,6 +47,7 @@ const handleCollection = (collections, authConfigObj) => {
46
47
  const startServer = async () => {
47
48
  const { port, collections, isOffline, mongoDBURI, databaseName, authConfigObj, } = getEnvs();
48
49
  await connectDB({ isOffline, mongoDBURI, databaseName });
50
+ await createRefreshModel();
49
51
  const collectionArray = [healthCollection];
50
52
  if (authConfigObj?.mode === "builtin")
51
53
  collectionArray.push(authCollection);
@@ -56,9 +58,7 @@ const startServer = async () => {
56
58
  res.status(404).json({ success: false, message: "Route not found" });
57
59
  });
58
60
  app.use(errorMiddleware);
59
- app.listen(port, () => {
60
- console.log(`Server is running at http://localhost:${port}`);
61
- });
61
+ app.listen(port, printInfo);
62
62
  };
63
63
  export { startServer, app };
64
64
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/js/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/js/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAO,SAAS,CAAC;AAE/B,MAAM,GAAG,GAAY,OAAO,EAAE,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAEnD,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAG1D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AACxB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAClB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAGvB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACzB,IAAI,GAAG,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3B,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,MAAM,gBAAgB,GAAG,CACvB,WAAyB,EACzB,aAAyB,EACnB,EAAE;IACR,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,EACF,OAAO,EACP,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,GAClB,GAAG,GAAG,CAAC;QAER,IAAI,OAAO,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3D,iBAAiB,GAAG,aAAa,CAAC,SAAS,EAAE,MAAO,CAAC;YACrD,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,SAAU,CAAC;QAClD,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,iBAAkB,EAAE,SAAS,CAAC,CAAC;YACpE,aAAa,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,aAAa,CACX,OAAO,EACP,GAAG,EACH,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,CAClB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IAC5C,MAAM,EACJ,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,GACd,GAAG,OAAO,EAAE,CAAC;IAEd,MAAM,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IACzD,MAAM,kBAAkB,EAAE,CAAA;IAG1B,MAAM,eAAe,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAG3C,IAAI,aAAa,EAAE,IAAI,KAAK,SAAS;QAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5E,IAAI,WAAW;QAAE,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAGtD,gBAAgB,CAAC,eAAe,EAAE,aAAc,CAAC,CAAC;IAGlD,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAGH,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAEzB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAI9B,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.collection.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/builtin/auth.collection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAS5D,eAAO,MAAM,cAAc,YAiDzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"auth.collection.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/builtin/auth.collection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAS5D,eAAO,MAAM,cAAc,YAsDzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -52,6 +52,11 @@ export const authCollection = collection({
52
52
  handler: "logout",
53
53
  path: "/logout",
54
54
  },
55
+ {
56
+ method: "get",
57
+ handler: "refresh",
58
+ path: "/refresh-token"
59
+ }
55
60
  ],
56
61
  });
57
62
  export default authCollection;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.collection.js","sourceRoot":"","sources":["../../../../src/js/auth/builtin/auth.collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,SAAS,EAAE,MAAO,CAAC;IAE3D,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE;QACX;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,QAAQ;SACxB;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,WAAW;SAC3B;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,OAAO;SACvB;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,WAAW;SAC3B;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,kBAAkB;YACxB,aAAa,EAAE,gBAAgB;SAChC;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,iBAAiB;YACvB,aAAa,EAAE,eAAe;SAC/B;QACD;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"auth.collection.js","sourceRoot":"","sources":["../../../../src/js/auth/builtin/auth.collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,SAAS,EAAE,MAAO,CAAC;IAE3D,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE;QACX;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,QAAQ;SACxB;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,WAAW;SAC3B;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,OAAO;SACvB;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,WAAW;SAC3B;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,kBAAkB;YACxB,aAAa,EAAE,gBAAgB;SAChC;QACD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,iBAAiB;YACvB,aAAa,EAAE,eAAe;SAC/B;QACD;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,SAAS;SAChB;QACD;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,gBAAgB;SACvB;KACF;CACF,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -5,4 +5,5 @@ export { default as resendOTP } from "./resendOTP.js";
5
5
  export { default as forgotPassword } from "./forgotPassword.js";
6
6
  export { default as resetPassword } from "./resetPassword.js";
7
7
  export { default as logout } from "./logout.js";
8
+ export { default as refresh } from "./refresh.js";
8
9
  //# sourceMappingURL=bunch.auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bunch.auth.d.ts","sourceRoot":"","sources":["../../../src/js/auth/bunch.auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"bunch.auth.d.ts","sourceRoot":"","sources":["../../../src/js/auth/bunch.auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -5,4 +5,5 @@ export { default as resendOTP } from "./resendOTP.js";
5
5
  export { default as forgotPassword } from "./forgotPassword.js";
6
6
  export { default as resetPassword } from "./resetPassword.js";
7
7
  export { default as logout } from "./logout.js";
8
+ export { default as refresh } from "./refresh.js";
8
9
  //# sourceMappingURL=bunch.auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bunch.auth.js","sourceRoot":"","sources":["../../../src/js/auth/bunch.auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"bunch.auth.js","sourceRoot":"","sources":["../../../src/js/auth/bunch.auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -11,9 +11,9 @@ const auth = (app, routeName, routes, modelName, validationsObj, mongooseSchemaO
11
11
  if (authConfigObj?.mode === "builtin") {
12
12
  builtInValidation = getValidationsObj(authConfigObj?.schemaObj?.schema);
13
13
  routes = routes.map((item) => item.handler === "login"
14
- ? { ...item, mode: authConfigObj.login }
14
+ ? { ...item, mode: authConfigObj.loginMode }
15
15
  : item.handler === "signup"
16
- ? { ...item, mode: authConfigObj.signup }
16
+ ? { ...item, mode: authConfigObj.signupMode }
17
17
  : item);
18
18
  }
19
19
  envs.userModelName = modelName;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/js/auth/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAE5D,MAAM,IAAI,GAAG,CACX,GAAY,EACZ,SAAiB,EACjB,MAAe,EACf,SAA6B,EAC7B,cAA+B,EAC/B,iBAAkC,EAClC,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,aAAa,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,MAAO,CAAC,CAAC;QACzE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAW,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,KAAK,OAAO;YACtB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAc,CAAC,KAAM,EAAE;YAC1C,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACzB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAc,CAAC,MAAO,EAAE;gBAC3C,CAAC,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,aAAa,GAAG,SAAmB,CAAC;IAKzC,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,EAAE,iBAAkB,CAAC,CAAC;IACnE,aAAa,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;IAGxC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAE9B,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAElB,SAAS,UAAU,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,EAClD,GAAG,UAAU,EACb,YAAY,CACV,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,SAAS;YACT,SAAS;YACT,QAAQ;YACR,cAAc,EAAE,iBAAiB,IAAI,cAAc;SACpD,CAAC,CACH,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/js/auth/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAE5D,MAAM,IAAI,GAAG,CACX,GAAY,EACZ,SAAiB,EACjB,MAAe,EACf,SAA6B,EAC7B,cAA+B,EAC/B,iBAAkC,EAClC,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,aAAa,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,MAAO,CAAC,CAAC;QACzE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAW,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,KAAK,OAAO;YACtB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAc,CAAC,SAAU,EAAE;YAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACzB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAc,CAAC,UAAW,EAAE;gBAC/C,CAAC,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,aAAa,GAAG,SAAmB,CAAC;IAKzC,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,EAAE,iBAAkB,CAAC,CAAC;IACnE,aAAa,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;IAGxC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAE9B,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAElB,SAAS,UAAU,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,EAClD,GAAG,UAAU,EACb,YAAY,CACV,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,SAAS;YACT,SAAS;YACT,QAAQ;YACR,cAAc,EAAE,iBAAiB,IAAI,cAAc;SACpD,CAAC,CACH,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/js/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQpE,QAAA,MAAM,KAAK,GAAI,qDAKZ;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;CAChC,MACe,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAyB1C,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/js/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOpE,QAAA,MAAM,KAAK,GAAI,qDAKZ;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;CAChC,MACe,KAAK,OAAO,EAAE,KAAK,QAAQ,kBA0B1C,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -3,7 +3,6 @@ import validate from "../utils/validate.js";
3
3
  import AppError from "../utils/AppError.js";
4
4
  import getValidationKey from "../utils/validationKeyError.js";
5
5
  import getErrorDetail from "../utils/getErrorDetail.js";
6
- import { getEnvs } from "../config/envs.js";
7
6
  const login = ({ modelName, routeObj, routeName, validationsObj, }) => {
8
7
  return async (req, res) => {
9
8
  const validationObj = getValidationKey(routeObj, validationsObj);
@@ -21,7 +20,8 @@ const login = ({ modelName, routeObj, routeName, validationsObj, }) => {
21
20
  purpose: "login",
22
21
  routeName,
23
22
  modelName,
24
- routeObj
23
+ routeObj,
24
+ req
25
25
  });
26
26
  };
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/js/auth/login.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,KAAK,GAAG,CAAC,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,GAMf,EAAE,EAAE;IACH,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAGjE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAGzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvC,MAAM,IAAI,QAAQ,CAAC;gBAChB,OAAO,EAAE,iCAAiC;gBAC3C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YAClC,IAAI;YACJ,GAAG;YACH,OAAO,EAAE,OAAO;YAChB,SAAS;YACT,SAAS;YACT,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/js/auth/login.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAExD,MAAM,KAAK,GAAG,CAAC,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,GAMf,EAAE,EAAE;IACH,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAGjE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAGzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvC,MAAM,IAAI,QAAQ,CAAC;gBAChB,OAAO,EAAE,iCAAiC;gBAC3C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YAClC,IAAI;YACJ,GAAG;YACH,OAAO,EAAE,OAAO;YAChB,SAAS;YACT,SAAS;YACT,QAAQ;YACR,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Route } from "../types/Collection.ts";
2
+ import type { Request, Response } from "express";
3
+ declare const refresh: ({ routeObj }: {
4
+ routeObj: Route;
5
+ }) => (req: Request, res: Response) => Promise<void>;
6
+ export default refresh;
7
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/js/auth/refresh.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAajD,QAAA,MAAM,OAAO,GAAI,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,MAClC,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAwF1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,70 @@
1
+ import AppError from "../utils/AppError.js";
2
+ import getErrorDetail from "../utils/getErrorDetail.js";
3
+ import { verifyJWT } from "../utils/handleJWT.js";
4
+ import { sendCookie } from "./utils/sendCookie.js";
5
+ import appResponse from "../utils/response.js";
6
+ import { getEnvs } from "../config/envs.js";
7
+ import tokenInfo from "./utils/UAParser.js";
8
+ import findRefreshToken from "./utils/findRefreshToken.js";
9
+ import handleRefreshTokenValidation from "./utils/handleRefreshTokenValidation.js";
10
+ import findRefreshTokenUser from "./utils/findRefreshTokenUser.js";
11
+ import handleRotateRefreshToken from "./utils/handleRotateRefreshToken.js";
12
+ const refresh = ({ routeObj }) => {
13
+ return async (req, res) => {
14
+ const { authConfigObj, userModelName } = getEnvs();
15
+ const { deviceType, jti, deviceName, os, ipAddress, familyId } = tokenInfo(req);
16
+ let token = req.cookies?.[authConfigObj.refreshTokenName];
17
+ if (!token)
18
+ throw new AppError({
19
+ message: "Refresh token is missing",
20
+ code: "REFRESH_TOKEN_MISSING",
21
+ details: getErrorDetail(routeObj),
22
+ hint: "Sign in again to create a new authentication session.",
23
+ statusCode: 401,
24
+ });
25
+ const payload = verifyJWT({
26
+ token,
27
+ routeObj,
28
+ });
29
+ if (typeof payload === "string" || !payload.sub || !payload.jti)
30
+ throw new AppError({
31
+ message: "Refresh token payload is invalid",
32
+ code: "REFRESH_TOKEN_PAYLOAD_INVALID",
33
+ statusCode: 401,
34
+ hint: "Sign in again to obtain a valid refresh token.",
35
+ details: getErrorDetail(routeObj),
36
+ });
37
+ const foundRefreshToken = await findRefreshToken(payload.sub, payload.jti, routeObj);
38
+ await handleRefreshTokenValidation(token, foundRefreshToken.refreshTokenHash, routeObj, payload.owner, payload.jti);
39
+ await findRefreshTokenUser(payload.sub, routeObj);
40
+ const { accessToken } = sendCookie({
41
+ res,
42
+ accessTokenName: authConfigObj.accessTokenName,
43
+ routeObj,
44
+ accessTokenPayload: {
45
+ sub: payload.sub,
46
+ },
47
+ });
48
+ await handleRotateRefreshToken({
49
+ deviceName: deviceName,
50
+ deviceType,
51
+ familyId,
52
+ ipAddress: ipAddress,
53
+ currentTokenJTI: payload.jti,
54
+ rotateTokenJTI: jti,
55
+ os,
56
+ owner: payload.sub,
57
+ res,
58
+ routeObj,
59
+ iat: payload.iat,
60
+ });
61
+ appResponse({
62
+ res,
63
+ message: "Access token refreshed successfully",
64
+ accessToken: authConfigObj?.returnAccessToken ? accessToken : undefined,
65
+ refreshToken: authConfigObj?.returnRefreshToken ? token : undefined,
66
+ });
67
+ };
68
+ };
69
+ export default refresh;
70
+ //# sourceMappingURL=refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/js/auth/refresh.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/js/auth/signup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AASpE,QAAA,MAAM,MAAM,GAAI,qDAKb;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;CAChC,MACe,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAsC1C,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/js/auth/signup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AASpE,QAAA,MAAM,MAAM,GAAI,qDAKb;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;CAChC,MACe,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAuC1C,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -30,7 +30,8 @@ const signup = ({ modelName, routeObj, routeName, validationsObj, }) => {
30
30
  routeName,
31
31
  modelName,
32
32
  purpose: "signup",
33
- routeObj
33
+ routeObj,
34
+ req
34
35
  });
35
36
  };
36
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/js/auth/signup.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAGxD,MAAM,MAAM,GAAG,CAAC,EACd,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,GAMf,EAAE,EAAE;IACH,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAGjE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAGzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvC,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,kCAAkC;gBAC3C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,iDAAiD;gBACvD,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAGL,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI,QAAQ;YACV,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,sCAAsC;gBAC/C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,mEAAmE;gBACzE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YACnC,IAAI;YACJ,GAAG;YACH,SAAS;YACT,SAAS;YACT,OAAO,EAAE,QAAQ;YACjB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/js/auth/signup.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAGxD,MAAM,MAAM,GAAG,CAAC,EACd,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,GAMf,EAAE,EAAE;IACH,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAGjE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAGzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvC,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,kCAAkC;gBAC3C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,iDAAiD;gBACvD,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAGL,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI,QAAQ;YACV,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,sCAAsC;gBAC/C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,mEAAmE;gBACzE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YACnC,IAAI;YACJ,GAAG;YACH,SAAS;YACT,SAAS;YACT,OAAO,EAAE,QAAQ;YACjB,QAAQ;YACR,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Request } from "express";
2
+ declare const tokenInfo: (req: Request) => {
3
+ deviceType: import("ua-parser-js").DeviceTypes;
4
+ deviceName: string | undefined;
5
+ ipAddress: string | undefined;
6
+ os: string;
7
+ jti: string;
8
+ familyId: string;
9
+ };
10
+ export default tokenInfo;
11
+ //# sourceMappingURL=UAParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UAParser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/UAParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,QAAA,MAAM,SAAS,GAAI,KAAK,OAAO;;;;;;;CAY9B,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { UAParser } from "ua-parser-js";
2
+ import crypto from "crypto";
3
+ const tokenInfo = (req) => {
4
+ const parser = new UAParser(req.get("user-agent"));
5
+ const result = parser.getResult();
6
+ return {
7
+ deviceType: result.device.type || "desktop",
8
+ deviceName: result.device.model || undefined,
9
+ ipAddress: req.ip || undefined,
10
+ os: `${result.os.name} ${result.os.version || ""}`,
11
+ jti: crypto.randomBytes(16).toString("hex"),
12
+ familyId: crypto.randomBytes(16).toString("hex"),
13
+ };
14
+ };
15
+ export default tokenInfo;
16
+ //# sourceMappingURL=UAParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UAParser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/UAParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE;IACjC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS;QAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;QAC5C,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS;QAC9B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,EAAE;QAClD,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,9 +1,10 @@
1
- import type { Response } from "express";
1
+ import type { Request, Response } from "express";
2
2
  import type { Route } from "../../types/Collection.js";
3
- declare const authenticateUser: ({ body, modelName, res, routeName, routeObj, }: {
3
+ declare const authenticateUser: ({ body, modelName, res, req, routeName, routeObj, }: {
4
4
  body: any;
5
5
  modelName: string;
6
6
  res: Response;
7
+ req: Request;
7
8
  routeName: string;
8
9
  routeObj: Route;
9
10
  }) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"authenticateUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/authenticateUser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAIvD,QAAA,MAAM,gBAAgB,GAAU,gDAM7B;IACD,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;CACjB,kBAiEA,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"authenticateUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/authenticateUser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAOvD,QAAA,MAAM,gBAAgB,GAAU,qDAO7B;IACD,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;CACjB,kBA0FA,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -8,8 +8,12 @@ import getUser from "./getUser.js";
8
8
  import { sendCookie } from "./sendCookie.js";
9
9
  import getErrorDetail from "../../utils/getErrorDetail.js";
10
10
  import { getEnvs } from "../../config/envs.js";
11
- const authenticateUser = async ({ body, modelName, res, routeName, routeObj, }) => {
11
+ import saveRefreshToken from "../../utils/saveRefreshToken.js";
12
+ import tokenInfo from "./UAParser.js";
13
+ import { hash } from "../../utils/libsodium.js";
14
+ const authenticateUser = async ({ body, modelName, res, req, routeName, routeObj, }) => {
12
15
  const OTPModel = getOTPModel(routeObj);
16
+ const { deviceType, familyId, jti, deviceName, ipAddress, os } = tokenInfo(req);
13
17
  const { authConfigObj } = getEnvs();
14
18
  let isVerified = false;
15
19
  let isOTPUser = null;
@@ -41,19 +45,38 @@ const authenticateUser = async ({ body, modelName, res, routeName, routeObj, })
41
45
  _id: body._id,
42
46
  });
43
47
  const { _id } = user.toObject();
44
- const token = sendCookie({
48
+ const { accessToken, refreshToken, refreshTokenAge } = sendCookie({
45
49
  res,
46
- cookieName: "authToken",
47
- payload: { sub: _id },
50
+ accessTokenName: authConfigObj.accessTokenName,
51
+ refreshTokenName: authConfigObj.refreshTokenName,
52
+ accessTokenPayload: { sub: _id },
53
+ refreshTokenPayload: { sub: _id },
48
54
  routeObj,
55
+ deviceType,
56
+ familyId,
57
+ jti,
58
+ });
59
+ const hashedToken = await hash(refreshToken);
60
+ await saveRefreshToken({
61
+ hashedToken,
62
+ refreshTokenAge,
63
+ _id,
64
+ routeObj,
65
+ jti: jti,
66
+ familyId,
67
+ deviceName,
68
+ deviceType,
69
+ ipAddress,
70
+ os,
49
71
  });
50
72
  appResponse({
51
73
  res,
52
74
  message: "Authenticated successfully!",
53
75
  statusCode: 200,
54
76
  data: sanitizeOne(user.toObject(), routeObj),
55
- accessToken: authConfigObj?.returnAccessToken ? token : undefined,
56
- purpose: body.purpose
77
+ accessToken: authConfigObj?.returnAccessToken ? accessToken : undefined,
78
+ refreshToken: authConfigObj?.returnRefreshToken ? refreshToken : undefined,
79
+ purpose: body.purpose,
57
80
  });
58
81
  };
59
82
  export default authenticateUser;
@@ -1 +1 @@
1
- {"version":3,"file":"authenticateUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/authenticateUser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAC9B,IAAI,EACJ,SAAS,EACT,GAAG,EACH,SAAS,EACT,QAAQ,GAOT,EAAE,EAAE;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAGvC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAGpC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,SAAS,GAAQ,IAAI,CAAC;IAE1B,IAAI,YAAY,IAAI,IAAI;QACtB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,OAAO,EAAE,OAAO;YAChB,QAAQ;SACT,CAAC,CAAC,CAAC;IAGN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;QACzB,SAAS;QACT,SAAS;QACT,KAAK,EAAE,IAAI,CAAC,KAAe;QAC3B,YAAY,EAAE,IAAI;QAClB,QAAQ;KACT,CAAC,CAAC;IAGH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzE,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,mBAAmB;gBAC5B,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;IACP,CAAC;IAGD,IAAI,UAAU;QACZ,MAAM,QAAS,CAAC,SAAS,CAAC;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;IAEL,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAGhC,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,GAAG;QACH,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;QACrB,QAAQ;KACT,CAAC,CAAC;IAGH,WAAW,CAAC;QACV,GAAG;QACH,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;QAC5C,WAAW,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACjE,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"authenticateUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/authenticateUser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createOTPModel.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPModel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAGrE,QAAA,MAAM,cAAc,GAAI,WAAW,MAAM,EAAE,mBAAmB,SAAS,QA4CtE,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"createOTPModel.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPModel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAGrE,QAAA,MAAM,cAAc,GAAI,WAAW,MAAM,EAAE,mBAAmB,SAAS,QAgDtE,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -18,7 +18,7 @@ const createOTPModel = (routeName, mongooseSchemaObj) => {
18
18
  return field;
19
19
  };
20
20
  const optionalSchema = makeOptional(mongooseSchemaObj);
21
- return createModel(routeName, "otpUser", {
21
+ return createModel("otpUser", {
22
22
  ...optionalSchema,
23
23
  otpCount: { type: Number, default: 0 },
24
24
  OTP: { type: String },
@@ -31,7 +31,7 @@ const createOTPModel = (routeName, mongooseSchemaObj) => {
31
31
  enum: otpPurposes,
32
32
  required: true,
33
33
  },
34
- });
34
+ }, routeName);
35
35
  };
36
36
  export default createOTPModel;
37
37
  //# sourceMappingURL=createOTPModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOTPModel.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,iBAA4B,EAAE,EAAE;IAEzE,MAAM,YAAY,GAAG,CAAC,KAAU,EAAO,EAAE;QAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAGD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC1D,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QAGD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAEvD,OAAO,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE;QACvC,GAAG,cAAc;QAEjB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACrB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QACzB,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;QAChE,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,IAAI;SACf;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"createOTPModel.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,iBAA4B,EAAE,EAAE;IAEzE,MAAM,YAAY,GAAG,CAAC,KAAU,EAAO,EAAE;QAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAGD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC1D,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QAGD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAEvD,OAAO,WAAW,CAChB,SAAS,EACT;QACE,GAAG,cAAc;QAEjB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACrB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QACzB,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;QAChE,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,IAAI;SACf;KACF,EACD,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,11 +1,12 @@
1
- import type { Response } from "express";
1
+ import type { Response, Request } from "express";
2
2
  import type { Route } from "../../types/Collection.js";
3
- declare const createUser: ({ body, modelName, res, routeName, routeObj, }: {
3
+ declare const createUser: ({ body, modelName, res, routeName, routeObj, req, }: {
4
4
  body: any;
5
5
  modelName: string;
6
6
  res: Response;
7
7
  routeName: string;
8
8
  routeObj: Route;
9
+ req: Request;
9
10
  }) => Promise<void>;
10
11
  export default createUser;
11
12
  //# sourceMappingURL=createUser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AASxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,UAAU,GAAU,gDAMvB;IACD,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;CACjB,kBAqDA,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"createUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,UAAU,GAAU,qDAOvB;IACD,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd,kBA+EA,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -7,9 +7,12 @@ import getOTPModel from "./getOTPModel.js";
7
7
  import handleIsVerified from "./handleIsVerified.js";
8
8
  import { sendCookie } from "./sendCookie.js";
9
9
  import { getEnvs } from "../../config/envs.js";
10
- const createUser = async ({ body, modelName, res, routeName, routeObj, }) => {
10
+ import tokenInfo from "./UAParser.js";
11
+ import saveRefreshToken from "../../utils/saveRefreshToken.js";
12
+ const createUser = async ({ body, modelName, res, routeName, routeObj, req, }) => {
11
13
  const Model = getModel({ modelName, routeName, routeObj });
12
14
  const OTPModel = getOTPModel(routeObj);
15
+ const { deviceType, familyId, jti, deviceName, ipAddress, os } = tokenInfo(req);
13
16
  const { authConfigObj } = getEnvs();
14
17
  let isVerified = false;
15
18
  let isOTPUser = null;
@@ -32,19 +35,38 @@ const createUser = async ({ body, modelName, res, routeName, routeObj, }) => {
32
35
  if (isVerified)
33
36
  await OTPModel.deleteOne({ _id: isOTPUser._id });
34
37
  const { _id } = newUser.toObject();
35
- const token = sendCookie({
38
+ const { accessToken, refreshToken, refreshTokenAge } = sendCookie({
36
39
  res,
37
- cookieName: "authToken",
38
- payload: { sub: _id },
40
+ accessTokenName: authConfigObj.accessTokenName,
41
+ refreshTokenName: authConfigObj.refreshTokenName,
42
+ accessTokenPayload: { sub: _id },
43
+ refreshTokenPayload: { sub: _id },
39
44
  routeObj,
45
+ deviceType,
46
+ familyId,
47
+ jti,
48
+ });
49
+ const hashedToken = await hash(refreshToken);
50
+ await saveRefreshToken({
51
+ hashedToken,
52
+ refreshTokenAge,
53
+ _id,
54
+ routeObj,
55
+ jti: jti,
56
+ familyId,
57
+ deviceName,
58
+ deviceType,
59
+ os,
60
+ ipAddress,
40
61
  });
41
62
  appResponse({
42
63
  res,
43
64
  message: "Your account has been created successfully!",
44
65
  statusCode: 201,
45
66
  data: sanitizeOne(newUser.toObject(), routeObj),
46
- accessToken: authConfigObj?.returnAccessToken ? token : undefined,
47
- purpose: body.purpose
67
+ accessToken: authConfigObj?.returnAccessToken ? accessToken : undefined,
68
+ refreshToken: authConfigObj?.returnRefreshToken ? refreshToken : undefined,
69
+ purpose: body.purpose,
48
70
  });
49
71
  };
50
72
  export default createUser;
@@ -1 +1 @@
1
- {"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,UAAU,GAAG,KAAK,EAAE,EACxB,IAAI,EACJ,SAAS,EACT,GAAG,EACH,SAAS,EACT,QAAQ,GAOT,EAAE,EAAE;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAGvC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAGpC,IAAI,UAAU,GAAY,KAAK,CAAC;IAChC,IAAI,SAAS,GAAQ,IAAI,CAAC;IAC1B,IAAI,YAAY,IAAI,IAAI;QACtB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,OAAO,EAAE,QAAQ;YACjB,QAAQ;SACT,CAAC,CAAC,CAAC;IAGN,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;IAGD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAGzC,IAAI,UAAU;QAAE,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IAEjE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAGnC,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,GAAG;QACH,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;QACrB,QAAQ;KACT,CAAC,CAAC;IAGH,WAAW,CAAC;QACV,GAAG;QACH,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;QAC/C,WAAW,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACjE,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Route } from "../../types/Collection.js";
2
+ declare const findRefreshToken: (owner: string, jti: string, routeObj: Route) => Promise<any>;
3
+ export default findRefreshToken;
4
+ //# sourceMappingURL=findRefreshToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findRefreshToken.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,gBAAgB,GACpB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,UAAU,KAAK,iBAgChB,CAAC;AACF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import getModel from "../../utils/getModel.js";
2
+ import AppError from "../../utils/AppError.js";
3
+ import getErrorDetail from "../../utils/getErrorDetail.js";
4
+ const findRefreshToken = async (owner, jti, routeObj) => {
5
+ const RefreshToken = getModel({ modelName: "RefreshToken", routeObj });
6
+ const foundRefreshToken = await RefreshToken.findOne({
7
+ owner,
8
+ jti,
9
+ });
10
+ if (!foundRefreshToken)
11
+ throw new AppError({
12
+ message: "Refresh token session was not found",
13
+ code: "REFRESH_TOKEN_NOT_FOUND",
14
+ hint: "Sign in again to create a new authentication session.",
15
+ details: getErrorDetail(routeObj),
16
+ statusCode: 401,
17
+ });
18
+ if (foundRefreshToken.revoked)
19
+ throw new AppError({
20
+ message: "Refresh token has been revoked",
21
+ code: "REFRESH_TOKEN_REVOKED",
22
+ statusCode: 401,
23
+ hint: "Sign in again to create a new authentication session.",
24
+ details: getErrorDetail(routeObj),
25
+ });
26
+ return foundRefreshToken;
27
+ };
28
+ export default findRefreshToken;
29
+ //# sourceMappingURL=findRefreshToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findRefreshToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshToken.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAa,EACb,GAAW,EACX,QAAe,EACf,EAAE;IAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;IAGvE,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;QACnD,KAAK;QACL,GAAG;KACJ,CAAC,CAAC;IAGH,IAAI,CAAC,iBAAiB;QACpB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,qCAAqC;YAC9C,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,uDAAuD;YAC7D,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IAGL,IAAI,iBAAiB,CAAC,OAAO;QAC3B,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,gCAAgC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uDAAuD;YAC7D,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;IAEL,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AACF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Route } from "../../types/Collection.js";
2
+ declare const findRefreshTokenUser: (id: string, routeObj: Route) => Promise<void>;
3
+ export default findRefreshTokenUser;
4
+ //# sourceMappingURL=findRefreshTokenUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findRefreshTokenUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshTokenUser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,oBAAoB,GAAU,IAAI,MAAM,EAAE,UAAU,KAAK,kBAc9D,CAAC;AACF,eAAe,oBAAoB,CAAC"}