@flink-app/generic-auth-plugin 1.0.0 → 2.0.0-alpha.101

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 (198) hide show
  1. package/.flink/generatedAgents.ts +5 -0
  2. package/.flink/generatedHandlers.ts +22 -22
  3. package/.flink/generatedJobs.ts +1 -1
  4. package/.flink/generatedRepos.ts +1 -1
  5. package/.flink/generatedServices.ts +5 -0
  6. package/.flink/generatedTools.ts +5 -0
  7. package/.flink/start.ts +4 -1
  8. package/CHANGELOG.md +597 -0
  9. package/dist/.flink/generatedAgents.d.ts +1 -0
  10. package/dist/.flink/generatedAgents.js +14 -0
  11. package/dist/.flink/generatedAgents.js.map +1 -0
  12. package/dist/.flink/generatedHandlers.js +13 -6
  13. package/dist/.flink/generatedHandlers.js.map +1 -0
  14. package/dist/.flink/generatedJobs.js +13 -6
  15. package/dist/.flink/generatedJobs.js.map +1 -0
  16. package/dist/.flink/generatedRepos.js +13 -6
  17. package/dist/.flink/generatedRepos.js.map +1 -0
  18. package/dist/.flink/generatedServices.js +14 -0
  19. package/dist/.flink/generatedServices.js.map +1 -0
  20. package/dist/.flink/generatedTools.d.ts +1 -0
  21. package/dist/.flink/generatedTools.js +14 -0
  22. package/dist/.flink/generatedTools.js.map +1 -0
  23. package/dist/.flink/schema-manifest.json +588 -0
  24. package/dist/.flink/schemas/schemas.js +1 -1
  25. package/dist/.flink/start.d.ts +2 -0
  26. package/dist/.flink/start.js +15 -3
  27. package/dist/.flink/start.js.map +1 -0
  28. package/dist/.tsbuildinfo +1 -0
  29. package/dist/src/coreFunctions.js +356 -412
  30. package/dist/src/coreFunctions.js.map +1 -0
  31. package/dist/src/genericAuthContext.js +3 -1
  32. package/dist/src/genericAuthContext.js.map +1 -0
  33. package/dist/src/genericAuthPluginOptions.js +3 -1
  34. package/dist/src/genericAuthPluginOptions.js.map +1 -0
  35. package/dist/src/handlers/Management/DeleteUserByUserid.d.ts +1 -1
  36. package/dist/src/handlers/Management/DeleteUserByUserid.js +21 -60
  37. package/dist/src/handlers/Management/DeleteUserByUserid.js.map +1 -0
  38. package/dist/src/handlers/Management/GetSchema.d.ts +1 -1
  39. package/dist/src/handlers/Management/GetSchema.js +16 -50
  40. package/dist/src/handlers/Management/GetSchema.js.map +1 -0
  41. package/dist/src/handlers/Management/GetUser.d.ts +1 -1
  42. package/dist/src/handlers/Management/GetUser.js +25 -59
  43. package/dist/src/handlers/Management/GetUser.js.map +1 -0
  44. package/dist/src/handlers/Management/GetUserByUserid.d.ts +1 -1
  45. package/dist/src/handlers/Management/GetUserByUserid.js +60 -71
  46. package/dist/src/handlers/Management/GetUserByUserid.js.map +1 -0
  47. package/dist/src/handlers/Management/GetUserViewByUserid.d.ts +1 -1
  48. package/dist/src/handlers/Management/GetUserViewByUserid.js +35 -74
  49. package/dist/src/handlers/Management/GetUserViewByUserid.js.map +1 -0
  50. package/dist/src/handlers/Management/PutUserPasswordByUserid.d.ts +1 -1
  51. package/dist/src/handlers/Management/PutUserPasswordByUserid.js +37 -85
  52. package/dist/src/handlers/Management/PutUserPasswordByUserid.js.map +1 -0
  53. package/dist/src/handlers/Management/PutUserProfileByUserid.d.ts +1 -1
  54. package/dist/src/handlers/Management/PutUserProfileByUserid.js +27 -70
  55. package/dist/src/handlers/Management/PutUserProfileByUserid.js.map +1 -0
  56. package/dist/src/handlers/Management/PutUserProfileByUseridAppend.d.ts +1 -1
  57. package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js +53 -76
  58. package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js.map +1 -0
  59. package/dist/src/handlers/Management/PutUserRolesByUserid.d.ts +1 -1
  60. package/dist/src/handlers/Management/PutUserRolesByUserid.js +24 -63
  61. package/dist/src/handlers/Management/PutUserRolesByUserid.js.map +1 -0
  62. package/dist/src/handlers/Management/PutUserUsernameByUserid.d.ts +1 -1
  63. package/dist/src/handlers/Management/PutUserUsernameByUserid.js +31 -72
  64. package/dist/src/handlers/Management/PutUserUsernameByUserid.js.map +1 -0
  65. package/dist/src/handlers/UserCreate.d.ts +1 -1
  66. package/dist/src/handlers/UserCreate.js +44 -84
  67. package/dist/src/handlers/UserCreate.js.map +1 -0
  68. package/dist/src/handlers/UserLogin.d.ts +1 -1
  69. package/dist/src/handlers/UserLogin.js +45 -88
  70. package/dist/src/handlers/UserLogin.js.map +1 -0
  71. package/dist/src/handlers/UserLoginByToken.d.ts +1 -1
  72. package/dist/src/handlers/UserLoginByToken.js +24 -63
  73. package/dist/src/handlers/UserLoginByToken.js.map +1 -0
  74. package/dist/src/handlers/UserPasswordPut.d.ts +1 -1
  75. package/dist/src/handlers/UserPasswordPut.js +24 -60
  76. package/dist/src/handlers/UserPasswordPut.js.map +1 -0
  77. package/dist/src/handlers/UserPasswordResetComplete.d.ts +1 -1
  78. package/dist/src/handlers/UserPasswordResetComplete.js +30 -66
  79. package/dist/src/handlers/UserPasswordResetComplete.js.map +1 -0
  80. package/dist/src/handlers/UserPasswordResetForm.d.ts +1 -1
  81. package/dist/src/handlers/UserPasswordResetForm.js +155 -110
  82. package/dist/src/handlers/UserPasswordResetForm.js.map +1 -0
  83. package/dist/src/handlers/UserPasswordResetStart.d.ts +1 -1
  84. package/dist/src/handlers/UserPasswordResetStart.js +66 -95
  85. package/dist/src/handlers/UserPasswordResetStart.js.map +1 -0
  86. package/dist/src/handlers/UserProfileGet.d.ts +1 -1
  87. package/dist/src/handlers/UserProfileGet.js +21 -60
  88. package/dist/src/handlers/UserProfileGet.js.map +1 -0
  89. package/dist/src/handlers/UserProfilePut.d.ts +1 -1
  90. package/dist/src/handlers/UserProfilePut.js +55 -81
  91. package/dist/src/handlers/UserProfilePut.js.map +1 -0
  92. package/dist/src/handlers/UserPushRegisterToken.d.ts +1 -1
  93. package/dist/src/handlers/UserPushRegisterToken.js +119 -118
  94. package/dist/src/handlers/UserPushRegisterToken.js.map +1 -0
  95. package/dist/src/handlers/UserPushRemoveToken.d.ts +1 -1
  96. package/dist/src/handlers/UserPushRemoveToken.js +26 -63
  97. package/dist/src/handlers/UserPushRemoveToken.js.map +1 -0
  98. package/dist/src/handlers/UserToken.d.ts +1 -1
  99. package/dist/src/handlers/UserToken.js +29 -63
  100. package/dist/src/handlers/UserToken.js.map +1 -0
  101. package/dist/src/index.js +133 -50
  102. package/dist/src/index.js.map +1 -0
  103. package/dist/src/init.js +160 -101
  104. package/dist/src/init.js.map +1 -0
  105. package/dist/src/management.js +109 -86
  106. package/dist/src/management.js.map +1 -0
  107. package/dist/src/schemas/Management/DeleteUserByUseridReq.js +3 -1
  108. package/dist/src/schemas/Management/DeleteUserByUseridReq.js.map +1 -0
  109. package/dist/src/schemas/Management/DeleteUserByUseridRes.js +3 -1
  110. package/dist/src/schemas/Management/DeleteUserByUseridRes.js.map +1 -0
  111. package/dist/src/schemas/Management/GetUserByUseridReq.js +3 -1
  112. package/dist/src/schemas/Management/GetUserByUseridReq.js.map +1 -0
  113. package/dist/src/schemas/Management/GetUserByUseridRes.js +3 -1
  114. package/dist/src/schemas/Management/GetUserByUseridRes.js.map +1 -0
  115. package/dist/src/schemas/Management/GetUserReq.js +3 -1
  116. package/dist/src/schemas/Management/GetUserReq.js.map +1 -0
  117. package/dist/src/schemas/Management/GetUserRes.js +3 -1
  118. package/dist/src/schemas/Management/GetUserRes.js.map +1 -0
  119. package/dist/src/schemas/Management/GetUserViewByUseridReq.js +3 -1
  120. package/dist/src/schemas/Management/GetUserViewByUseridReq.js.map +1 -0
  121. package/dist/src/schemas/Management/GetUserViewByUseridRes.js +3 -1
  122. package/dist/src/schemas/Management/GetUserViewByUseridRes.js.map +1 -0
  123. package/dist/src/schemas/Management/PutUserPasswordByUseridReq.js +3 -1
  124. package/dist/src/schemas/Management/PutUserPasswordByUseridReq.js.map +1 -0
  125. package/dist/src/schemas/Management/PutUserPasswordByUseridRes.js +3 -1
  126. package/dist/src/schemas/Management/PutUserPasswordByUseridRes.js.map +1 -0
  127. package/dist/src/schemas/Management/PutUserProfileByUseridReq.js +3 -1
  128. package/dist/src/schemas/Management/PutUserProfileByUseridReq.js.map +1 -0
  129. package/dist/src/schemas/Management/PutUserProfileByUseridRes.js +3 -1
  130. package/dist/src/schemas/Management/PutUserProfileByUseridRes.js.map +1 -0
  131. package/dist/src/schemas/Management/PutUserRolesByUseridReq.js +3 -1
  132. package/dist/src/schemas/Management/PutUserRolesByUseridReq.js.map +1 -0
  133. package/dist/src/schemas/Management/PutUserRolesByUseridRes.js +3 -1
  134. package/dist/src/schemas/Management/PutUserRolesByUseridRes.js.map +1 -0
  135. package/dist/src/schemas/Management/PutUserUsernameByUseridReq.js +3 -1
  136. package/dist/src/schemas/Management/PutUserUsernameByUseridReq.js.map +1 -0
  137. package/dist/src/schemas/Management/PutUserUsernameByUseridRes.js +3 -1
  138. package/dist/src/schemas/Management/PutUserUsernameByUseridRes.js.map +1 -0
  139. package/dist/src/schemas/PushNotificationToken.js +3 -1
  140. package/dist/src/schemas/PushNotificationToken.js.map +1 -0
  141. package/dist/src/schemas/PushNotificationTokenRes.js +3 -1
  142. package/dist/src/schemas/PushNotificationTokenRes.js.map +1 -0
  143. package/dist/src/schemas/User.js +3 -1
  144. package/dist/src/schemas/User.js.map +1 -0
  145. package/dist/src/schemas/UserCreateReq.js +3 -1
  146. package/dist/src/schemas/UserCreateReq.js.map +1 -0
  147. package/dist/src/schemas/UserCreateRes.js +3 -1
  148. package/dist/src/schemas/UserCreateRes.js.map +1 -0
  149. package/dist/src/schemas/UserLoginByTokenReq.js +3 -1
  150. package/dist/src/schemas/UserLoginByTokenReq.js.map +1 -0
  151. package/dist/src/schemas/UserLoginReq.js +3 -1
  152. package/dist/src/schemas/UserLoginReq.js.map +1 -0
  153. package/dist/src/schemas/UserLoginRes.js +3 -1
  154. package/dist/src/schemas/UserLoginRes.js.map +1 -0
  155. package/dist/src/schemas/UserPasswordChangeReq.js +3 -1
  156. package/dist/src/schemas/UserPasswordChangeReq.js.map +1 -0
  157. package/dist/src/schemas/UserPasswordChangeRes.js +3 -1
  158. package/dist/src/schemas/UserPasswordChangeRes.js.map +1 -0
  159. package/dist/src/schemas/UserPasswordResetCompleteReq.js +3 -1
  160. package/dist/src/schemas/UserPasswordResetCompleteReq.js.map +1 -0
  161. package/dist/src/schemas/UserPasswordResetCompleteRes.js +3 -1
  162. package/dist/src/schemas/UserPasswordResetCompleteRes.js.map +1 -0
  163. package/dist/src/schemas/UserPasswordResetSettings.js +3 -1
  164. package/dist/src/schemas/UserPasswordResetSettings.js.map +1 -0
  165. package/dist/src/schemas/UserPasswordResetStartReq.js +3 -1
  166. package/dist/src/schemas/UserPasswordResetStartReq.js.map +1 -0
  167. package/dist/src/schemas/UserPasswordResetStartRes.js +3 -1
  168. package/dist/src/schemas/UserPasswordResetStartRes.js.map +1 -0
  169. package/dist/src/schemas/UserPasswordResetStartResPublic.js +3 -1
  170. package/dist/src/schemas/UserPasswordResetStartResPublic.js.map +1 -0
  171. package/dist/src/schemas/UserProfile.js +3 -1
  172. package/dist/src/schemas/UserProfile.js.map +1 -0
  173. package/dist/src/schemas/UserTokenRes.js +3 -1
  174. package/dist/src/schemas/UserTokenRes.js.map +1 -0
  175. package/package.json +9 -6
  176. package/src/coreFunctions.ts +3 -3
  177. package/src/handlers/Management/DeleteUserByUserid.ts +10 -14
  178. package/src/handlers/Management/GetSchema.ts +6 -12
  179. package/src/handlers/Management/GetUser.ts +11 -15
  180. package/src/handlers/Management/GetUserByUserid.ts +13 -23
  181. package/src/handlers/Management/PutUserPasswordByUserid.ts +39 -45
  182. package/src/handlers/Management/PutUserProfileByUserid.ts +21 -27
  183. package/src/handlers/Management/PutUserProfileByUseridAppend.ts +22 -28
  184. package/src/handlers/Management/PutUserRolesByUserid.ts +17 -23
  185. package/src/handlers/Management/PutUserUsernameByUserid.ts +24 -31
  186. package/src/handlers/UserLoginByToken.ts +20 -27
  187. package/src/handlers/UserPasswordPut.ts +17 -24
  188. package/src/handlers/UserPasswordResetComplete.ts +31 -40
  189. package/src/handlers/UserPasswordResetForm.ts +25 -29
  190. package/src/handlers/UserPasswordResetStart.ts +13 -5
  191. package/src/handlers/UserProfileGet.ts +11 -14
  192. package/src/handlers/UserProfilePut.ts +1 -1
  193. package/src/handlers/UserPushRegisterToken.ts +2 -2
  194. package/src/handlers/UserPushRemoveToken.ts +12 -18
  195. package/src/handlers/UserToken.ts +13 -24
  196. package/src/init.ts +23 -1
  197. package/tsconfig.json +1 -1
  198. package/.flink/schemas/schemas.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserPasswordResetForm.ts"],"sourcesContent":["import { ExpressRequest, ExpressResponse } from \"@flink-app/flink\";\nimport fs from \"fs/promises\";\nimport { log } from \"@flink-app/flink\";\nimport Handlebars from \"handlebars\";\n\nconst defaultTemplate = `<html>\n<head>\n <title>Password reset</title>\n <link rel=\"stylesheet\" href=\"form/style.css\" />\n <script src=\"form/script.js\" type=\"text/javascript\"></script>\n</head>\n<body>\n <form id=\"form\">\n <p>Please enter new password</p>\n <input type=\"password\" name=\"password\" placeholder=\"Enter new password\" />\n <input\n type=\"password\"\n name=\"confirmPassword\"\n placeholder=\"Confirm new password\"\n />\n <button id=\"submit-btn\">Submit</button>\n </form>\n <div id=\"success\">Password has been updated, please proceed to login.</div>\n</body>\n</html>\n`;\n\nconst script = `\n window.onload = () => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n const { token, code } = params;\n\n if (!token) {\n alert(\"Missing token\");\n } else if (!code) {\n alert(\"Missing code\");\n }\n\n const submitBtnEl = document.getElementById(\"submit-btn\");\n const [passwordInputEl, confirmPasswordEl] =\n document.getElementsByTagName(\"input\");\n\n submitBtnEl.onclick = async (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!passwordInputEl.value) {\n return alert(\"Enter a new password\");\n } else if (passwordInputEl.value !== confirmPasswordEl.value) {\n return alert(\n \"Passwords does not match, make sure that new and confirmed passwords are the same\"\n );\n }\n\n const res = await window.fetch(\"{{completeUrl}}\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n passwordResetToken: token,\n code: code,\n password: passwordInputEl.value,\n }),\n });\n\n if (res.status > 399) {\n alert(\"Failed to set new password\");\n } else {\n document.getElementById(\"form\").style.display = \"none\";\n document.getElementById(\"success\").style.display = \"block\";\n }\n };\n };\n`;\n\nconst style = ` * {\n box-sizing: border-box;\n font-family: Arial, Helvetica, sans-serif;\n }\n\n p {\n margin: 0.5rem 0;\n }\n\n body {\n padding: 1rem;\n }\n\n form {\n display: block;\n max-width: 320px;\n }\n\n input {\n width: 100%;\n display: block;\n margin: 0.5rem 0;\n }\n\n #success {\n display: none;\n font-size: 1.2rem;\n color: rgb(0, 177, 115);\n max-width: 350px;\n }\n`;\n\nexport async function handleUserPasswordResetForm(\n _req: ExpressRequest,\n res: ExpressResponse,\n { templateFile, completeUrl }: { templateFile?: string; completeUrl: string }\n) {\n const tpl = await readTemplate(templateFile);\n\n const html = Handlebars.compile(tpl)({\n completeUrl,\n });\n\n res.send(html);\n}\n\nexport async function resetPasswordFormScript(req: ExpressRequest, res: ExpressResponse, { completeUrl }: { completeUrl: string }) {\n res.header(\"Content-Type\", \"application/javascript\");\n const js = Handlebars.compile(script)({ completeUrl });\n res.send(js);\n}\n\nexport async function resetPasswordFormCss(res: ExpressResponse) {\n res.header(\"Content-Type\", \"text/css\");\n res.send(style);\n}\n\nlet cachedTemplate = \"\";\n\nasync function readTemplate(templateFilename?: string) {\n if (!cachedTemplate) {\n if (templateFilename) {\n try {\n const buff = await fs.readFile(templateFilename);\n cachedTemplate = buff.toString();\n } catch (err) {\n log.error(\"Failed reading template file for password reset\", templateFilename, err);\n throw err;\n }\n } else {\n cachedTemplate = defaultTemplate;\n }\n }\n\n return cachedTemplate;\n}\n"],"names":["handleUserPasswordResetForm","resetPasswordFormCss","resetPasswordFormScript","defaultTemplate","script","style","_req","res","templateFile","completeUrl","tpl","readTemplate","html","Handlebars","compile","send","req","header","js","cachedTemplate","templateFilename","buff","fs","readFile","toString","err","log","error"],"mappings":";;;;;;;;;;;QA8GsBA;eAAAA;;QAoBAC;eAAAA;;QANAC;eAAAA;;;iEA3HP;uBACK;mEACG;;;;;;AAEvB,MAAMC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;AAoBzB,CAAC;AAED,MAAMC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDhB,CAAC;AAED,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Bf,CAAC;AAEM,eAAeL,4BAClBM,IAAoB,EACpBC,GAAoB,EACpB,EAAEC,YAAY,EAAEC,WAAW,EAAkD;IAE7E,MAAMC,MAAM,MAAMC,aAAaH;IAE/B,MAAMI,OAAOC,mBAAU,CAACC,OAAO,CAACJ,KAAK;QACjCD;IACJ;IAEAF,IAAIQ,IAAI,CAACH;AACb;AAEO,eAAeV,wBAAwBc,GAAmB,EAAET,GAAoB,EAAE,EAAEE,WAAW,EAA2B;IAC7HF,IAAIU,MAAM,CAAC,gBAAgB;IAC3B,MAAMC,KAAKL,mBAAU,CAACC,OAAO,CAACV,QAAQ;QAAEK;IAAY;IACpDF,IAAIQ,IAAI,CAACG;AACb;AAEO,eAAejB,qBAAqBM,GAAoB;IAC3DA,IAAIU,MAAM,CAAC,gBAAgB;IAC3BV,IAAIQ,IAAI,CAACV;AACb;AAEA,IAAIc,iBAAiB;AAErB,eAAeR,aAAaS,gBAAyB;IACjD,IAAI,CAACD,gBAAgB;QACjB,IAAIC,kBAAkB;YAClB,IAAI;gBACA,MAAMC,OAAO,MAAMC,iBAAE,CAACC,QAAQ,CAACH;gBAC/BD,iBAAiBE,KAAKG,QAAQ;YAClC,EAAE,OAAOC,KAAK;gBACVC,UAAG,CAACC,KAAK,CAAC,mDAAmDP,kBAAkBK;gBAC/E,MAAMA;YACV;QACJ,OAAO;YACHN,iBAAiBhB;QACrB;IACJ;IAEA,OAAOgB;AACX"}
@@ -5,4 +5,4 @@ import { UserPasswordResetStartReq } from "../schemas/UserPasswordResetStartReq"
5
5
  import { UserPasswordResetStartResPublic } from "../schemas/UserPasswordResetStartResPublic";
6
6
  declare const postPasswordResetStartHandler: Handler<FlinkContext<genericAuthContext & emailPluginContext>, UserPasswordResetStartReq, UserPasswordResetStartResPublic>;
7
7
  export default postPasswordResetStartHandler;
8
- export declare const __assumedHttpMethod = "", __file = "UserPasswordResetStart.ts", __query: never[], __params: never[];
8
+ export declare const __assumedHttpMethod = "", __file = "src/handlers/UserPasswordResetStart.ts", __query: never[], __params: never[];
@@ -1,99 +1,70 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _flink = require("@flink-app/flink");
12
+ const _handlebars = /*#__PURE__*/ _interop_require_default(require("handlebars"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const postPasswordResetStartHandler = async ({ ctx, req, origin })=>{
19
+ var _ctx_plugins_emailPlugin;
20
+ let pluginName = origin || "genericAuthPlugin";
21
+ const genericAuthPlugin = ctx.plugins[pluginName];
22
+ let repo = ctx.repos[genericAuthPlugin.repoName];
23
+ if (((_ctx_plugins_emailPlugin = ctx.plugins.emailPlugin) === null || _ctx_plugins_emailPlugin === void 0 ? void 0 : _ctx_plugins_emailPlugin.client) == null) {
24
+ return (0, _flink.internalServerError)("Email plugin have to be initialized to use /password/reset");
25
+ }
26
+ if (!genericAuthPlugin.passwordResetSettings) {
27
+ return (0, _flink.internalServerError)("Password reset settings is needed to use /password/reset");
28
+ }
29
+ const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;
30
+ const resp = await genericAuthPlugin.passwordResetStart(repo, ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime, genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens);
31
+ if (resp.status != "success") {
32
+ return {
33
+ data: {
34
+ status: "success",
35
+ passwordResetToken: resp.passwordResetToken
32
36
  }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
+ };
36
38
  }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
43
- var flink_1 = require("@flink-app/flink");
44
- var handlebars_1 = __importDefault(require("handlebars"));
45
- var postPasswordResetStartHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
46
- var pluginName, genericAuthPlugin, repo, _c, jwtSecret, numberOfDigits, lifeTime, resp, emailCtx, emailSettings, subject, html, email;
47
- var _d;
48
- var ctx = _b.ctx, req = _b.req, origin = _b.origin;
49
- return __generator(this, function (_e) {
50
- switch (_e.label) {
51
- case 0:
52
- pluginName = origin || "genericAuthPlugin";
53
- genericAuthPlugin = ctx.plugins[pluginName];
54
- repo = ctx.repos[genericAuthPlugin.repoName];
55
- if (((_d = ctx.plugins.emailPlugin) === null || _d === void 0 ? void 0 : _d.client) == null) {
56
- return [2 /*return*/, (0, flink_1.internalServerError)("Email plugin have to be initialized to use /password/reset")];
57
- }
58
- if (!genericAuthPlugin.passwordResetSettings) {
59
- return [2 /*return*/, (0, flink_1.internalServerError)("Password reset settings is needed to use /password/reset")];
60
- }
61
- _c = genericAuthPlugin.passwordResetSettings.code, jwtSecret = _c.jwtSecret, numberOfDigits = _c.numberOfDigits, lifeTime = _c.lifeTime;
62
- return [4 /*yield*/, genericAuthPlugin.passwordResetStart(repo, ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime, genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens)];
63
- case 1:
64
- resp = _e.sent();
65
- if (resp.status != "success") {
66
- return [2 /*return*/, { data: { status: "success", passwordResetToken: resp.passwordResetToken } }];
67
- }
68
- emailCtx = {
69
- code: resp.code,
70
- passwordResetToken: resp.passwordResetToken,
71
- username: req.body.username,
72
- profile: resp.profile,
73
- template: req.body.template,
74
- additionalAuth: req.body.additionalAuth,
75
- resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl
76
- };
77
- emailSettings = genericAuthPlugin.passwordResetSettings.email;
78
- if (typeof emailSettings == "function") {
79
- emailSettings = emailSettings(emailCtx);
80
- }
81
- subject = handlebars_1.default.compile(emailSettings.subject)(emailCtx);
82
- html = handlebars_1.default.compile(emailSettings.html)(emailCtx);
83
- email = req.body.username;
84
- return [4 /*yield*/, ctx.plugins.emailPlugin.client.send({
85
- from: emailSettings.from_address,
86
- to: [email],
87
- subject: subject,
88
- html: html,
89
- })];
90
- case 2:
91
- _e.sent();
92
- return [2 /*return*/, {
93
- data: { status: "success", passwordResetToken: resp.passwordResetToken },
94
- }];
95
- }
39
+ const emailCtx = {
40
+ code: resp.code,
41
+ passwordResetToken: resp.passwordResetToken,
42
+ username: req.body.username,
43
+ profile: resp.profile,
44
+ template: req.body.template,
45
+ additionalAuth: req.body.additionalAuth,
46
+ resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl
47
+ };
48
+ let emailSettings = genericAuthPlugin.passwordResetSettings.email;
49
+ if (typeof emailSettings == "function") {
50
+ emailSettings = emailSettings(emailCtx);
51
+ }
52
+ const subject = _handlebars.default.compile(emailSettings.subject)(emailCtx);
53
+ const html = _handlebars.default.compile(emailSettings.html)(emailCtx);
54
+ const email = req.body.username;
55
+ await ctx.plugins.emailPlugin.client.send({
56
+ from: emailSettings.from_address,
57
+ to: [
58
+ email
59
+ ],
60
+ subject,
61
+ html
96
62
  });
97
- }); };
98
- exports.default = postPasswordResetStartHandler;
99
- exports.__assumedHttpMethod = "", exports.__file = "UserPasswordResetStart.ts", exports.__query = [], exports.__params = [];
63
+ return {
64
+ data: {
65
+ status: "success",
66
+ passwordResetToken: resp.passwordResetToken
67
+ }
68
+ };
69
+ };
70
+ const _default = postPasswordResetStartHandler;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserPasswordResetStart.ts"],"sourcesContent":["import { EmailPluginContext } from \"@flink-app/email-plugin\";\nimport { FlinkContext, Handler, internalServerError } from \"@flink-app/flink\";\nimport { JwtAuthPlugin } from \"@flink-app/jwt-auth-plugin\";\nimport Handlebars from \"handlebars\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserPasswordResetStartReq } from \"../schemas/UserPasswordResetStartReq\";\nimport { UserPasswordResetStartResPublic } from \"../schemas/UserPasswordResetStartResPublic\";\n\nconst postPasswordResetStartHandler: Handler<\n FlinkContext<genericAuthContext & EmailPluginContext>,\n UserPasswordResetStartReq,\n UserPasswordResetStartResPublic\n> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n\n const genericAuthPlugin = (<any>ctx.plugins)[pluginName] as genericAuthContext[\"genericAuthPlugin\"];\n\n let repo = ctx.repos[genericAuthPlugin.repoName];\n\n if (ctx.plugins.emailPlugin?.client == null) {\n return internalServerError(\"Email plugin have to be initialized to use /password/reset\");\n }\n\n if (!genericAuthPlugin.passwordResetSettings) {\n return internalServerError(\"Password reset settings is needed to use /password/reset\");\n }\n\n const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;\n\n const resp = await genericAuthPlugin.passwordResetStart(\n repo,\n <JwtAuthPlugin>ctx.auth,\n jwtSecret,\n req.body.username,\n numberOfDigits,\n lifeTime,\n genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens\n );\n\n if (resp.status != \"success\") {\n return { data: { status: \"success\", passwordResetToken: resp.passwordResetToken } };\n }\n\n const emailCtx = {\n code: resp.code,\n passwordResetToken: resp.passwordResetToken,\n username: req.body.username,\n profile: resp.profile,\n template: req.body.template,\n additionalAuth: req.body.additionalAuth,\n resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl,\n };\n\n let emailSettings = genericAuthPlugin.passwordResetSettings.email;\n\n if (typeof emailSettings == \"function\") {\n emailSettings = emailSettings(emailCtx);\n }\n\n const subject = Handlebars.compile(emailSettings.subject)(emailCtx);\n const html = Handlebars.compile(emailSettings.html)(emailCtx);\n const email = req.body.username;\n\n await ctx.plugins.emailPlugin.client.send({\n from: emailSettings.from_address,\n to: [email],\n subject,\n html,\n });\n\n return {\n data: { status: \"success\", passwordResetToken: resp.passwordResetToken },\n };\n};\n\nexport default postPasswordResetStartHandler;\n"],"names":["postPasswordResetStartHandler","ctx","req","origin","pluginName","genericAuthPlugin","plugins","repo","repos","repoName","emailPlugin","client","internalServerError","passwordResetSettings","jwtSecret","numberOfDigits","lifeTime","code","resp","passwordResetStart","auth","body","username","passwordResetReusableTokens","status","data","passwordResetToken","emailCtx","profile","template","additionalAuth","resetPasswordFormBaseUrl","emailSettings","email","subject","Handlebars","compile","html","send","from","from_address","to"],"mappings":";;;;+BA2EA;;;eAAA;;;uBA1E2D;mEAEpC;;;;;;AAKvB,MAAMA,gCAIF,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;QAOvBF;IANJ,IAAIG,aAAaD,UAAU;IAE3B,MAAME,oBAAoB,AAAMJ,IAAIK,OAAO,AAAC,CAACF,WAAW;IAExD,IAAIG,OAAON,IAAIO,KAAK,CAACH,kBAAkBI,QAAQ,CAAC;IAEhD,IAAIR,EAAAA,2BAAAA,IAAIK,OAAO,CAACI,WAAW,cAAvBT,+CAAAA,yBAAyBU,MAAM,KAAI,MAAM;QACzC,OAAOC,IAAAA,0BAAmB,EAAC;IAC/B;IAEA,IAAI,CAACP,kBAAkBQ,qBAAqB,EAAE;QAC1C,OAAOD,IAAAA,0BAAmB,EAAC;IAC/B;IAEA,MAAM,EAAEE,SAAS,EAAEC,cAAc,EAAEC,QAAQ,EAAE,GAAGX,kBAAkBQ,qBAAqB,CAACI,IAAI;IAE5F,MAAMC,OAAO,MAAMb,kBAAkBc,kBAAkB,CACnDZ,MACeN,IAAImB,IAAI,EACvBN,WACAZ,IAAImB,IAAI,CAACC,QAAQ,EACjBP,gBACAC,UACAX,kBAAkBQ,qBAAqB,CAACU,2BAA2B;IAGvE,IAAIL,KAAKM,MAAM,IAAI,WAAW;QAC1B,OAAO;YAAEC,MAAM;gBAAED,QAAQ;gBAAWE,oBAAoBR,KAAKQ,kBAAkB;YAAC;QAAE;IACtF;IAEA,MAAMC,WAAW;QACbV,MAAMC,KAAKD,IAAI;QACfS,oBAAoBR,KAAKQ,kBAAkB;QAC3CJ,UAAUpB,IAAImB,IAAI,CAACC,QAAQ;QAC3BM,SAASV,KAAKU,OAAO;QACrBC,UAAU3B,IAAImB,IAAI,CAACQ,QAAQ;QAC3BC,gBAAgB5B,IAAImB,IAAI,CAACS,cAAc;QACvCC,0BAA0B1B,kBAAkBQ,qBAAqB,CAACkB,wBAAwB;IAC9F;IAEA,IAAIC,gBAAgB3B,kBAAkBQ,qBAAqB,CAACoB,KAAK;IAEjE,IAAI,OAAOD,iBAAiB,YAAY;QACpCA,gBAAgBA,cAAcL;IAClC;IAEA,MAAMO,UAAUC,mBAAU,CAACC,OAAO,CAACJ,cAAcE,OAAO,EAAEP;IAC1D,MAAMU,OAAOF,mBAAU,CAACC,OAAO,CAACJ,cAAcK,IAAI,EAAEV;IACpD,MAAMM,QAAQ/B,IAAImB,IAAI,CAACC,QAAQ;IAE/B,MAAMrB,IAAIK,OAAO,CAACI,WAAW,CAACC,MAAM,CAAC2B,IAAI,CAAC;QACtCC,MAAMP,cAAcQ,YAAY;QAChCC,IAAI;YAACR;SAAM;QACXC;QACAG;IACJ;IAEA,OAAO;QACHZ,MAAM;YAAED,QAAQ;YAAWE,oBAAoBR,KAAKQ,kBAAkB;QAAC;IAC3E;AACJ;MAEA,WAAe1B"}
@@ -3,4 +3,4 @@ import { genericAuthContext } from "../genericAuthContext";
3
3
  import { UserProfile } from "../schemas/UserProfile";
4
4
  declare const getProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile>;
5
5
  export default getProfileHandler;
6
- export declare const __assumedHttpMethod = "", __file = "UserProfileGet.ts", __query: never[], __params: never[];
6
+ export declare const __assumedHttpMethod = "", __file = "src/handlers/UserProfileGet.ts", __query: never[], __params: never[];
@@ -1,63 +1,24 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _flink = require("@flink-app/flink");
12
+ const getProfileHandler = async ({ ctx, req, origin })=>{
13
+ let pluginName = origin || "genericAuthPlugin";
14
+ let repo = ctx.repos[ctx.plugins[pluginName].repoName];
15
+ let userId = req.user._id;
16
+ let user = await repo.getById(userId);
17
+ if (user == null) {
18
+ return (0, _flink.notFound)();
36
19
  }
20
+ return {
21
+ data: user.profile
22
+ };
37
23
  };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
40
- var flink_1 = require("@flink-app/flink");
41
- var getProfileHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
42
- var pluginName, repo, userId, user;
43
- var ctx = _b.ctx, req = _b.req, origin = _b.origin;
44
- return __generator(this, function (_c) {
45
- switch (_c.label) {
46
- case 0:
47
- pluginName = origin || "genericAuthPlugin";
48
- repo = ctx.repos[ctx.plugins[pluginName].repoName];
49
- userId = req.user._id;
50
- return [4 /*yield*/, repo.getById(userId)];
51
- case 1:
52
- user = _c.sent();
53
- if (user == null) {
54
- return [2 /*return*/, (0, flink_1.notFound)()];
55
- }
56
- return [2 /*return*/, {
57
- data: user.profile,
58
- }];
59
- }
60
- });
61
- }); };
62
- exports.default = getProfileHandler;
63
- exports.__assumedHttpMethod = "", exports.__file = "UserProfileGet.ts", exports.__query = [], exports.__params = [];
24
+ const _default = getProfileHandler;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserProfileGet.ts"],"sourcesContent":["import { FlinkContext, Handler, notFound } from \"@flink-app/flink\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserProfile } from \"../schemas/UserProfile\";\n\nconst getProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];\n\n let userId = req.user._id;\n let user = await repo.getById(userId);\n if (user == null) {\n return notFound();\n }\n\n return {\n data: user.profile,\n };\n};\n\nexport default getProfileHandler;\n"],"names":["getProfileHandler","ctx","req","origin","pluginName","repo","repos","plugins","repoName","userId","user","_id","getById","notFound","data","profile"],"mappings":";;;;+BAmBA;;;eAAA;;;uBAnBgD;AAIhD,MAAMA,oBAA4E,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;IACzG,IAAIC,aAAaD,UAAU;IAC3B,IAAIE,OAAOJ,IAAIK,KAAK,CAAC,AAAML,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACI,QAAQ,CAAC;IAE7D,IAAIC,SAASP,IAAIQ,IAAI,CAACC,GAAG;IACzB,IAAID,OAAO,MAAML,KAAKO,OAAO,CAACH;IAC9B,IAAIC,QAAQ,MAAM;QACd,OAAOG,IAAAA,eAAQ;IACnB;IAEA,OAAO;QACHC,MAAMJ,KAAKK,OAAO;IACtB;AACJ;MAEA,WAAef"}
@@ -3,4 +3,4 @@ import { genericAuthContext } from "../genericAuthContext";
3
3
  import { UserProfile } from "../schemas/UserProfile";
4
4
  declare const putUserProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile, UserProfile>;
5
5
  export default putUserProfileHandler;
6
- export declare const __assumedHttpMethod = "", __file = "UserProfilePut.ts", __query: never[], __params: never[];
6
+ export declare const __assumedHttpMethod = "", __file = "src/handlers/UserProfilePut.ts", __query: never[], __params: never[];
@@ -1,86 +1,60 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _flink = require("@flink-app/flink");
12
+ function _define_property(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
22
+ }
23
+ return obj;
24
+ }
25
+ function _object_spread(target) {
26
+ for(var i = 1; i < arguments.length; i++){
27
+ var source = arguments[i] != null ? arguments[i] : {};
28
+ var ownKeys = Object.keys(source);
29
+ if (typeof Object.getOwnPropertySymbols === "function") {
30
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
31
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
32
+ }));
8
33
  }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
34
+ ownKeys.forEach(function(key) {
35
+ _define_property(target, key, source[key]);
36
+ });
37
+ }
38
+ return target;
39
+ }
40
+ const putUserProfileHandler = async ({ ctx, req, origin })=>{
41
+ let pluginName = origin || "genericAuthPlugin";
42
+ let repo = ctx.repos[ctx.plugins[pluginName].repoName];
43
+ let userId = req.user._id;
44
+ let user = await repo.getById(userId);
45
+ if (user == null) {
46
+ return (0, _flink.notFound)();
47
+ }
48
+ const updatedProfile = _object_spread({}, user.profile, req.body);
49
+ await repo.updateById(userId, {
50
+ profile: updatedProfile
20
51
  });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
52
+ user = await repo.getById(userId);
53
+ if (ctx.plugins[pluginName].onUserUpdated) {
54
+ await ctx.plugins[pluginName].onUserUpdated(user, req.body);
47
55
  }
56
+ return {
57
+ data: user.profile
58
+ };
48
59
  };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
51
- var flink_1 = require("@flink-app/flink");
52
- var putUserProfileHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
53
- var pluginName, repo, userId, user, updatedProfile;
54
- var ctx = _b.ctx, req = _b.req, origin = _b.origin;
55
- return __generator(this, function (_c) {
56
- switch (_c.label) {
57
- case 0:
58
- pluginName = origin || "genericAuthPlugin";
59
- repo = ctx.repos[ctx.plugins[pluginName].repoName];
60
- userId = req.user._id;
61
- return [4 /*yield*/, repo.getById(userId)];
62
- case 1:
63
- user = _c.sent();
64
- if (user == null) {
65
- return [2 /*return*/, (0, flink_1.notFound)()];
66
- }
67
- updatedProfile = __assign(__assign({}, user.profile), req.body);
68
- return [4 /*yield*/, repo.updateOne(userId, { profile: updatedProfile })];
69
- case 2:
70
- _c.sent();
71
- return [4 /*yield*/, repo.getById(userId)];
72
- case 3:
73
- user = _c.sent();
74
- if (!ctx.plugins[pluginName].onUserUpdated) return [3 /*break*/, 5];
75
- return [4 /*yield*/, ctx.plugins[pluginName].onUserUpdated(user, req.body)];
76
- case 4:
77
- _c.sent();
78
- _c.label = 5;
79
- case 5: return [2 /*return*/, {
80
- data: user.profile,
81
- }];
82
- }
83
- });
84
- }); };
85
- exports.default = putUserProfileHandler;
86
- exports.__assumedHttpMethod = "", exports.__file = "UserProfilePut.ts", exports.__query = [], exports.__params = [];
60
+ const _default = putUserProfileHandler;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserProfilePut.ts"],"sourcesContent":["import { FlinkContext, Handler, notFound } from \"@flink-app/flink\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserProfile } from \"../schemas/UserProfile\";\n\nconst putUserProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile, UserProfile> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];\n\n let userId = req.user._id;\n let user = await repo.getById(userId);\n if (user == null) {\n return notFound();\n }\n\n const updatedProfile = {\n ...user.profile,\n ...req.body,\n };\n\n await repo.updateById(userId, { profile: updatedProfile });\n\n user = await repo.getById(userId);\n\n if ((<any>ctx.plugins)[pluginName].onUserUpdated) {\n await (<any>ctx.plugins)[pluginName].onUserUpdated(user, req.body);\n }\n\n return {\n data: user.profile,\n };\n};\n\nexport default putUserProfileHandler;\n"],"names":["putUserProfileHandler","ctx","req","origin","pluginName","repo","repos","plugins","repoName","userId","user","_id","getById","notFound","updatedProfile","profile","body","updateById","onUserUpdated","data"],"mappings":";;;;+BAgCA;;;eAAA;;;uBAhCgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIhD,MAAMA,wBAA6F,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;IAC1H,IAAIC,aAAaD,UAAU;IAC3B,IAAIE,OAAOJ,IAAIK,KAAK,CAAC,AAAML,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACI,QAAQ,CAAC;IAE7D,IAAIC,SAASP,IAAIQ,IAAI,CAACC,GAAG;IACzB,IAAID,OAAO,MAAML,KAAKO,OAAO,CAACH;IAC9B,IAAIC,QAAQ,MAAM;QACd,OAAOG,IAAAA,eAAQ;IACnB;IAEA,MAAMC,iBAAiB,mBAChBJ,KAAKK,OAAO,EACZb,IAAIc,IAAI;IAGf,MAAMX,KAAKY,UAAU,CAACR,QAAQ;QAAEM,SAASD;IAAe;IAExDJ,OAAO,MAAML,KAAKO,OAAO,CAACH;IAE1B,IAAI,AAAMR,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACc,aAAa,EAAE;QAC9C,MAAM,AAAMjB,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACc,aAAa,CAACR,MAAMR,IAAIc,IAAI;IACrE;IAEA,OAAO;QACHG,MAAMT,KAAKK,OAAO;IACtB;AACJ;MAEA,WAAef"}
@@ -4,4 +4,4 @@ import { PushNotificationToken } from "../schemas/PushNotificationToken";
4
4
  import { PushNotificatioNTokenRes } from "../schemas/PushNotificationTokenRes";
5
5
  declare const postUserPushRegisterTokenHandler: Handler<FlinkContext<genericAuthContext>, PushNotificationToken, PushNotificatioNTokenRes>;
6
6
  export default postUserPushRegisterTokenHandler;
7
- export declare const __assumedHttpMethod = "", __file = "UserPushRegisterToken.ts", __query: never[], __params: never[];
7
+ export declare const __assumedHttpMethod = "", __file = "src/handlers/UserPushRegisterToken.ts", __query: never[], __params: never[];