@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.
- package/VERIFIED-BUILD-DATA.jsonc +5 -0
- package/assets/shared/shared_folder_info.txt +7 -0
- package/browser/README.md +24 -0
- package/browser/fesm2022/session-browser.mjs +1390 -0
- package/browser/fesm2022/session-browser.mjs.map +1 -0
- package/browser/package.json +23 -0
- package/browser/types/session-browser.d.ts +548 -0
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/session-browser-prod.mjs +1392 -0
- package/browser-prod/fesm2022/session-browser-prod.mjs.map +1 -0
- package/browser-prod/package.json +23 -0
- package/browser-prod/types/session-browser-prod.d.ts +545 -0
- package/browser-prod.re-export.json +1 -0
- package/browser-prod.split-namespaces.json +14 -0
- package/cli.d.ts +1 -0
- package/cli.js +8 -0
- package/cli.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +18 -0
- package/index.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +24 -0
- package/lib/build-info._auto-generated_.js +30 -0
- package/lib/build-info._auto-generated_.js.map +1 -0
- package/lib/env/env.angular-node-app.d.ts +67 -0
- package/lib/env/env.angular-node-app.js +141 -0
- package/lib/env/env.angular-node-app.js.map +1 -0
- package/lib/env/env.docs-webapp.d.ts +67 -0
- package/lib/env/env.docs-webapp.js +141 -0
- package/lib/env/env.docs-webapp.js.map +1 -0
- package/lib/env/env.electron-app.d.ts +67 -0
- package/lib/env/env.electron-app.js +141 -0
- package/lib/env/env.electron-app.js.map +1 -0
- package/lib/env/env.mobile-app.d.ts +67 -0
- package/lib/env/env.mobile-app.js +141 -0
- package/lib/env/env.mobile-app.js.map +1 -0
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib/env/env.npm-lib-and-cli-tool.js +141 -0
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib/env/env.vscode-plugin.d.ts +67 -0
- package/lib/env/env.vscode-plugin.js +141 -0
- package/lib/env/env.vscode-plugin.js.map +1 -0
- package/lib/env/index.d.ts +6 -0
- package/lib/env/index.js +23 -0
- package/lib/env/index.js.map +1 -0
- package/lib/index._auto-generated_.d.ts +14 -0
- package/lib/index._auto-generated_.js +36 -0
- package/lib/index._auto-generated_.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/migrations/index.d.ts +1 -0
- package/lib/migrations/index.js +19 -0
- package/lib/migrations/index.js.map +1 -0
- package/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/lib/my-organization-proj.d.ts +1 -0
- package/lib/my-organization-proj.js +6 -0
- package/lib/my-organization-proj.js.map +1 -0
- package/lib/package.json +4 -0
- package/lib/start-cli.d.ts +7 -0
- package/lib/start-cli.js +46 -0
- package/lib/start-cli.js.map +1 -0
- package/lib/taon-session/index.d.ts +11 -0
- package/lib/taon-session/index.js +28 -0
- package/lib/taon-session/index.js.map +1 -0
- package/lib/taon-session/taon-session/index.d.ts +1 -0
- package/lib/taon-session/taon-session/index.js +5 -0
- package/lib/taon-session/taon-session/index.js.map +1 -0
- package/lib/taon-session/taon-session/taon-session.component.d.ts +14 -0
- package/lib/taon-session/taon-session-api.service.d.ts +9 -0
- package/lib/taon-session/taon-session-kv.repository.d.ts +11 -0
- package/lib/taon-session/taon-session-kv.repository.js +78 -0
- package/lib/taon-session/taon-session-kv.repository.js.map +1 -0
- package/lib/taon-session/taon-session-user.entity.d.ts +5 -0
- package/lib/taon-session/taon-session-user.entity.js +43 -0
- package/lib/taon-session/taon-session-user.entity.js.map +1 -0
- package/lib/taon-session/taon-session-user.repository.d.ts +5 -0
- package/lib/taon-session/taon-session-user.repository.js +23 -0
- package/lib/taon-session/taon-session-user.repository.js.map +1 -0
- package/lib/taon-session/taon-session.abstract.context.d.ts +19 -0
- package/lib/taon-session/taon-session.abstract.context.js +24 -0
- package/lib/taon-session/taon-session.abstract.context.js.map +1 -0
- package/lib/taon-session/taon-session.controller.d.ts +14 -0
- package/lib/taon-session/taon-session.controller.js +170 -0
- package/lib/taon-session/taon-session.controller.js.map +1 -0
- package/lib/taon-session/taon-session.middleware.d.ts +8 -0
- package/lib/taon-session/taon-session.middleware.js +44 -0
- package/lib/taon-session/taon-session.middleware.js.map +1 -0
- package/lib/taon-session/taon-session.models.d.ts +8 -0
- package/lib/taon-session/taon-session.models.js +9 -0
- package/lib/taon-session/taon-session.models.js.map +1 -0
- package/lib/taon-session/taon-session.provider.d.ts +7 -0
- package/lib/taon-session/taon-session.provider.js +25 -0
- package/lib/taon-session/taon-session.provider.js.map +1 -0
- package/lib/taon-session/taon-session.utils.d.ts +1 -0
- package/lib/taon-session/taon-session.utils.js +3 -0
- package/lib/taon-session/taon-session.utils.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +27 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +67 -0
- package/lib-prod/env/env.angular-node-app.js +137 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +67 -0
- package/lib-prod/env/env.docs-webapp.js +137 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +67 -0
- package/lib-prod/env/env.electron-app.js +137 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +67 -0
- package/lib-prod/env/env.mobile-app.js +137 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +137 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +67 -0
- package/lib-prod/env/env.vscode-plugin.js +137 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +7 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +12 -0
- package/lib-prod/index._auto-generated_.js +20 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +4 -0
- package/lib-prod/index.js +5 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/migrations/index.d.ts +1 -0
- package/lib-prod/migrations/index.js +3 -0
- package/lib-prod/migrations/index.js.map +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/lib-prod/my-organization-proj.d.ts +1 -0
- package/lib-prod/my-organization-proj.js +3 -0
- package/lib-prod/my-organization-proj.js.map +1 -0
- package/lib-prod/package.json +4 -0
- package/lib-prod/start-cli.d.ts +7 -0
- package/lib-prod/start-cli.js +43 -0
- package/lib-prod/start-cli.js.map +1 -0
- package/lib-prod/taon-session/index.d.ts +10 -0
- package/lib-prod/taon-session/index.js +12 -0
- package/lib-prod/taon-session/index.js.map +1 -0
- package/lib-prod/taon-session/taon-session/index.d.ts +1 -0
- package/lib-prod/taon-session/taon-session/index.js +2 -0
- package/lib-prod/taon-session/taon-session/index.js.map +1 -0
- package/lib-prod/taon-session/taon-session-kv.repository.d.ts +11 -0
- package/lib-prod/taon-session/taon-session-kv.repository.js +69 -0
- package/lib-prod/taon-session/taon-session-kv.repository.js.map +1 -0
- package/lib-prod/taon-session/taon-session-user.entity.d.ts +5 -0
- package/lib-prod/taon-session/taon-session-user.entity.js +31 -0
- package/lib-prod/taon-session/taon-session-user.entity.js.map +1 -0
- package/lib-prod/taon-session/taon-session-user.repository.d.ts +5 -0
- package/lib-prod/taon-session/taon-session-user.repository.js +14 -0
- package/lib-prod/taon-session/taon-session-user.repository.js.map +1 -0
- package/lib-prod/taon-session/taon-session.abstract.context.d.ts +19 -0
- package/lib-prod/taon-session/taon-session.abstract.context.js +21 -0
- package/lib-prod/taon-session/taon-session.abstract.context.js.map +1 -0
- package/lib-prod/taon-session/taon-session.controller.d.ts +14 -0
- package/lib-prod/taon-session/taon-session.controller.js +154 -0
- package/lib-prod/taon-session/taon-session.controller.js.map +1 -0
- package/lib-prod/taon-session/taon-session.middleware.d.ts +8 -0
- package/lib-prod/taon-session/taon-session.middleware.js +35 -0
- package/lib-prod/taon-session/taon-session.middleware.js.map +1 -0
- package/lib-prod/taon-session/taon-session.models.d.ts +6 -0
- package/lib-prod/taon-session/taon-session.models.js +5 -0
- package/lib-prod/taon-session/taon-session.models.js.map +1 -0
- package/lib-prod/taon-session/taon-session.provider.d.ts +7 -0
- package/lib-prod/taon-session/taon-session.provider.js +16 -0
- package/lib-prod/taon-session/taon-session.provider.js.map +1 -0
- package/lib-prod/taon-session/taon-session.utils.d.ts +1 -0
- package/lib-prod/taon-session/taon-session.utils.js +4 -0
- package/lib-prod/taon-session/taon-session.utils.js.map +1 -0
- package/lib-prod.re-export.json +1 -0
- package/lib-prod.split-namespaces.json +14 -0
- package/package.json +36 -0
- package/scss/global.scss +93 -0
- package/scss/index.scss +2 -0
- package/scss/lib/index.scss +1 -0
- package/scss/lib/taon-session/taon-session/taon-session.component.scss +3 -0
- package/scss/vars.scss +7 -0
- package/src.d.ts +6 -0
- package/src.js +20 -0
- package/websql/README.md +24 -0
- package/websql/fesm2022/session-websql.mjs +1402 -0
- package/websql/fesm2022/session-websql.mjs.map +1 -0
- package/websql/package.json +23 -0
- package/websql/types/session-websql.d.ts +548 -0
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/session-websql-prod.mjs +1404 -0
- package/websql-prod/fesm2022/session-websql-prod.mjs.map +1 -0
- package/websql-prod/package.json +23 -0
- package/websql-prod/types/session-websql-prod.d.ts +545 -0
- package/websql-prod.re-export.json +1 -0
- 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,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,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,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,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 @@
|
|
|
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"}
|