@abtnode/models 1.16.17-beta-3232a7af → 1.16.17-beta-703fb879

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.
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.down = exports.up = void 0;
4
+ const models_1 = require("../../models");
5
+ const models = (0, models_1.getBlockletModels)();
6
+ const up = async ({ context }) => {
7
+ await context.dropTable('user_sessions');
8
+ await context.createTable('user_sessions', models.UserSession.GENESIS_ATTRIBUTES);
9
+ };
10
+ exports.up = up;
11
+ const down = async ({ context }) => {
12
+ await context.dropTable('user_sessions');
13
+ };
14
+ exports.down = down;
@@ -4,6 +4,7 @@ export * from './account';
4
4
  export * from './certificate';
5
5
  export * from './http-challenge';
6
6
  export * from './user';
7
+ export * from './user-session';
7
8
  export * from './passport';
8
9
  export * from './connected-account';
9
10
  export * from './session';
@@ -38,6 +39,7 @@ export declare function getCertificateManagerModels(): {
38
39
  };
39
40
  export declare function getBlockletModels(): {
40
41
  User: import("../types").DynamicModel<import("./user").UserState>;
42
+ UserSession: import("../types").DynamicModel<import("./user-session").UserSessionState>;
41
43
  Passport: import("../types").DynamicModel<import("./passport").PassportState>;
42
44
  ConnectedAccount: import("../types").DynamicModel<import("./connected-account").ConnectedAccountState>;
43
45
  Session: import("../types").DynamicModel<import("./session").SessionState>;
@@ -61,6 +63,7 @@ export declare function getServerModels(): {
61
63
  Session: import("../types").DynamicModel<import("./session").SessionState>;
62
64
  Site: import("../types").DynamicModel<import("./site").SiteState>;
63
65
  User: import("../types").DynamicModel<import("./user").UserState>;
66
+ UserSession: import("../types").DynamicModel<import("./user-session").UserSessionState>;
64
67
  Passport: import("../types").DynamicModel<import("./passport").PassportState>;
65
68
  ConnectedAccount: import("../types").DynamicModel<import("./connected-account").ConnectedAccountState>;
66
69
  WebHook: import("../types").DynamicModel<import("./webhook").WebHookState>;
@@ -44,11 +44,13 @@ const tag_1 = require("./tag");
44
44
  const tagging_1 = require("./tagging");
45
45
  const project_1 = require("./project");
46
46
  const release_1 = require("./release");
47
+ const user_session_1 = require("./user-session");
47
48
  __exportStar(require("./message"), exports);
48
49
  __exportStar(require("./account"), exports);
49
50
  __exportStar(require("./certificate"), exports);
50
51
  __exportStar(require("./http-challenge"), exports);
51
52
  __exportStar(require("./user"), exports);
53
+ __exportStar(require("./user-session"), exports);
52
54
  __exportStar(require("./passport"), exports);
53
55
  __exportStar(require("./connected-account"), exports);
54
56
  __exportStar(require("./session"), exports);
@@ -116,6 +118,7 @@ exports.getCertificateManagerModels = getCertificateManagerModels;
116
118
  function getBlockletModels() {
117
119
  const models = {
118
120
  User: (0, user_1.createUserModel)(),
121
+ UserSession: (0, user_session_1.createUserSessionModel)(),
119
122
  Passport: (0, passport_1.createPassportModel)(),
120
123
  ConnectedAccount: (0, connected_account_1.createConnectedAccountModel)(),
121
124
  Session: (0, session_1.createSessionModel)(),
@@ -143,6 +146,7 @@ function getServerModels() {
143
146
  Session: (0, session_1.createSessionModel)(),
144
147
  Site: (0, site_1.createSiteModel)(),
145
148
  User: (0, user_1.createUserModel)(),
149
+ UserSession: (0, user_session_1.createUserSessionModel)(),
146
150
  Passport: (0, passport_1.createPassportModel)(),
147
151
  ConnectedAccount: (0, connected_account_1.createConnectedAccountModel)(),
148
152
  WebHook: (0, webhook_1.createWebHookModel)(),
@@ -0,0 +1,11 @@
1
+ import { DynamicModel } from '../types';
2
+ export type UserSessionState = {
3
+ id: string;
4
+ visitorId: string;
5
+ userDid: string;
6
+ ua: string;
7
+ lastLoginIp: Date;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ };
11
+ export declare function createUserSessionModel(): DynamicModel<UserSessionState>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUserSessionModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createUserSessionModel() {
7
+ var _a;
8
+ return _a = class UserSession extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ indexes: [{ fields: ['visitorId'] }, { fields: ['userDid'] }],
15
+ modelName: 'UserSession',
16
+ tableName: 'user_sessions',
17
+ timestamps: true,
18
+ });
19
+ }
20
+ static associate(models) {
21
+ UserSession.belongsTo(models.User, {
22
+ foreignKey: 'userDid',
23
+ targetKey: 'did',
24
+ as: 'user',
25
+ });
26
+ }
27
+ },
28
+ _a.GENESIS_ATTRIBUTES = {
29
+ id: {
30
+ type: sequelize_1.DataTypes.STRING(40),
31
+ primaryKey: true,
32
+ allowNull: false,
33
+ defaultValue: util_1.generateId,
34
+ },
35
+ visitorId: {
36
+ type: sequelize_1.DataTypes.STRING(40),
37
+ index: true,
38
+ allowNull: false,
39
+ defaultValue: util_1.generateId,
40
+ },
41
+ appPid: {
42
+ type: sequelize_1.DataTypes.STRING(40),
43
+ index: true,
44
+ },
45
+ userDid: {
46
+ type: sequelize_1.DataTypes.STRING(64),
47
+ index: true,
48
+ allowNull: false,
49
+ references: {
50
+ model: 'users',
51
+ key: 'did',
52
+ },
53
+ },
54
+ ua: {
55
+ type: sequelize_1.DataTypes.STRING(512),
56
+ },
57
+ passportId: {
58
+ type: sequelize_1.DataTypes.STRING(40),
59
+ allowNull: true,
60
+ },
61
+ status: {
62
+ // disabled | online | offline
63
+ type: sequelize_1.DataTypes.STRING(16),
64
+ allowNull: false,
65
+ defaultValue: 'online',
66
+ },
67
+ lastLoginIp: {
68
+ type: sequelize_1.DataTypes.STRING(16),
69
+ },
70
+ extra: {
71
+ type: sequelize_1.DataTypes.JSON,
72
+ },
73
+ createdAt: {
74
+ type: sequelize_1.DataTypes.DATE,
75
+ defaultValue: sequelize_1.DataTypes.NOW,
76
+ },
77
+ updatedAt: {
78
+ type: sequelize_1.DataTypes.DATE,
79
+ defaultValue: sequelize_1.DataTypes.NOW,
80
+ },
81
+ },
82
+ _a;
83
+ }
84
+ exports.createUserSessionModel = createUserSessionModel;
@@ -21,6 +21,12 @@ function createUserModel() {
21
21
  });
22
22
  }
23
23
  static associate(models) {
24
+ User.hasMany(models.UserSession, {
25
+ foreignKey: 'userDid',
26
+ sourceKey: 'did',
27
+ onDelete: 'CASCADE',
28
+ as: 'userSessions',
29
+ });
24
30
  User.hasMany(models.Passport, {
25
31
  foreignKey: 'userDid',
26
32
  onDelete: 'CASCADE',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/models",
3
- "version": "1.16.17-beta-3232a7af",
3
+ "version": "1.16.17-beta-703fb879",
4
4
  "description": "Sequelize models for blocklet server and blocklet service",
5
5
  "homepage": "https://github.com/ArcBlock/blocklet-server#readme",
6
6
  "publishConfig": {
@@ -32,9 +32,9 @@
32
32
  "url": "https://github.com/ArcBlock/blocklet-server/issues"
33
33
  },
34
34
  "dependencies": {
35
- "@abtnode/logger": "1.16.17-beta-3232a7af",
36
- "@abtnode/types": "1.16.17-beta-3232a7af",
37
- "@blocklet/constant": "1.16.17-beta-3232a7af",
35
+ "@abtnode/logger": "1.16.17-beta-703fb879",
36
+ "@abtnode/types": "1.16.17-beta-703fb879",
37
+ "@blocklet/constant": "1.16.17-beta-703fb879",
38
38
  "@nedb/core": "^2.1.5",
39
39
  "lodash.clonedeep": "^4.5.0",
40
40
  "lodash.get": "^4.4.2",
@@ -55,5 +55,5 @@
55
55
  "typescript": "^5.0.4"
56
56
  },
57
57
  "resolutions": {},
58
- "gitHead": "af4067dd2e418c51a0ed96b1ee242ca812904056"
58
+ "gitHead": "97d63c671d823076e58b994107e10866367edd5d"
59
59
  }