@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,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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,qCAAqC,CAAC"}
|
|
File without changes
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"my-organization-proj.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;AAEzB,CAAC"}
|
|
@@ -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 dummy1775980877041(): void;
|
|
@@ -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-prod';
|
|
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-prod';
|
|
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,31 @@
|
|
|
1
|
+
//#region imports
|
|
2
|
+
import { String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity } from 'taon/lib-prod';
|
|
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,EAAmC,cAAc,EAAE,eAAe,EAAgB,sBAAsB,EAAE,UAAU,EAAuT,MAAM,eAAe,CAAC;AAGxc,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,14 @@
|
|
|
1
|
+
//#region imports
|
|
2
|
+
import { TaonBaseRepository, TaonRepository } from 'taon/lib-prod';
|
|
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,eAAe,CAAC;AAGnE,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-prod").EndpointContext>;
|
|
11
|
+
readonly __refSync: import("taon/lib-prod").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-prod").Models__NS__TaonInitializeParams) => Promise<import("taon/lib-prod").EndpointContext>;
|
|
15
|
+
readonly realtime: {
|
|
16
|
+
readonly client: import("taon/lib-prod").RealtimeClient;
|
|
17
|
+
readonly server: import("taon/lib-prod").RealtimeServer;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region imports
|
|
2
|
+
import { createContext, TaonBaseContext } from 'taon/lib-prod';
|
|
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,eAAe,CAAC;AAE/D,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 { TaonBaseController, Taon__NS__Response } from 'taon/lib-prod';
|
|
2
|
+
import { TaonSessionKvRepository } from './taon-session-kv.repository';
|
|
3
|
+
import { TaonSessionUserRepository } from './taon-session-user.repository';
|
|
4
|
+
import { TaonSession__NS__TaonLoginData } 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__NS__TaonLoginData): Taon__NS__Response<boolean>;
|
|
11
|
+
refresh(): Taon__NS__Response<boolean>;
|
|
12
|
+
logout(): Taon__NS__Response<boolean>;
|
|
13
|
+
me(): Taon__NS__Response<string>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
//#region imports
|
|
2
|
+
import jwt from 'jsonwebtoken'; // @backend
|
|
3
|
+
import { TaonController, GET, TaonBaseController, Body, POST, Taon__NS__error } from 'taon/lib-prod';
|
|
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 { TaonSessionProvider } from './taon-session.provider';
|
|
8
|
+
//#endregion
|
|
9
|
+
let TaonSessionController = class TaonSessionController extends TaonBaseController {
|
|
10
|
+
taonSessionKvRepository = this.injectKvRepository(TaonSessionKvRepository);
|
|
11
|
+
taonSessionProvider = this.injectProvider(TaonSessionProvider);
|
|
12
|
+
taonSessionUserRepository = this.injectCustomRepo(TaonSessionUserRepository);
|
|
13
|
+
//#region login
|
|
14
|
+
login(data) {
|
|
15
|
+
//#region @backendFunc
|
|
16
|
+
return async (req, res) => {
|
|
17
|
+
const { email, password } = data || {};
|
|
18
|
+
const user = await this.taonSessionUserRepository.findOne({
|
|
19
|
+
where: {
|
|
20
|
+
email,
|
|
21
|
+
password,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
if (!user) {
|
|
25
|
+
Taon__NS__error({
|
|
26
|
+
status: 401,
|
|
27
|
+
message: 'Invalid credentials',
|
|
28
|
+
});
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
const accessToken = this.taonSessionKvRepository.createAccessToken(user.id);
|
|
32
|
+
const refreshToken = this.taonSessionKvRepository.createRefreshToken(user.id);
|
|
33
|
+
this.taonSessionKvRepository.setAuthCookies(res, accessToken, refreshToken);
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region refresh
|
|
40
|
+
refresh() {
|
|
41
|
+
//#region @backendFunc
|
|
42
|
+
return async (req, res) => {
|
|
43
|
+
const token = req.cookies?.refreshToken;
|
|
44
|
+
if (!token) {
|
|
45
|
+
Taon__NS__error({
|
|
46
|
+
status: 401,
|
|
47
|
+
message: 'No refresh token',
|
|
48
|
+
});
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const payload = jwt.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
|
|
53
|
+
const session = await this.taonSessionKvRepository.get(payload.rtId);
|
|
54
|
+
if (!session) {
|
|
55
|
+
Taon__NS__error({
|
|
56
|
+
status: 401,
|
|
57
|
+
message: 'Invalid refresh token',
|
|
58
|
+
});
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (session.expiresAt < Date.now()) {
|
|
62
|
+
await this.taonSessionKvRepository.delete(payload.rtId);
|
|
63
|
+
Taon__NS__error({
|
|
64
|
+
status: 401,
|
|
65
|
+
message: 'Expired refresh token',
|
|
66
|
+
});
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
// ROTATION (important)
|
|
70
|
+
await this.taonSessionKvRepository.delete(payload.rtId);
|
|
71
|
+
const newAccessToken = this.taonSessionKvRepository.createAccessToken(session.userId);
|
|
72
|
+
const newRefreshToken = this.taonSessionKvRepository.createRefreshToken(session.userId);
|
|
73
|
+
this.taonSessionKvRepository.setAuthCookies(res, newAccessToken, newRefreshToken);
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
Taon__NS__error({
|
|
78
|
+
status: 401,
|
|
79
|
+
message: 'Invalid refresh token',
|
|
80
|
+
});
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
//#endregion
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region logout
|
|
88
|
+
logout() {
|
|
89
|
+
//#region @backendFunc
|
|
90
|
+
return async (req, res) => {
|
|
91
|
+
const token = req.cookies?.refreshToken;
|
|
92
|
+
if (token) {
|
|
93
|
+
try {
|
|
94
|
+
const payload = jwt.verify(token, this.taonSessionProvider.REFRESH_TOKEN_SECRET);
|
|
95
|
+
await this.taonSessionKvRepository.delete(payload.rtId);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(error);
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
this.taonSessionKvRepository.clearAuthCookies(res);
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
//#endregion
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region me
|
|
109
|
+
me() {
|
|
110
|
+
//#region @backendFunc
|
|
111
|
+
return async (req, res) => {
|
|
112
|
+
const userId = req.userId;
|
|
113
|
+
return userId;
|
|
114
|
+
};
|
|
115
|
+
//#endregion
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
__decorate([
|
|
119
|
+
POST(),
|
|
120
|
+
__param(0, Body()),
|
|
121
|
+
__metadata("design:type", Function),
|
|
122
|
+
__metadata("design:paramtypes", [Object]),
|
|
123
|
+
__metadata("design:returntype", Object)
|
|
124
|
+
], TaonSessionController.prototype, "login", null);
|
|
125
|
+
__decorate([
|
|
126
|
+
POST(),
|
|
127
|
+
__metadata("design:type", Function),
|
|
128
|
+
__metadata("design:paramtypes", []),
|
|
129
|
+
__metadata("design:returntype", Object)
|
|
130
|
+
], TaonSessionController.prototype, "refresh", null);
|
|
131
|
+
__decorate([
|
|
132
|
+
POST(),
|
|
133
|
+
__metadata("design:type", Function),
|
|
134
|
+
__metadata("design:paramtypes", []),
|
|
135
|
+
__metadata("design:returntype", Object)
|
|
136
|
+
], TaonSessionController.prototype, "logout", null);
|
|
137
|
+
__decorate([
|
|
138
|
+
GET({
|
|
139
|
+
middlewares: ({ parentMiddlewares }) => ({
|
|
140
|
+
TaonSessionMiddleware,
|
|
141
|
+
...parentMiddlewares,
|
|
142
|
+
}),
|
|
143
|
+
}),
|
|
144
|
+
__metadata("design:type", Function),
|
|
145
|
+
__metadata("design:paramtypes", []),
|
|
146
|
+
__metadata("design:returntype", Object)
|
|
147
|
+
], TaonSessionController.prototype, "me", null);
|
|
148
|
+
TaonSessionController = __decorate([
|
|
149
|
+
TaonController({
|
|
150
|
+
className: 'TaonSessionController',
|
|
151
|
+
})
|
|
152
|
+
], TaonSessionController);
|
|
153
|
+
export { TaonSessionController };
|
|
154
|
+
//# 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-prod';
|
|
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
|
+
}
|