@taon-dev/session 21.0.207

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 (196) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -0
  2. package/assets/shared/shared_folder_info.txt +7 -0
  3. package/browser/README.md +24 -0
  4. package/browser/fesm2022/session-browser.mjs +1390 -0
  5. package/browser/fesm2022/session-browser.mjs.map +1 -0
  6. package/browser/package.json +23 -0
  7. package/browser/types/session-browser.d.ts +548 -0
  8. package/browser-prod/README.md +24 -0
  9. package/browser-prod/fesm2022/session-browser-prod.mjs +1392 -0
  10. package/browser-prod/fesm2022/session-browser-prod.mjs.map +1 -0
  11. package/browser-prod/package.json +23 -0
  12. package/browser-prod/types/session-browser-prod.d.ts +545 -0
  13. package/browser-prod.re-export.json +1 -0
  14. package/browser-prod.split-namespaces.json +14 -0
  15. package/cli.d.ts +1 -0
  16. package/cli.js +8 -0
  17. package/cli.js.map +1 -0
  18. package/index.d.ts +1 -0
  19. package/index.js +18 -0
  20. package/index.js.map +1 -0
  21. package/lib/build-info._auto-generated_.d.ts +24 -0
  22. package/lib/build-info._auto-generated_.js +30 -0
  23. package/lib/build-info._auto-generated_.js.map +1 -0
  24. package/lib/env/env.angular-node-app.d.ts +67 -0
  25. package/lib/env/env.angular-node-app.js +141 -0
  26. package/lib/env/env.angular-node-app.js.map +1 -0
  27. package/lib/env/env.docs-webapp.d.ts +67 -0
  28. package/lib/env/env.docs-webapp.js +141 -0
  29. package/lib/env/env.docs-webapp.js.map +1 -0
  30. package/lib/env/env.electron-app.d.ts +67 -0
  31. package/lib/env/env.electron-app.js +141 -0
  32. package/lib/env/env.electron-app.js.map +1 -0
  33. package/lib/env/env.mobile-app.d.ts +67 -0
  34. package/lib/env/env.mobile-app.js +141 -0
  35. package/lib/env/env.mobile-app.js.map +1 -0
  36. package/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  37. package/lib/env/env.npm-lib-and-cli-tool.js +141 -0
  38. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  39. package/lib/env/env.vscode-plugin.d.ts +67 -0
  40. package/lib/env/env.vscode-plugin.js +141 -0
  41. package/lib/env/env.vscode-plugin.js.map +1 -0
  42. package/lib/env/index.d.ts +6 -0
  43. package/lib/env/index.js +23 -0
  44. package/lib/env/index.js.map +1 -0
  45. package/lib/index._auto-generated_.d.ts +14 -0
  46. package/lib/index._auto-generated_.js +36 -0
  47. package/lib/index._auto-generated_.js.map +1 -0
  48. package/lib/index.d.ts +4 -0
  49. package/lib/index.js +21 -0
  50. package/lib/index.js.map +1 -0
  51. package/lib/migrations/index.d.ts +1 -0
  52. package/lib/migrations/index.js +19 -0
  53. package/lib/migrations/index.js.map +1 -0
  54. package/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
  55. package/lib/migrations/migrations_index._auto-generated_.js +4 -0
  56. package/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
  57. package/lib/my-organization-proj.d.ts +1 -0
  58. package/lib/my-organization-proj.js +6 -0
  59. package/lib/my-organization-proj.js.map +1 -0
  60. package/lib/package.json +4 -0
  61. package/lib/start-cli.d.ts +7 -0
  62. package/lib/start-cli.js +46 -0
  63. package/lib/start-cli.js.map +1 -0
  64. package/lib/taon-session/index.d.ts +11 -0
  65. package/lib/taon-session/index.js +28 -0
  66. package/lib/taon-session/index.js.map +1 -0
  67. package/lib/taon-session/taon-session/index.d.ts +1 -0
  68. package/lib/taon-session/taon-session/index.js +5 -0
  69. package/lib/taon-session/taon-session/index.js.map +1 -0
  70. package/lib/taon-session/taon-session/taon-session.component.d.ts +14 -0
  71. package/lib/taon-session/taon-session-api.service.d.ts +9 -0
  72. package/lib/taon-session/taon-session-kv.repository.d.ts +11 -0
  73. package/lib/taon-session/taon-session-kv.repository.js +78 -0
  74. package/lib/taon-session/taon-session-kv.repository.js.map +1 -0
  75. package/lib/taon-session/taon-session-user.entity.d.ts +5 -0
  76. package/lib/taon-session/taon-session-user.entity.js +43 -0
  77. package/lib/taon-session/taon-session-user.entity.js.map +1 -0
  78. package/lib/taon-session/taon-session-user.repository.d.ts +5 -0
  79. package/lib/taon-session/taon-session-user.repository.js +23 -0
  80. package/lib/taon-session/taon-session-user.repository.js.map +1 -0
  81. package/lib/taon-session/taon-session.abstract.context.d.ts +19 -0
  82. package/lib/taon-session/taon-session.abstract.context.js +24 -0
  83. package/lib/taon-session/taon-session.abstract.context.js.map +1 -0
  84. package/lib/taon-session/taon-session.controller.d.ts +14 -0
  85. package/lib/taon-session/taon-session.controller.js +170 -0
  86. package/lib/taon-session/taon-session.controller.js.map +1 -0
  87. package/lib/taon-session/taon-session.middleware.d.ts +8 -0
  88. package/lib/taon-session/taon-session.middleware.js +44 -0
  89. package/lib/taon-session/taon-session.middleware.js.map +1 -0
  90. package/lib/taon-session/taon-session.models.d.ts +8 -0
  91. package/lib/taon-session/taon-session.models.js +9 -0
  92. package/lib/taon-session/taon-session.models.js.map +1 -0
  93. package/lib/taon-session/taon-session.provider.d.ts +7 -0
  94. package/lib/taon-session/taon-session.provider.js +25 -0
  95. package/lib/taon-session/taon-session.provider.js.map +1 -0
  96. package/lib/taon-session/taon-session.utils.d.ts +1 -0
  97. package/lib/taon-session/taon-session.utils.js +3 -0
  98. package/lib/taon-session/taon-session.utils.js.map +1 -0
  99. package/lib-prod/build-info._auto-generated_.d.ts +24 -0
  100. package/lib-prod/build-info._auto-generated_.js +27 -0
  101. package/lib-prod/build-info._auto-generated_.js.map +1 -0
  102. package/lib-prod/env/env.angular-node-app.d.ts +67 -0
  103. package/lib-prod/env/env.angular-node-app.js +137 -0
  104. package/lib-prod/env/env.angular-node-app.js.map +1 -0
  105. package/lib-prod/env/env.docs-webapp.d.ts +67 -0
  106. package/lib-prod/env/env.docs-webapp.js +137 -0
  107. package/lib-prod/env/env.docs-webapp.js.map +1 -0
  108. package/lib-prod/env/env.electron-app.d.ts +67 -0
  109. package/lib-prod/env/env.electron-app.js +137 -0
  110. package/lib-prod/env/env.electron-app.js.map +1 -0
  111. package/lib-prod/env/env.mobile-app.d.ts +67 -0
  112. package/lib-prod/env/env.mobile-app.js +137 -0
  113. package/lib-prod/env/env.mobile-app.js.map +1 -0
  114. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  115. package/lib-prod/env/env.npm-lib-and-cli-tool.js +137 -0
  116. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
  117. package/lib-prod/env/env.vscode-plugin.d.ts +67 -0
  118. package/lib-prod/env/env.vscode-plugin.js +137 -0
  119. package/lib-prod/env/env.vscode-plugin.js.map +1 -0
  120. package/lib-prod/env/index.d.ts +6 -0
  121. package/lib-prod/env/index.js +7 -0
  122. package/lib-prod/env/index.js.map +1 -0
  123. package/lib-prod/index._auto-generated_.d.ts +12 -0
  124. package/lib-prod/index._auto-generated_.js +20 -0
  125. package/lib-prod/index._auto-generated_.js.map +1 -0
  126. package/lib-prod/index.d.ts +4 -0
  127. package/lib-prod/index.js +5 -0
  128. package/lib-prod/index.js.map +1 -0
  129. package/lib-prod/migrations/index.d.ts +1 -0
  130. package/lib-prod/migrations/index.js +3 -0
  131. package/lib-prod/migrations/index.js.map +1 -0
  132. package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +0 -0
  133. package/lib-prod/migrations/migrations_index._auto-generated_.js +4 -0
  134. package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -0
  135. package/lib-prod/my-organization-proj.d.ts +1 -0
  136. package/lib-prod/my-organization-proj.js +3 -0
  137. package/lib-prod/my-organization-proj.js.map +1 -0
  138. package/lib-prod/package.json +4 -0
  139. package/lib-prod/start-cli.d.ts +7 -0
  140. package/lib-prod/start-cli.js +43 -0
  141. package/lib-prod/start-cli.js.map +1 -0
  142. package/lib-prod/taon-session/index.d.ts +10 -0
  143. package/lib-prod/taon-session/index.js +12 -0
  144. package/lib-prod/taon-session/index.js.map +1 -0
  145. package/lib-prod/taon-session/taon-session/index.d.ts +1 -0
  146. package/lib-prod/taon-session/taon-session/index.js +2 -0
  147. package/lib-prod/taon-session/taon-session/index.js.map +1 -0
  148. package/lib-prod/taon-session/taon-session-kv.repository.d.ts +11 -0
  149. package/lib-prod/taon-session/taon-session-kv.repository.js +69 -0
  150. package/lib-prod/taon-session/taon-session-kv.repository.js.map +1 -0
  151. package/lib-prod/taon-session/taon-session-user.entity.d.ts +5 -0
  152. package/lib-prod/taon-session/taon-session-user.entity.js +31 -0
  153. package/lib-prod/taon-session/taon-session-user.entity.js.map +1 -0
  154. package/lib-prod/taon-session/taon-session-user.repository.d.ts +5 -0
  155. package/lib-prod/taon-session/taon-session-user.repository.js +14 -0
  156. package/lib-prod/taon-session/taon-session-user.repository.js.map +1 -0
  157. package/lib-prod/taon-session/taon-session.abstract.context.d.ts +19 -0
  158. package/lib-prod/taon-session/taon-session.abstract.context.js +21 -0
  159. package/lib-prod/taon-session/taon-session.abstract.context.js.map +1 -0
  160. package/lib-prod/taon-session/taon-session.controller.d.ts +14 -0
  161. package/lib-prod/taon-session/taon-session.controller.js +154 -0
  162. package/lib-prod/taon-session/taon-session.controller.js.map +1 -0
  163. package/lib-prod/taon-session/taon-session.middleware.d.ts +8 -0
  164. package/lib-prod/taon-session/taon-session.middleware.js +35 -0
  165. package/lib-prod/taon-session/taon-session.middleware.js.map +1 -0
  166. package/lib-prod/taon-session/taon-session.models.d.ts +6 -0
  167. package/lib-prod/taon-session/taon-session.models.js +5 -0
  168. package/lib-prod/taon-session/taon-session.models.js.map +1 -0
  169. package/lib-prod/taon-session/taon-session.provider.d.ts +7 -0
  170. package/lib-prod/taon-session/taon-session.provider.js +16 -0
  171. package/lib-prod/taon-session/taon-session.provider.js.map +1 -0
  172. package/lib-prod/taon-session/taon-session.utils.d.ts +1 -0
  173. package/lib-prod/taon-session/taon-session.utils.js +4 -0
  174. package/lib-prod/taon-session/taon-session.utils.js.map +1 -0
  175. package/lib-prod.re-export.json +1 -0
  176. package/lib-prod.split-namespaces.json +14 -0
  177. package/package.json +36 -0
  178. package/scss/global.scss +93 -0
  179. package/scss/index.scss +2 -0
  180. package/scss/lib/index.scss +1 -0
  181. package/scss/lib/taon-session/taon-session/taon-session.component.scss +3 -0
  182. package/scss/vars.scss +7 -0
  183. package/src.d.ts +6 -0
  184. package/src.js +20 -0
  185. package/websql/README.md +24 -0
  186. package/websql/fesm2022/session-websql.mjs +1402 -0
  187. package/websql/fesm2022/session-websql.mjs.map +1 -0
  188. package/websql/package.json +23 -0
  189. package/websql/types/session-websql.d.ts +548 -0
  190. package/websql-prod/README.md +24 -0
  191. package/websql-prod/fesm2022/session-websql-prod.mjs +1404 -0
  192. package/websql-prod/fesm2022/session-websql-prod.mjs.map +1 -0
  193. package/websql-prod/package.json +23 -0
  194. package/websql-prod/types/session-websql-prod.d.ts +545 -0
  195. package/websql-prod.re-export.json +1 -0
  196. package/websql-prod.split-namespaces.json +14 -0
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaonSessionKvRepository = void 0;
10
+ //#region imports
11
+ const crypto = require("crypto"); // @backend
12
+ const jwt = require("jsonwebtoken"); // @backend
13
+ const lib_1 = require("taon/lib");
14
+ const taon_session_provider_1 = require("./taon-session.provider");
15
+ //#endregion
16
+ let TaonSessionKvRepository = class TaonSessionKvRepository extends lib_1.TaonBaseKvRepository {
17
+ taonSessionProvider = this.injectProvider(taon_session_provider_1.TaonSessionProvider);
18
+ createAccessToken(userId) {
19
+ //#region @backendFunc
20
+ return jwt.sign({ userId }, this.taonSessionProvider.ACCESS_TOKEN_SECRET, {
21
+ expiresIn: this.taonSessionProvider.ACCESS_TOKEN_EXPIRES,
22
+ });
23
+ //#endregion
24
+ }
25
+ createRefreshToken(userId) {
26
+ //#region @backendFunc
27
+ const rtId = crypto.randomUUID();
28
+ const expiresAt = Date.now() +
29
+ this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS * 1000;
30
+ this.set(rtId, { userId, expiresAt });
31
+ const token = jwt.sign({ rtId }, this.taonSessionProvider.REFRESH_TOKEN_SECRET, {
32
+ expiresIn: this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS,
33
+ });
34
+ return token;
35
+ //#endregion
36
+ }
37
+ setAuthCookies(res, accessToken, refreshToken) {
38
+ //#region @backendFunc
39
+ res.cookie('accessToken', accessToken, {
40
+ httpOnly: true,
41
+ secure: false, // set true in production (HTTPS)
42
+ sameSite: 'lax',
43
+ path: '/',
44
+ maxAge: 1000 * 60 * 15,
45
+ });
46
+ res.cookie('refreshToken', refreshToken, {
47
+ httpOnly: true,
48
+ secure: false,
49
+ sameSite: 'strict',
50
+ path: '/refresh',
51
+ maxAge: 1000 * this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS,
52
+ });
53
+ //#endregion
54
+ }
55
+ clearAuthCookies(res) {
56
+ //#region @backendFunc
57
+ res.cookie('accessToken', '', { maxAge: 0 });
58
+ res.cookie('refreshToken', '', { maxAge: 0 });
59
+ //#endregion
60
+ }
61
+ getTokenFromRequest(req) {
62
+ //#region @backendFunc
63
+ const cookieToken = req.cookies?.accessToken;
64
+ const authHeader = req.headers['authorization'];
65
+ const headerToken = authHeader && authHeader.startsWith('Bearer ')
66
+ ? authHeader.slice(7)
67
+ : null;
68
+ return cookieToken || headerToken || null;
69
+ //#endregion
70
+ }
71
+ };
72
+ exports.TaonSessionKvRepository = TaonSessionKvRepository;
73
+ exports.TaonSessionKvRepository = TaonSessionKvRepository = __decorate([
74
+ (0, lib_1.TaonRepository)({
75
+ className: 'TaonSessionKvRepository',
76
+ })
77
+ ], TaonSessionKvRepository);
78
+ //# sourceMappingURL=taon-session-kv.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session-kv.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,iCAAiC,CAAC,WAAW;AAG7C,oCAAoC,CAAC,WAAW;AAChD,kCAAgE;AAEhE,mEAA8D;AAE9D,YAAY;AAKL,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,0BAAoB;IAC/D,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,2CAAmB,CAAC,CAAC;IAExD,iBAAiB,CAAC,MAAc;QACrC,sBAAsB;QACtB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;YACxE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,oBAAoB;SACzD,CAAC,CAAC;QACH,YAAY;IACd,CAAC;IAEM,kBAAkB,CAAC,MAAc;QACtC,sBAAsB;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,GAAG,IAAI,CAAC;QAEhE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CACpB,EAAE,IAAI,EAAE,EACR,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAC7C;YACE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,6BAA6B;SAClE,CACF,CAAC;QAEF,OAAO,KAAK,CAAC;QACb,YAAY;IACd,CAAC;IAEM,cAAc,CACnB,GAAqB,EACrB,WAAmB,EACnB,YAAoB;QAEpB,sBAAsB;QACtB,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE;YACrC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK,EAAE,iCAAiC;YAChD,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE;SACvB,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE;YACvC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,6BAA6B;SACtE,CAAC,CAAC;QACH,YAAY;IACd,CAAC;IAEM,gBAAgB,CAAC,GAAqB;QAC3C,sBAAsB;QACtB,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,YAAY;IACd,CAAC;IAEM,mBAAmB,CAAC,GAAoB;QAC7C,sBAAsB;QACtB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;QAE7C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,WAAW,GACf,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO,WAAW,IAAI,WAAW,IAAI,IAAI,CAAC;QAC1C,YAAY;IACd,CAAC;CACF,CAAA;AA7EY,0DAAuB;kCAAvB,uBAAuB;IAHnC,IAAA,oBAAc,EAAC;QACd,SAAS,EAAE,yBAAyB;KACrC,CAAC;GACW,uBAAuB,CA6EnC"}
@@ -0,0 +1,5 @@
1
+ import { TaonBaseAbstractEntity } from 'taon';
2
+ export declare class TaonSessionUser extends TaonBaseAbstractEntity<TaonSessionUser> {
3
+ email?: string;
4
+ password?: string;
5
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TaonSessionUser = void 0;
13
+ //#region imports
14
+ const lib_1 = require("taon/lib");
15
+ //#endregion
16
+ let TaonSessionUser = class TaonSessionUser extends lib_1.TaonBaseAbstractEntity {
17
+ //#region @websql
18
+ //#endregion
19
+ email;
20
+ //#region @websql
21
+ //#endregion
22
+ password;
23
+ };
24
+ exports.TaonSessionUser = TaonSessionUser;
25
+ __decorate([
26
+ (0, lib_1.String45Column)()
27
+ //#endregion
28
+ ,
29
+ __metadata("design:type", String)
30
+ ], TaonSessionUser.prototype, "email", void 0);
31
+ __decorate([
32
+ (0, lib_1.String500Column)()
33
+ //#endregion
34
+ ,
35
+ __metadata("design:type", String)
36
+ ], TaonSessionUser.prototype, "password", void 0);
37
+ exports.TaonSessionUser = TaonSessionUser = __decorate([
38
+ (0, lib_1.TaonEntity)({
39
+ className: 'TaonSessionUser',
40
+ createTable: true,
41
+ })
42
+ ], TaonSessionUser);
43
+ //# sourceMappingURL=taon-session-user.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session-user.entity.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;AAAA,iBAAiB;AACjB,kCASkB;AAGlB,YAAY;AAML,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,4BAAuC;IAC1E,iBAAiB;IAGjB,AADA,YAAY;IACZ,KAAK,CAAU;IAEf,iBAAiB;IAGjB,AADA,YAAY;IACZ,QAAQ,CAAU;CACnB,CAAA;AAVY,0CAAe;AAI1B;IAFC,IAAA,oBAAc,GAAE;IACjB,YAAY;;;8CACG;AAKf;IAFC,IAAA,qBAAe,GAAE;IAClB,YAAY;;;iDACM;0BATP,eAAe;IAJ3B,IAAA,gBAAU,EAAC;QACV,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,IAAI;KAClB,CAAC;GACW,eAAe,CAU3B"}
@@ -0,0 +1,5 @@
1
+ import { TaonBaseRepository } from 'taon';
2
+ import { TaonSessionUser } from './taon-session-user.entity';
3
+ export declare class TaonSessionUserRepository extends TaonBaseRepository<TaonSessionUser> {
4
+ entityClassResolveFn: () => typeof TaonSessionUser;
5
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaonSessionUserRepository = void 0;
10
+ //#region imports
11
+ const lib_1 = require("taon/lib");
12
+ const taon_session_user_entity_1 = require("./taon-session-user.entity");
13
+ //#endregion
14
+ let TaonSessionUserRepository = class TaonSessionUserRepository extends lib_1.TaonBaseRepository {
15
+ entityClassResolveFn = () => taon_session_user_entity_1.TaonSessionUser;
16
+ };
17
+ exports.TaonSessionUserRepository = TaonSessionUserRepository;
18
+ exports.TaonSessionUserRepository = TaonSessionUserRepository = __decorate([
19
+ (0, lib_1.TaonRepository)({
20
+ className: 'TaonSessionUserRepository',
21
+ })
22
+ ], TaonSessionUserRepository);
23
+ //# sourceMappingURL=taon-session-user.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session-user.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,kCAA8D;AAG9D,yEAA6D;AAC7D,YAAY;AAKL,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,wBAAmC;IAChF,oBAAoB,GAAiC,GAAG,EAAE,CAAC,0CAAe,CAAC;CAC5E,CAAA;AAFY,8DAAyB;oCAAzB,yBAAyB;IAHrC,IAAA,oBAAc,EAAC;QACd,SAAS,EAAE,2BAA2B;KACvC,CAAC;GACW,yBAAyB,CAErC"}
@@ -0,0 +1,19 @@
1
+ export declare const TaonSessionContext: {
2
+ readonly contextName: string;
3
+ readonly appId: string;
4
+ cloneAsRemote: (cloneOpt?: {
5
+ overrideRemoteHost?: string;
6
+ }) => /*elided*/ any;
7
+ cloneAsNormal: (cloneOpt?: {
8
+ overrideHost?: string;
9
+ }) => /*elided*/ any;
10
+ __ref(): Promise<import("taon/source").EndpointContext>;
11
+ readonly __refSync: import("taon/source").EndpointContext;
12
+ getClassInstance<T>(ctor: new (...args: any[]) => T): T;
13
+ getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T;
14
+ initialize: (overrideOptions?: import("taon/source").Models.TaonInitializeParams) => Promise<import("taon/source").EndpointContext>;
15
+ readonly realtime: {
16
+ readonly client: import("taon/source").RealtimeClient;
17
+ readonly server: import("taon/source").RealtimeServer;
18
+ };
19
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaonSessionContext = void 0;
4
+ //#region imports
5
+ const lib_1 = require("taon/lib");
6
+ const taon_session_kv_repository_1 = require("./taon-session-kv.repository");
7
+ const taon_session_user_entity_1 = require("./taon-session-user.entity");
8
+ const taon_session_user_repository_1 = require("./taon-session-user.repository");
9
+ const taon_session_controller_1 = require("./taon-session.controller");
10
+ const taon_session_middleware_1 = require("./taon-session.middleware");
11
+ const taon_session_provider_1 = require("./taon-session.provider");
12
+ //#endregion
13
+ exports.TaonSessionContext = (0, lib_1.createContext)(() => ({
14
+ contextName: 'TaonSessionContext',
15
+ abstract: true,
16
+ contexts: { TaonBaseContext: lib_1.TaonBaseContext },
17
+ entities: { TaonSessionUser: taon_session_user_entity_1.TaonSessionUser },
18
+ controllers: { TaonSessionController: taon_session_controller_1.TaonSessionController },
19
+ repositories: { TaonSessionKvRepository: taon_session_kv_repository_1.TaonSessionKvRepository, TaonSessionUserRepository: taon_session_user_repository_1.TaonSessionUserRepository },
20
+ providers: { TaonSessionProvider: taon_session_provider_1.TaonSessionProvider },
21
+ middlewares: { TaonSessionMiddleware: taon_session_middleware_1.TaonSessionMiddleware },
22
+ subscribers: {},
23
+ }));
24
+ //# sourceMappingURL=taon-session.abstract.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.abstract.context.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,kCAA0D;AAE1D,6EAAuE;AACvE,yEAA6D;AAC7D,iFAA2E;AAC3E,uEAAkE;AAClE,uEAAkE;AAClE,mEAA8D;AAC9D,YAAY;AAEC,QAAA,kBAAkB,GAAG,IAAA,mBAAa,EAAC,GAAG,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAf,qBAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,eAAe,EAAf,0CAAe,EAAE;IAC7B,WAAW,EAAE,EAAE,qBAAqB,EAArB,+CAAqB,EAAE;IACtC,YAAY,EAAE,EAAE,uBAAuB,EAAvB,oDAAuB,EAAE,yBAAyB,EAAzB,wDAAyB,EAAE;IACpE,SAAS,EAAE,EAAE,mBAAmB,EAAnB,2CAAmB,EAAE;IAClC,WAAW,EAAE,EAAE,qBAAqB,EAArB,+CAAqB,EAAE;IACtC,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Taon, TaonBaseController } from 'taon';
2
+ import { TaonSessionKvRepository } from './taon-session-kv.repository';
3
+ import { TaonSessionUserRepository } from './taon-session-user.repository';
4
+ import { TaonSession } from './taon-session.models';
5
+ import { TaonSessionProvider } from './taon-session.provider';
6
+ export declare class TaonSessionController extends TaonBaseController {
7
+ taonSessionKvRepository: TaonSessionKvRepository;
8
+ taonSessionProvider: TaonSessionProvider;
9
+ taonSessionUserRepository: TaonSessionUserRepository;
10
+ login(data: TaonSession.TaonLoginData): Taon.Response<boolean>;
11
+ refresh(): Taon.Response<boolean>;
12
+ logout(): Taon.Response<boolean>;
13
+ me(): Taon.Response<string>;
14
+ }
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TaonSessionController = void 0;
16
+ //#region imports
17
+ const jsonwebtoken_1 = require("jsonwebtoken"); // @backend
18
+ const lib_1 = require("taon/lib");
19
+ const taon_session_kv_repository_1 = require("./taon-session-kv.repository");
20
+ const taon_session_user_repository_1 = require("./taon-session-user.repository");
21
+ const taon_session_middleware_1 = require("./taon-session.middleware");
22
+ const taon_session_models_1 = require("./taon-session.models");
23
+ const taon_session_provider_1 = require("./taon-session.provider");
24
+ //#endregion
25
+ let TaonSessionController = class TaonSessionController extends lib_1.TaonBaseController {
26
+ taonSessionKvRepository = this.injectKvRepository(taon_session_kv_repository_1.TaonSessionKvRepository);
27
+ taonSessionProvider = this.injectProvider(taon_session_provider_1.TaonSessionProvider);
28
+ taonSessionUserRepository = this.injectCustomRepo(taon_session_user_repository_1.TaonSessionUserRepository);
29
+ //#region login
30
+ login(data) {
31
+ //#region @backendFunc
32
+ return async (req, res) => {
33
+ const { email, password } = data || {};
34
+ const user = await this.taonSessionUserRepository.findOne({
35
+ where: {
36
+ email,
37
+ password,
38
+ },
39
+ });
40
+ if (!user) {
41
+ lib_1.Taon.error({
42
+ status: 401,
43
+ message: 'Invalid credentials',
44
+ });
45
+ return false;
46
+ }
47
+ const accessToken = this.taonSessionKvRepository.createAccessToken(user.id);
48
+ const refreshToken = this.taonSessionKvRepository.createRefreshToken(user.id);
49
+ this.taonSessionKvRepository.setAuthCookies(res, accessToken, refreshToken);
50
+ return true;
51
+ };
52
+ //#endregion
53
+ }
54
+ //#endregion
55
+ //#region refresh
56
+ refresh() {
57
+ //#region @backendFunc
58
+ return async (req, res) => {
59
+ const token = req.cookies?.refreshToken;
60
+ if (!token) {
61
+ lib_1.Taon.error({
62
+ status: 401,
63
+ message: 'No refresh token',
64
+ });
65
+ return false;
66
+ }
67
+ try {
68
+ const payload = jsonwebtoken_1.default.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
69
+ const session = await this.taonSessionKvRepository.get(payload.rtId);
70
+ if (!session) {
71
+ lib_1.Taon.error({
72
+ status: 401,
73
+ message: 'Invalid refresh token',
74
+ });
75
+ return false;
76
+ }
77
+ if (session.expiresAt < Date.now()) {
78
+ await this.taonSessionKvRepository.delete(payload.rtId);
79
+ lib_1.Taon.error({
80
+ status: 401,
81
+ message: 'Expired refresh token',
82
+ });
83
+ return false;
84
+ }
85
+ // ROTATION (important)
86
+ await this.taonSessionKvRepository.delete(payload.rtId);
87
+ const newAccessToken = this.taonSessionKvRepository.createAccessToken(session.userId);
88
+ const newRefreshToken = this.taonSessionKvRepository.createRefreshToken(session.userId);
89
+ this.taonSessionKvRepository.setAuthCookies(res, newAccessToken, newRefreshToken);
90
+ return true;
91
+ }
92
+ catch {
93
+ lib_1.Taon.error({
94
+ status: 401,
95
+ message: 'Invalid refresh token',
96
+ });
97
+ return false;
98
+ }
99
+ };
100
+ //#endregion
101
+ }
102
+ //#endregion
103
+ //#region logout
104
+ logout() {
105
+ //#region @backendFunc
106
+ return async (req, res) => {
107
+ const token = req.cookies?.refreshToken;
108
+ if (token) {
109
+ try {
110
+ const payload = jsonwebtoken_1.default.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
111
+ await this.taonSessionKvRepository.delete(payload.rtId);
112
+ }
113
+ catch (error) {
114
+ console.error(error);
115
+ return false;
116
+ }
117
+ }
118
+ this.taonSessionKvRepository.clearAuthCookies(res);
119
+ return true;
120
+ };
121
+ //#endregion
122
+ }
123
+ //#endregion
124
+ //#region me
125
+ me() {
126
+ //#region @backendFunc
127
+ return async (req, res) => {
128
+ const userId = req.userId;
129
+ return userId;
130
+ };
131
+ //#endregion
132
+ }
133
+ };
134
+ exports.TaonSessionController = TaonSessionController;
135
+ __decorate([
136
+ (0, lib_1.POST)(),
137
+ __param(0, (0, lib_1.Body)()),
138
+ __metadata("design:type", Function),
139
+ __metadata("design:paramtypes", [Object]),
140
+ __metadata("design:returntype", Object)
141
+ ], TaonSessionController.prototype, "login", null);
142
+ __decorate([
143
+ (0, lib_1.POST)(),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", []),
146
+ __metadata("design:returntype", Object)
147
+ ], TaonSessionController.prototype, "refresh", null);
148
+ __decorate([
149
+ (0, lib_1.POST)(),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", []),
152
+ __metadata("design:returntype", Object)
153
+ ], TaonSessionController.prototype, "logout", null);
154
+ __decorate([
155
+ (0, lib_1.GET)({
156
+ middlewares: ({ parentMiddlewares }) => ({
157
+ TaonSessionMiddleware: taon_session_middleware_1.TaonSessionMiddleware,
158
+ ...parentMiddlewares,
159
+ }),
160
+ }),
161
+ __metadata("design:type", Function),
162
+ __metadata("design:paramtypes", []),
163
+ __metadata("design:returntype", Object)
164
+ ], TaonSessionController.prototype, "me", null);
165
+ exports.TaonSessionController = TaonSessionController = __decorate([
166
+ (0, lib_1.TaonController)({
167
+ className: 'TaonSessionController',
168
+ })
169
+ ], TaonSessionController);
170
+ //# sourceMappingURL=taon-session.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.controller.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { TaonAdditionalMiddlewareMethodInfo, TaonBaseMiddleware, TaonServerMiddlewareInterceptOptions } from 'taon';
2
+ import { TaonSessionKvRepository } from './taon-session-kv.repository';
3
+ import { TaonSessionProvider } from './taon-session.provider';
4
+ export declare class TaonSessionMiddleware extends TaonBaseMiddleware {
5
+ taonSessionKvRepository: TaonSessionKvRepository;
6
+ taonSessionProvider: TaonSessionProvider;
7
+ interceptServerMethod({ req, res, next }: TaonServerMiddlewareInterceptOptions, { methodName, expressPath, httpRequestType, }: TaonAdditionalMiddlewareMethodInfo): Promise<void> | void;
8
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaonSessionMiddleware = void 0;
10
+ //#region imports
11
+ const jwt = require("jsonwebtoken"); // @backend
12
+ const lib_1 = require("taon/lib");
13
+ const taon_session_kv_repository_1 = require("./taon-session-kv.repository");
14
+ const taon_session_provider_1 = require("./taon-session.provider");
15
+ //#endregion
16
+ let TaonSessionMiddleware = class TaonSessionMiddleware extends lib_1.TaonBaseMiddleware {
17
+ taonSessionKvRepository = this.injectKvRepository(taon_session_kv_repository_1.TaonSessionKvRepository);
18
+ taonSessionProvider = this.injectProvider(taon_session_provider_1.TaonSessionProvider);
19
+ interceptServerMethod({ req, res, next }, { methodName, expressPath, httpRequestType, }) {
20
+ //#region @backend
21
+ const token = this.taonSessionKvRepository.getTokenFromRequest(req);
22
+ if (!token) {
23
+ res.status(401).json({ message: 'No token' });
24
+ return;
25
+ }
26
+ try {
27
+ const payload = jwt.verify(token, this.taonSessionProvider.ACCESS_TOKEN_SECRET);
28
+ req.userId = payload.userId;
29
+ next();
30
+ }
31
+ catch (err) {
32
+ console.log(err);
33
+ res.status(401).json({ message: 'Invalid token' });
34
+ }
35
+ //#endregion
36
+ }
37
+ };
38
+ exports.TaonSessionMiddleware = TaonSessionMiddleware;
39
+ exports.TaonSessionMiddleware = TaonSessionMiddleware = __decorate([
40
+ (0, lib_1.TaonMiddleware)({
41
+ className: 'TaonSessionMiddleware',
42
+ })
43
+ ], TaonSessionMiddleware);
44
+ //# sourceMappingURL=taon-session.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.middleware.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,oCAAoC,CAAC,WAAW;AAChD,kCAMkB;AAGlB,6EAAuE;AACvE,mEAA8D;AAC9D,YAAY;AAKL,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,wBAAkB;IAC3D,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,oDAAuB,CAAC,CAAC;IAE3E,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,2CAAmB,CAAC,CAAC;IAE/D,qBAAqB,CACnB,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAwC,EACxD,EACE,UAAU,EACV,WAAW,EACX,eAAe,GACoB;QAErC,kBAAkB;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CACxB,KAAK,EACL,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CACtC,CAAC;YACR,GAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,YAAY;IACd,CAAC;CACF,CAAA;AAlCY,sDAAqB;gCAArB,qBAAqB;IAHjC,IAAA,oBAAc,EAAC;QACd,SAAS,EAAE,uBAAuB;KACnC,CAAC;GACW,qBAAqB,CAkCjC"}
@@ -0,0 +1,8 @@
1
+ export declare namespace TaonSession {
2
+ const DEFAULT_PASSWORD = "1234";
3
+ const DEFAULT_EMAIL = "test@test.com";
4
+ interface TaonLoginData {
5
+ email?: string;
6
+ password?: string;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaonSession = void 0;
4
+ var TaonSession;
5
+ (function (TaonSession) {
6
+ TaonSession.DEFAULT_PASSWORD = '1234';
7
+ TaonSession.DEFAULT_EMAIL = 'test@test.com';
8
+ })(TaonSession || (exports.TaonSession = TaonSession = {}));
9
+ //# sourceMappingURL=taon-session.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,IAAiB,WAAW,CAO3B;AAPD,WAAiB,WAAW;IACb,4BAAgB,GAAG,MAAM,CAAC;IAC1B,yBAAa,GAAG,eAAe,CAAC;AAK/C,CAAC,EAPgB,WAAW,2BAAX,WAAW,QAO3B"}
@@ -0,0 +1,7 @@
1
+ import { TaonBaseProvider } from 'taon';
2
+ export declare class TaonSessionProvider extends TaonBaseProvider {
3
+ ACCESS_TOKEN_SECRET: string;
4
+ REFRESH_TOKEN_SECRET: string;
5
+ ACCESS_TOKEN_EXPIRES: string;
6
+ REFRESH_TOKEN_EXPIRES_SECONDS: number;
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaonSessionProvider = void 0;
10
+ //#region imports
11
+ const lib_1 = require("taon/lib");
12
+ //#endregion
13
+ let TaonSessionProvider = class TaonSessionProvider extends lib_1.TaonBaseProvider {
14
+ ACCESS_TOKEN_SECRET = 'access-secret';
15
+ REFRESH_TOKEN_SECRET = 'refresh-secret';
16
+ ACCESS_TOKEN_EXPIRES = '15m';
17
+ REFRESH_TOKEN_EXPIRES_SECONDS = 60 * 60 * 24 * 7; // 7 days
18
+ };
19
+ exports.TaonSessionProvider = TaonSessionProvider;
20
+ exports.TaonSessionProvider = TaonSessionProvider = __decorate([
21
+ (0, lib_1.TaonProvider)({
22
+ className: 'TaonSessionProvider',
23
+ })
24
+ ], TaonSessionProvider);
25
+ //# sourceMappingURL=taon-session.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.provider.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,kCAAgE;AAEhE,YAAY;AAKL,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,sBAAgB;IACvD,mBAAmB,GAAG,eAAe,CAAC;IAEtC,oBAAoB,GAAG,gBAAgB,CAAC;IAExC,oBAAoB,GAAG,KAAK,CAAC;IAE7B,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;CAC5D,CAAA;AARY,kDAAmB;8BAAnB,mBAAmB;IAH/B,IAAA,kBAAY,EAAC;QACZ,SAAS,EAAE,qBAAqB;KACjC,CAAC;GACW,mBAAmB,CAQ/B"}
@@ -0,0 +1 @@
1
+ export declare namespace TaonSessionUtils { }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=taon-session.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session.utils.js","sourceRoot":"","sources":[""],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Autogenerated by current cli tool
3
+ */
4
+ export declare const BUILD_FRAMEWORK_CLI_NAME = "tnp";
5
+ /**
6
+ * This value can be change in taon.jsonc (appId)
7
+ */
8
+ export declare const APP_ID = "com.domain.example.session";
9
+ /**
10
+ * Autogenerated by current cli tool
11
+ */
12
+ export declare const BUILD_BASE_HREF = "";
13
+ /**
14
+ * This value can be change in taon.jsonc (overrideNpmName)
15
+ */
16
+ export declare const PROJECT_NPM_NAME = "@taon-dev/session";
17
+ /**
18
+ * Taon version from you project taon.json
19
+ */
20
+ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
+ /**
22
+ * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
+ */
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.207";
@@ -0,0 +1,27 @@
1
+ // THIS FILE IS GENERATED - DO NOT MODIFY
2
+ /**
3
+ * Autogenerated by current cli tool
4
+ */
5
+ export const BUILD_FRAMEWORK_CLI_NAME = 'tnp';
6
+ /**
7
+ * This value can be change in taon.jsonc (appId)
8
+ */
9
+ export const APP_ID = 'com.domain.example.session';
10
+ /**
11
+ * Autogenerated by current cli tool
12
+ */
13
+ export const BUILD_BASE_HREF = '';
14
+ /**
15
+ * This value can be change in taon.jsonc (overrideNpmName)
16
+ */
17
+ export const PROJECT_NPM_NAME = '@taon-dev/session';
18
+ /**
19
+ * Taon version from you project taon.json
20
+ */
21
+ export const CURRENT_PACKAGE_TAON_VERSION = 'v21';
22
+ /**
23
+ * Autogenerated by current cli tool. Use *tnp release* to bump version.
24
+ */
25
+ export const CURRENT_PACKAGE_VERSION = '21.0.207';
26
+ // THIS FILE IS GENERATED - DO NOT MODIFY
27
+ //# sourceMappingURL=build-info._auto-generated_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-info._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,yCAAyC;AACzC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,4BAA4B,CAAC;AACnD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACpD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAMlD,yCAAyC"}