@taon-dev/session 21.0.208 → 21.0.209

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 (125) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/session-browser.mjs +1 -1
  3. package/browser/fesm2022/session-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/session-browser.d.ts +1 -1
  6. package/browser-prod/fesm2022/session-browser-prod.mjs +1 -1
  7. package/browser-prod/fesm2022/session-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/session-browser-prod.d.ts +1 -1
  10. package/lib/build-info._auto-generated_.d.ts +1 -1
  11. package/lib/build-info._auto-generated_.js +1 -1
  12. package/lib/package.json +1 -1
  13. package/lib/taon-session/taon-session/index.js +2 -2
  14. package/lib-esm/app.d.ts +3 -0
  15. package/lib-esm/app.electron.d.ts +1 -0
  16. package/lib-esm/app.electron.js +2 -0
  17. package/lib-esm/app.electron.js.map +1 -0
  18. package/lib-esm/app.hosts.d.ts +95 -0
  19. package/lib-esm/app.hosts.js +157 -0
  20. package/lib-esm/app.hosts.js.map +1 -0
  21. package/lib-esm/app.js +267 -0
  22. package/lib-esm/app.js.map +1 -0
  23. package/lib-esm/app.vscode.d.ts +9 -0
  24. package/lib-esm/app.vscode.js +37 -0
  25. package/lib-esm/app.vscode.js.map +1 -0
  26. package/lib-esm/cli.d.ts +1 -0
  27. package/lib-esm/cli.js +4 -0
  28. package/lib-esm/cli.js.map +1 -0
  29. package/lib-esm/index.d.ts +1 -0
  30. package/lib-esm/index.js +2 -0
  31. package/lib-esm/index.js.map +1 -0
  32. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  33. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  34. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  35. package/lib-esm/lib/env/env.angular-node-app.d.ts +67 -0
  36. package/lib-esm/lib/env/env.angular-node-app.js +137 -0
  37. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  38. package/lib-esm/lib/env/env.docs-webapp.d.ts +67 -0
  39. package/lib-esm/lib/env/env.docs-webapp.js +137 -0
  40. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  41. package/lib-esm/lib/env/env.electron-app.d.ts +67 -0
  42. package/lib-esm/lib/env/env.electron-app.js +137 -0
  43. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  44. package/lib-esm/lib/env/env.mobile-app.d.ts +67 -0
  45. package/lib-esm/lib/env/env.mobile-app.js +137 -0
  46. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  47. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  48. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +137 -0
  49. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  50. package/lib-esm/lib/env/env.vscode-plugin.d.ts +67 -0
  51. package/lib-esm/lib/env/env.vscode-plugin.js +137 -0
  52. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  53. package/lib-esm/lib/env/index.d.ts +6 -0
  54. package/lib-esm/lib/env/index.js +7 -0
  55. package/lib-esm/lib/env/index.js.map +1 -0
  56. package/lib-esm/lib/index._auto-generated_.d.ts +12 -0
  57. package/lib-esm/lib/index._auto-generated_.js +20 -0
  58. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  59. package/lib-esm/lib/index.d.ts +4 -0
  60. package/lib-esm/lib/index.js +5 -0
  61. package/lib-esm/lib/index.js.map +1 -0
  62. package/lib-esm/lib/migrations/index.d.ts +1 -0
  63. package/lib-esm/lib/migrations/index.js +3 -0
  64. package/lib-esm/lib/migrations/index.js.map +1 -0
  65. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
  66. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
  67. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
  68. package/lib-esm/lib/my-organization-proj.d.ts +1 -0
  69. package/lib-esm/lib/my-organization-proj.js +3 -0
  70. package/lib-esm/lib/my-organization-proj.js.map +1 -0
  71. package/lib-esm/lib/start-cli.d.ts +7 -0
  72. package/lib-esm/lib/start-cli.js +43 -0
  73. package/lib-esm/lib/start-cli.js.map +1 -0
  74. package/lib-esm/lib/taon-session/index.d.ts +10 -0
  75. package/lib-esm/lib/taon-session/index.js +12 -0
  76. package/lib-esm/lib/taon-session/index.js.map +1 -0
  77. package/lib-esm/lib/taon-session/taon-session/index.d.ts +1 -0
  78. package/lib-esm/lib/taon-session/taon-session/index.js +2 -0
  79. package/lib-esm/lib/taon-session/taon-session/index.js.map +1 -0
  80. package/lib-esm/lib/taon-session/taon-session-kv.repository.d.ts +11 -0
  81. package/lib-esm/lib/taon-session/taon-session-kv.repository.js +69 -0
  82. package/lib-esm/lib/taon-session/taon-session-kv.repository.js.map +1 -0
  83. package/lib-esm/lib/taon-session/taon-session-user.entity.d.ts +5 -0
  84. package/lib-esm/lib/taon-session/taon-session-user.entity.js +31 -0
  85. package/lib-esm/lib/taon-session/taon-session-user.entity.js.map +1 -0
  86. package/lib-esm/lib/taon-session/taon-session-user.repository.d.ts +5 -0
  87. package/lib-esm/lib/taon-session/taon-session-user.repository.js +14 -0
  88. package/lib-esm/lib/taon-session/taon-session-user.repository.js.map +1 -0
  89. package/lib-esm/lib/taon-session/taon-session.abstract.context.d.ts +19 -0
  90. package/lib-esm/lib/taon-session/taon-session.abstract.context.js +21 -0
  91. package/lib-esm/lib/taon-session/taon-session.abstract.context.js.map +1 -0
  92. package/lib-esm/lib/taon-session/taon-session.controller.d.ts +14 -0
  93. package/lib-esm/lib/taon-session/taon-session.controller.js +155 -0
  94. package/lib-esm/lib/taon-session/taon-session.controller.js.map +1 -0
  95. package/lib-esm/lib/taon-session/taon-session.middleware.d.ts +8 -0
  96. package/lib-esm/lib/taon-session/taon-session.middleware.js +35 -0
  97. package/lib-esm/lib/taon-session/taon-session.middleware.js.map +1 -0
  98. package/lib-esm/lib/taon-session/taon-session.models.d.ts +8 -0
  99. package/lib-esm/lib/taon-session/taon-session.models.js +6 -0
  100. package/lib-esm/lib/taon-session/taon-session.models.js.map +1 -0
  101. package/lib-esm/lib/taon-session/taon-session.provider.d.ts +7 -0
  102. package/lib-esm/lib/taon-session/taon-session.provider.js +16 -0
  103. package/lib-esm/lib/taon-session/taon-session.provider.js.map +1 -0
  104. package/lib-esm/lib/taon-session/taon-session.utils.d.ts +1 -0
  105. package/lib-esm/lib/taon-session/taon-session.utils.js +2 -0
  106. package/lib-esm/lib/taon-session/taon-session.utils.js.map +1 -0
  107. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  108. package/lib-prod/build-info._auto-generated_.js +1 -1
  109. package/lib-prod/package.json +1 -1
  110. package/lib-prod/taon-session/taon-session/index.d.ts +1 -1
  111. package/lib-prod/taon-session/taon-session/index.js +1 -1
  112. package/lib-prod/taon-session/taon-session-user.entity.js.map +1 -1
  113. package/lib-prod/taon-session/taon-session.controller.js.map +1 -1
  114. package/lib-prod/taon-session/taon-session.middleware.js.map +1 -1
  115. package/lib-prod/taon-session/taon-session.provider.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src.js +4 -20
  118. package/websql/fesm2022/session-websql.mjs +1 -1
  119. package/websql/fesm2022/session-websql.mjs.map +1 -1
  120. package/websql/package.json +1 -1
  121. package/websql/types/session-websql.d.ts +1 -1
  122. package/websql-prod/fesm2022/session-websql-prod.mjs +1 -1
  123. package/websql-prod/fesm2022/session-websql-prod.mjs.map +1 -1
  124. package/websql-prod/package.json +1 -1
  125. package/websql-prod/types/session-websql-prod.d.ts +1 -1
@@ -0,0 +1,6 @@
1
+ export * from './env.angular-node-app';
2
+ export * from './env.docs-webapp';
3
+ export * from './env.electron-app';
4
+ export * from './env.mobile-app';
5
+ export * from './env.npm-lib-and-cli-tool';
6
+ export * from './env.vscode-plugin';
@@ -0,0 +1,7 @@
1
+ export * from './env.angular-node-app';
2
+ export * from './env.docs-webapp';
3
+ export * from './env.electron-app';
4
+ export * from './env.mobile-app';
5
+ export * from './env.npm-lib-and-cli-tool';
6
+ export * from './env.vscode-plugin';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from './build-info._auto-generated_';
2
+ export * from './my-organization-proj';
3
+ export * from './start-cli';
4
+ export * from './taon-session/taon-session-kv.repository';
5
+ export * from './taon-session/taon-session-user.entity';
6
+ export * from './taon-session/taon-session-user.repository';
7
+ export * from './taon-session/taon-session.abstract.context';
8
+ export * from './taon-session/taon-session.controller';
9
+ export * from './taon-session/taon-session.middleware';
10
+ export * from './taon-session/taon-session.models';
11
+ export * from './taon-session/taon-session.provider';
12
+ export * from './taon-session/taon-session.utils';
@@ -0,0 +1,20 @@
1
+ // @ts-nocheck
2
+ // This file is auto-generated during init process. Do not modify.
3
+ // This disable this auto generate file.
4
+ // set property "shouldGenerateAutogenIndexFile: false"
5
+ // in taon.jsonc of your project.
6
+ export * from './build-info._auto-generated_';
7
+ export * from './my-organization-proj';
8
+ export * from './start-cli';
9
+ /* */
10
+ export * from './taon-session/taon-session-kv.repository';
11
+ export * from './taon-session/taon-session-user.entity';
12
+ export * from './taon-session/taon-session-user.repository';
13
+ export * from './taon-session/taon-session.abstract.context';
14
+ export * from './taon-session/taon-session.controller';
15
+ export * from './taon-session/taon-session.middleware';
16
+ export * from './taon-session/taon-session.models';
17
+ export * from './taon-session/taon-session.provider';
18
+ export * from './taon-session/taon-session.utils';
19
+ /* */
20
+ //# sourceMappingURL=index._auto-generated_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc;AACd,kEAAkE;AAClE,wCAAwC;AACxC,wDAAwD;AACxD,kCAAkC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,KAAK;AACL,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,KAAK"}
@@ -0,0 +1,4 @@
1
+ export * from './migrations';
2
+ export * from './env';
3
+ export * from './index._auto-generated_';
4
+ export * from './start-cli';
@@ -0,0 +1,5 @@
1
+ export * from './migrations';
2
+ export * from './env';
3
+ export * from './index._auto-generated_';
4
+ export * from './start-cli'; // @backend
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC,CAAC,WAAW"}
@@ -0,0 +1 @@
1
+ export * from './migrations_index._auto-generated_';
@@ -0,0 +1,3 @@
1
+ //@ts-nocheck
2
+ export * from './migrations_index._auto-generated_';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,4 @@
1
+ // THIS FILE IS GENERATED - DO NOT MODIFY
2
+ // THIS FILE IS GENERATED - DO NOT MODIFY
3
+ // THIS FILE IS GENERATED - DO NOT MODIFY
4
+ //# sourceMappingURL=migrations_index._auto-generated_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations_index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,yCAAyC;AAEzC,yCAAyC"}
@@ -0,0 +1 @@
1
+ export declare function myOrgProj(): void;
@@ -0,0 +1,3 @@
1
+ export function myOrgProj() {
2
+ }
3
+ //# sourceMappingURL=my-organization-proj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"my-organization-proj.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;AAEzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ *
3
+ * @param argsv process.argsv
4
+ * @param filename needed if you want ipc communicaiton
5
+ */
6
+ export declare function startCli(argsv: string[], filename: string): Promise<void>;
7
+ export default startCli;
@@ -0,0 +1,43 @@
1
+ //#region tnp-helpers cli template
2
+ // import { Helpers, BaseCommandLineFeature } from 'tnp-helpers/src';
3
+ // import { BaseProject, BaseStartConfig } from 'tnp-helpers/src'; // @backend
4
+ // class $Version extends BaseCommandLineFeature<{}> {
5
+ // public _() {
6
+ // console.log(`Hello world from cli`);
7
+ // this._exit();
8
+ // }
9
+ // }
10
+ //#endregion
11
+ /**
12
+ *
13
+ * @param argsv process.argsv
14
+ * @param filename needed if you want ipc communicaiton
15
+ */
16
+ export async function startCli(argsv, filename) {
17
+ //#region @backendFunc
18
+ console.log('Hello from cli');
19
+ console.log({ argsv });
20
+ process.exit(0);
21
+ //#region start config
22
+ // new BaseStartConfig({
23
+ // ProjectClass: BaseProject,
24
+ // functionsOrClasses: [
25
+ // {
26
+ // classOrFnName: '$Version',
27
+ // funcOrClass: $Version,
28
+ // },
29
+ // ],
30
+ // argsv,
31
+ // useStringArrForArgsFunctions: true,
32
+ // shortArgsReplaceConfig: {
33
+ // v: 'version',
34
+ // },
35
+ // callbackNotRecognizedCommand: async () => {
36
+ // Helpers.error(`Command not recognized`, false, true);
37
+ // },
38
+ // });
39
+ //#endregion
40
+ //#endregion
41
+ }
42
+ export default startCli;
43
+ //# sourceMappingURL=start-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-cli.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,kCAAkC;AAClC,qEAAqE;AACrE,8EAA8E;AAE9E,sDAAsD;AACtD,iBAAiB;AACjB,2CAA2C;AAC3C,oBAAoB;AACpB,MAAM;AACN,IAAI;AACJ,YAAY;AAEZ;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAe,EAAE,QAAgB;IAC9D,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhB,sBAAsB;IACtB,wBAAwB;IACxB,+BAA+B;IAC/B,0BAA0B;IAC1B,QAAQ;IACR,mCAAmC;IACnC,+BAA+B;IAC/B,SAAS;IACT,OAAO;IACP,WAAW;IACX,wCAAwC;IACxC,8BAA8B;IAC9B,oBAAoB;IACpB,OAAO;IACP,gDAAgD;IAChD,4DAA4D;IAC5D,OAAO;IACP,MAAM;IACN,YAAY;IACZ,YAAY;AACd,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from './taon-session';
2
+ export * from './taon-session-kv.repository';
3
+ export * from './taon-session-user.entity';
4
+ export * from './taon-session-user.repository';
5
+ export * from './taon-session.abstract.context';
6
+ export * from './taon-session.controller';
7
+ export * from './taon-session.middleware';
8
+ export * from './taon-session.models';
9
+ export * from './taon-session.provider';
10
+ export * from './taon-session.utils';
@@ -0,0 +1,12 @@
1
+ export * from './taon-session';
2
+ /* */
3
+ export * from './taon-session-kv.repository';
4
+ export * from './taon-session-user.entity';
5
+ export * from './taon-session-user.repository';
6
+ export * from './taon-session.abstract.context';
7
+ export * from './taon-session.controller';
8
+ export * from './taon-session.middleware';
9
+ export * from './taon-session.models';
10
+ export * from './taon-session.provider';
11
+ export * from './taon-session.utils';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,KAAK;AACL,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function dummy1779559764236(): void;
@@ -0,0 +1,2 @@
1
+ export function dummy1779559764236() { }
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,KAAK,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type express from 'express';
2
+ import { TaonBaseKvRepository } from 'taon/lib';
3
+ import { TaonSessionProvider } from './taon-session.provider';
4
+ export declare class TaonSessionKvRepository extends TaonBaseKvRepository {
5
+ taonSessionProvider: TaonSessionProvider;
6
+ createAccessToken(userId: string): string;
7
+ createRefreshToken(userId: string): string;
8
+ setAuthCookies(res: express.Response, accessToken: string, refreshToken: string): void;
9
+ clearAuthCookies(res: express.Response): void;
10
+ getTokenFromRequest(req: express.Request): string | null;
11
+ }
@@ -0,0 +1,69 @@
1
+ //#region imports
2
+ import * as crypto from 'crypto'; // @backend
3
+ import * as jwt from 'jsonwebtoken'; // @backend
4
+ import { TaonBaseKvRepository, TaonRepository } from 'taon/lib';
5
+ import { TaonSessionProvider } from './taon-session.provider';
6
+ //#endregion
7
+ let TaonSessionKvRepository = class TaonSessionKvRepository extends TaonBaseKvRepository {
8
+ taonSessionProvider = this.injectProvider(TaonSessionProvider);
9
+ createAccessToken(userId) {
10
+ //#region @backendFunc
11
+ return jwt.sign({ userId }, this.taonSessionProvider.ACCESS_TOKEN_SECRET, {
12
+ expiresIn: this.taonSessionProvider.ACCESS_TOKEN_EXPIRES,
13
+ });
14
+ //#endregion
15
+ }
16
+ createRefreshToken(userId) {
17
+ //#region @backendFunc
18
+ const rtId = crypto.randomUUID();
19
+ const expiresAt = Date.now() +
20
+ this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS * 1000;
21
+ this.set(rtId, { userId, expiresAt });
22
+ const token = jwt.sign({ rtId }, this.taonSessionProvider.REFRESH_TOKEN_SECRET, {
23
+ expiresIn: this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS,
24
+ });
25
+ return token;
26
+ //#endregion
27
+ }
28
+ setAuthCookies(res, accessToken, refreshToken) {
29
+ //#region @backendFunc
30
+ res.cookie('accessToken', accessToken, {
31
+ httpOnly: true,
32
+ secure: false, // set true in production (HTTPS)
33
+ sameSite: 'lax',
34
+ path: '/',
35
+ maxAge: 1000 * 60 * 15,
36
+ });
37
+ res.cookie('refreshToken', refreshToken, {
38
+ httpOnly: true,
39
+ secure: false,
40
+ sameSite: 'strict',
41
+ path: '/refresh',
42
+ maxAge: 1000 * this.taonSessionProvider.REFRESH_TOKEN_EXPIRES_SECONDS,
43
+ });
44
+ //#endregion
45
+ }
46
+ clearAuthCookies(res) {
47
+ //#region @backendFunc
48
+ res.cookie('accessToken', '', { maxAge: 0 });
49
+ res.cookie('refreshToken', '', { maxAge: 0 });
50
+ //#endregion
51
+ }
52
+ getTokenFromRequest(req) {
53
+ //#region @backendFunc
54
+ const cookieToken = req.cookies?.accessToken;
55
+ const authHeader = req.headers['authorization'];
56
+ const headerToken = authHeader && authHeader.startsWith('Bearer ')
57
+ ? authHeader.slice(7)
58
+ : null;
59
+ return cookieToken || headerToken || null;
60
+ //#endregion
61
+ }
62
+ };
63
+ TaonSessionKvRepository = __decorate([
64
+ TaonRepository({
65
+ className: 'TaonSessionKvRepository',
66
+ })
67
+ ], TaonSessionKvRepository);
68
+ export { TaonSessionKvRepository };
69
+ //# sourceMappingURL=taon-session-kv.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-session-kv.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { TaonBaseAbstractEntity } from 'taon/lib';
2
+ export declare class TaonSessionUser extends TaonBaseAbstractEntity<TaonSessionUser> {
3
+ email?: string;
4
+ password?: string;
5
+ }
@@ -0,0 +1,31 @@
1
+ //#region imports
2
+ import { String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity, } from 'taon/lib';
3
+ //#endregion
4
+ let TaonSessionUser = class TaonSessionUser extends TaonBaseAbstractEntity {
5
+ //#region @websql
6
+ //#endregion
7
+ email;
8
+ //#region @websql
9
+ //#endregion
10
+ password;
11
+ };
12
+ __decorate([
13
+ String45Column()
14
+ //#endregion
15
+ ,
16
+ __metadata("design:type", String)
17
+ ], TaonSessionUser.prototype, "email", void 0);
18
+ __decorate([
19
+ String500Column()
20
+ //#endregion
21
+ ,
22
+ __metadata("design:type", String)
23
+ ], TaonSessionUser.prototype, "password", void 0);
24
+ TaonSessionUser = __decorate([
25
+ TaonEntity({
26
+ className: 'TaonSessionUser',
27
+ createTable: true,
28
+ })
29
+ ], TaonSessionUser);
30
+ export { TaonSessionUser };
31
+ //# 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,OAAO,EAGL,cAAc,EACd,eAAe,EAGf,sBAAsB,EACtB,UAAU,GACX,MAAM,UAAU,CAAC;AAGlB,YAAY;AAML,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,sBAAuC;IAC1E,iBAAiB;IAGjB,AADA,YAAY;IACZ,KAAK,CAAU;IAEf,iBAAiB;IAGjB,AADA,YAAY;IACZ,QAAQ,CAAU;CACnB,CAAA;AANC;IAFC,cAAc,EAAE;IACjB,YAAY;;;8CACG;AAKf;IAFC,eAAe,EAAE;IAClB,YAAY;;;iDACM;AATP,eAAe;IAJ3B,UAAU,CAAC;QACV,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,IAAI;KAClB,CAAC;GACW,eAAe,CAU3B"}
@@ -0,0 +1,5 @@
1
+ import { TaonBaseRepository } from 'taon/lib';
2
+ import { TaonSessionUser } from './taon-session-user.entity';
3
+ export declare class TaonSessionUserRepository extends TaonBaseRepository<TaonSessionUser> {
4
+ entityClassResolveFn: () => typeof TaonSessionUser;
5
+ }
@@ -0,0 +1,14 @@
1
+ //#region imports
2
+ import { TaonBaseRepository, TaonRepository } from 'taon/lib';
3
+ import { TaonSessionUser } from './taon-session-user.entity';
4
+ //#endregion
5
+ let TaonSessionUserRepository = class TaonSessionUserRepository extends TaonBaseRepository {
6
+ entityClassResolveFn = () => TaonSessionUser;
7
+ };
8
+ TaonSessionUserRepository = __decorate([
9
+ TaonRepository({
10
+ className: 'TaonSessionUserRepository',
11
+ })
12
+ ], TaonSessionUserRepository);
13
+ export { TaonSessionUserRepository };
14
+ //# 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,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY;AAKL,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAmC;IAChF,oBAAoB,GAAiC,GAAG,EAAE,CAAC,eAAe,CAAC;CAC5E,CAAA;AAFY,yBAAyB;IAHrC,cAAc,CAAC;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
+ }) => any;
7
+ cloneAsNormal: (cloneOpt?: {
8
+ overrideHost?: string;
9
+ }) => any;
10
+ __ref(): Promise<import("taon/lib").EndpointContext>;
11
+ readonly __refSync: import("taon/lib").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/lib").Models.TaonInitializeParams) => Promise<import("taon/lib").EndpointContext>;
15
+ readonly realtime: {
16
+ readonly client: import("taon/lib").RealtimeClient;
17
+ readonly server: import("taon/lib").RealtimeServer;
18
+ };
19
+ };
@@ -0,0 +1,21 @@
1
+ //#region imports
2
+ import { createContext, TaonBaseContext } from 'taon/lib';
3
+ import { TaonSessionKvRepository } from './taon-session-kv.repository';
4
+ import { TaonSessionUser } from './taon-session-user.entity';
5
+ import { TaonSessionUserRepository } from './taon-session-user.repository';
6
+ import { TaonSessionController } from './taon-session.controller';
7
+ import { TaonSessionMiddleware } from './taon-session.middleware';
8
+ import { TaonSessionProvider } from './taon-session.provider';
9
+ //#endregion
10
+ export const TaonSessionContext = createContext(() => ({
11
+ contextName: 'TaonSessionContext',
12
+ abstract: true,
13
+ contexts: { TaonBaseContext },
14
+ entities: { TaonSessionUser },
15
+ controllers: { TaonSessionController },
16
+ repositories: { TaonSessionKvRepository, TaonSessionUserRepository },
17
+ providers: { TaonSessionProvider },
18
+ middlewares: { TaonSessionMiddleware },
19
+ subscribers: {},
20
+ }));
21
+ //# 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,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,WAAW,EAAE,EAAE,qBAAqB,EAAE;IACtC,YAAY,EAAE,EAAE,uBAAuB,EAAE,yBAAyB,EAAE;IACpE,SAAS,EAAE,EAAE,mBAAmB,EAAE;IAClC,WAAW,EAAE,EAAE,qBAAqB,EAAE;IACtC,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Taon, TaonBaseController } from 'taon/lib';
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,155 @@
1
+ //#region imports
2
+ import jwt from 'jsonwebtoken'; // @backend
3
+ import { Taon, TaonController, GET, TaonBaseController, Body, POST, } from 'taon/lib';
4
+ import { TaonSessionKvRepository } from './taon-session-kv.repository';
5
+ import { TaonSessionUserRepository } from './taon-session-user.repository';
6
+ import { TaonSessionMiddleware } from './taon-session.middleware';
7
+ import { TaonSession } from './taon-session.models';
8
+ import { TaonSessionProvider } from './taon-session.provider';
9
+ //#endregion
10
+ let TaonSessionController = class TaonSessionController extends TaonBaseController {
11
+ taonSessionKvRepository = this.injectKvRepository(TaonSessionKvRepository);
12
+ taonSessionProvider = this.injectProvider(TaonSessionProvider);
13
+ taonSessionUserRepository = this.injectCustomRepo(TaonSessionUserRepository);
14
+ //#region login
15
+ login(data) {
16
+ //#region @backendFunc
17
+ return async (req, res) => {
18
+ const { email, password } = data || {};
19
+ const user = await this.taonSessionUserRepository.findOne({
20
+ where: {
21
+ email,
22
+ password,
23
+ },
24
+ });
25
+ if (!user) {
26
+ Taon.error({
27
+ status: 401,
28
+ message: 'Invalid credentials',
29
+ });
30
+ return false;
31
+ }
32
+ const accessToken = this.taonSessionKvRepository.createAccessToken(user.id);
33
+ const refreshToken = this.taonSessionKvRepository.createRefreshToken(user.id);
34
+ this.taonSessionKvRepository.setAuthCookies(res, accessToken, refreshToken);
35
+ return true;
36
+ };
37
+ //#endregion
38
+ }
39
+ //#endregion
40
+ //#region refresh
41
+ refresh() {
42
+ //#region @backendFunc
43
+ return async (req, res) => {
44
+ const token = req.cookies?.refreshToken;
45
+ if (!token) {
46
+ Taon.error({
47
+ status: 401,
48
+ message: 'No refresh token',
49
+ });
50
+ return false;
51
+ }
52
+ try {
53
+ const payload = jwt.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
54
+ const session = await this.taonSessionKvRepository.get(payload.rtId);
55
+ if (!session) {
56
+ Taon.error({
57
+ status: 401,
58
+ message: 'Invalid refresh token',
59
+ });
60
+ return false;
61
+ }
62
+ if (session.expiresAt < Date.now()) {
63
+ await this.taonSessionKvRepository.delete(payload.rtId);
64
+ Taon.error({
65
+ status: 401,
66
+ message: 'Expired refresh token',
67
+ });
68
+ return false;
69
+ }
70
+ // ROTATION (important)
71
+ await this.taonSessionKvRepository.delete(payload.rtId);
72
+ const newAccessToken = this.taonSessionKvRepository.createAccessToken(session.userId);
73
+ const newRefreshToken = this.taonSessionKvRepository.createRefreshToken(session.userId);
74
+ this.taonSessionKvRepository.setAuthCookies(res, newAccessToken, newRefreshToken);
75
+ return true;
76
+ }
77
+ catch {
78
+ Taon.error({
79
+ status: 401,
80
+ message: 'Invalid refresh token',
81
+ });
82
+ return false;
83
+ }
84
+ };
85
+ //#endregion
86
+ }
87
+ //#endregion
88
+ //#region logout
89
+ logout() {
90
+ //#region @backendFunc
91
+ return async (req, res) => {
92
+ const token = req.cookies?.refreshToken;
93
+ if (token) {
94
+ try {
95
+ const payload = jwt.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
96
+ await this.taonSessionKvRepository.delete(payload.rtId);
97
+ }
98
+ catch (error) {
99
+ console.error(error);
100
+ return false;
101
+ }
102
+ }
103
+ this.taonSessionKvRepository.clearAuthCookies(res);
104
+ return true;
105
+ };
106
+ //#endregion
107
+ }
108
+ //#endregion
109
+ //#region me
110
+ me() {
111
+ //#region @backendFunc
112
+ return async (req, res) => {
113
+ const userId = req.userId;
114
+ return userId;
115
+ };
116
+ //#endregion
117
+ }
118
+ };
119
+ __decorate([
120
+ POST(),
121
+ __param(0, Body()),
122
+ __metadata("design:type", Function),
123
+ __metadata("design:paramtypes", [Object]),
124
+ __metadata("design:returntype", Object)
125
+ ], TaonSessionController.prototype, "login", null);
126
+ __decorate([
127
+ POST(),
128
+ __metadata("design:type", Function),
129
+ __metadata("design:paramtypes", []),
130
+ __metadata("design:returntype", Object)
131
+ ], TaonSessionController.prototype, "refresh", null);
132
+ __decorate([
133
+ POST(),
134
+ __metadata("design:type", Function),
135
+ __metadata("design:paramtypes", []),
136
+ __metadata("design:returntype", Object)
137
+ ], TaonSessionController.prototype, "logout", null);
138
+ __decorate([
139
+ GET({
140
+ middlewares: ({ parentMiddlewares }) => ({
141
+ TaonSessionMiddleware,
142
+ ...parentMiddlewares,
143
+ }),
144
+ }),
145
+ __metadata("design:type", Function),
146
+ __metadata("design:paramtypes", []),
147
+ __metadata("design:returntype", Object)
148
+ ], TaonSessionController.prototype, "me", null);
149
+ TaonSessionController = __decorate([
150
+ TaonController({
151
+ className: 'TaonSessionController',
152
+ })
153
+ ], TaonSessionController);
154
+ export { TaonSessionController };
155
+ //# 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/lib';
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
+ }