@abtnode/models 1.16.8-next-d1e52353

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 (65) hide show
  1. package/README.md +1 -0
  2. package/lib/index.d.ts +5 -0
  3. package/lib/index.js +21 -0
  4. package/lib/migrate.d.ts +13 -0
  5. package/lib/migrate.js +127 -0
  6. package/lib/migrations/blocklet/20230422000000-genesis.js +21 -0
  7. package/lib/migrations/certificate-manager/20230422000000-genesis.js +19 -0
  8. package/lib/migrations/connect/20230422000000-genesis.js +13 -0
  9. package/lib/migrations/server/20230422000000-genesis.js +45 -0
  10. package/lib/migrations/service/20230422000000-genesis.js +13 -0
  11. package/lib/models/access-key.d.ts +6 -0
  12. package/lib/models/access-key.js +56 -0
  13. package/lib/models/account.d.ts +11 -0
  14. package/lib/models/account.js +56 -0
  15. package/lib/models/audit-log.d.ts +7 -0
  16. package/lib/models/audit-log.js +79 -0
  17. package/lib/models/backup.d.ts +6 -0
  18. package/lib/models/backup.js +72 -0
  19. package/lib/models/blocklet-extra.d.ts +7 -0
  20. package/lib/models/blocklet-extra.js +63 -0
  21. package/lib/models/blocklet.d.ts +6 -0
  22. package/lib/models/blocklet.js +120 -0
  23. package/lib/models/cache.d.ts +8 -0
  24. package/lib/models/cache.js +44 -0
  25. package/lib/models/certificate.d.ts +7 -0
  26. package/lib/models/certificate.js +70 -0
  27. package/lib/models/connected-account.d.ts +8 -0
  28. package/lib/models/connected-account.js +59 -0
  29. package/lib/models/connection.d.ts +23 -0
  30. package/lib/models/connection.js +89 -0
  31. package/lib/models/http-challenge.d.ts +9 -0
  32. package/lib/models/http-challenge.js +49 -0
  33. package/lib/models/index.d.ts +63 -0
  34. package/lib/models/index.js +149 -0
  35. package/lib/models/job.d.ts +13 -0
  36. package/lib/models/job.js +62 -0
  37. package/lib/models/message.d.ts +9 -0
  38. package/lib/models/message.js +54 -0
  39. package/lib/models/migration.d.ts +6 -0
  40. package/lib/models/migration.js +53 -0
  41. package/lib/models/notification.d.ts +4 -0
  42. package/lib/models/notification.js +77 -0
  43. package/lib/models/passport.d.ts +8 -0
  44. package/lib/models/passport.js +89 -0
  45. package/lib/models/rbac.d.ts +13 -0
  46. package/lib/models/rbac.js +65 -0
  47. package/lib/models/server.d.ts +10 -0
  48. package/lib/models/server.js +130 -0
  49. package/lib/models/session.d.ts +10 -0
  50. package/lib/models/session.js +54 -0
  51. package/lib/models/site.d.ts +8 -0
  52. package/lib/models/site.js +62 -0
  53. package/lib/models/user.d.ts +6 -0
  54. package/lib/models/user.js +105 -0
  55. package/lib/models/webhook.d.ts +6 -0
  56. package/lib/models/webhook.js +47 -0
  57. package/lib/states/base.d.ts +40 -0
  58. package/lib/states/base.js +144 -0
  59. package/lib/states/factory.d.ts +1 -0
  60. package/lib/states/factory.js +21 -0
  61. package/lib/types.d.ts +49 -0
  62. package/lib/types.js +2 -0
  63. package/lib/util.d.ts +6 -0
  64. package/lib/util.js +108 -0
  65. package/package.json +58 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBlockletModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createBlockletModel() {
7
+ var _a;
8
+ return _a = class Blocklet extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({ ...this.GENESIS_ATTRIBUTES }, {
11
+ sequelize,
12
+ modelName: 'Blocklet',
13
+ tableName: 'blocklets',
14
+ indexes: [{ fields: ['appDid', 'id'] }, { fields: ['appPid', 'id'] }],
15
+ timestamps: true,
16
+ });
17
+ }
18
+ },
19
+ _a.GENESIS_ATTRIBUTES = {
20
+ id: {
21
+ type: sequelize_1.DataTypes.STRING(40),
22
+ primaryKey: true,
23
+ defaultValue: util_1.generateId,
24
+ },
25
+ appDid: {
26
+ type: sequelize_1.DataTypes.STRING(40),
27
+ index: true,
28
+ allowNull: true,
29
+ },
30
+ appPid: {
31
+ type: sequelize_1.DataTypes.STRING(40),
32
+ index: true,
33
+ allowNull: true,
34
+ },
35
+ mode: {
36
+ type: sequelize_1.DataTypes.STRING(16),
37
+ },
38
+ meta: {
39
+ type: sequelize_1.DataTypes.JSON,
40
+ },
41
+ controller: {
42
+ type: sequelize_1.DataTypes.JSON,
43
+ },
44
+ status: {
45
+ type: sequelize_1.DataTypes.INTEGER,
46
+ },
47
+ source: {
48
+ type: sequelize_1.DataTypes.INTEGER,
49
+ },
50
+ bundleSource: {
51
+ type: sequelize_1.DataTypes.JSON,
52
+ defaultValue: {},
53
+ },
54
+ port: {
55
+ type: sequelize_1.DataTypes.NUMBER,
56
+ },
57
+ ports: {
58
+ type: sequelize_1.DataTypes.JSON,
59
+ defaultValue: {},
60
+ },
61
+ deployedFrom: {
62
+ type: sequelize_1.DataTypes.STRING(512),
63
+ },
64
+ environments: {
65
+ type: sequelize_1.DataTypes.JSON,
66
+ defaultValue: [],
67
+ },
68
+ children: {
69
+ type: sequelize_1.DataTypes.JSON,
70
+ defaultValue: [],
71
+ },
72
+ migratedFrom: {
73
+ type: sequelize_1.DataTypes.JSON,
74
+ defaultValue: [],
75
+ },
76
+ createdAt: {
77
+ type: sequelize_1.DataTypes.DATE,
78
+ defaultValue: sequelize_1.DataTypes.NOW,
79
+ index: true,
80
+ },
81
+ updatedAt: {
82
+ type: sequelize_1.DataTypes.DATE,
83
+ defaultValue: sequelize_1.DataTypes.NOW,
84
+ index: true,
85
+ },
86
+ installedAt: {
87
+ type: sequelize_1.DataTypes.DATE,
88
+ allowNull: true,
89
+ },
90
+ stoppedAt: {
91
+ type: sequelize_1.DataTypes.DATE,
92
+ allowNull: true,
93
+ },
94
+ startedAt: {
95
+ type: sequelize_1.DataTypes.DATE,
96
+ allowNull: true,
97
+ },
98
+ pausedAt: {
99
+ type: sequelize_1.DataTypes.DATE,
100
+ allowNull: true,
101
+ },
102
+ externalSk: {
103
+ type: sequelize_1.DataTypes.BOOLEAN,
104
+ defaultValue: true,
105
+ },
106
+ externalSkSource: {
107
+ type: sequelize_1.DataTypes.STRING(64),
108
+ },
109
+ structVersion: {
110
+ type: sequelize_1.DataTypes.STRING(16),
111
+ },
112
+ // TODO: deprecate this
113
+ structV1Did: {
114
+ type: sequelize_1.DataTypes.STRING(40),
115
+ defaultValue: '',
116
+ },
117
+ },
118
+ _a;
119
+ }
120
+ exports.createBlockletModel = createBlockletModel;
@@ -0,0 +1,8 @@
1
+ import { DynamicModel } from '../types';
2
+ export type CacheState = {
3
+ key: string;
4
+ value: any;
5
+ createdAt: Date;
6
+ updatedAt: Date;
7
+ };
8
+ export declare function createCacheModel(): DynamicModel<CacheState>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCacheModel = void 0;
4
+ // A simple persistent key-value storage
5
+ const sequelize_1 = require("sequelize");
6
+ const util_1 = require("../util");
7
+ function createCacheModel() {
8
+ var _a;
9
+ return _a = class Cache extends sequelize_1.Model {
10
+ static initialize(sequelize) {
11
+ this.init({
12
+ ...this.GENESIS_ATTRIBUTES,
13
+ }, {
14
+ sequelize,
15
+ modelName: 'Cache',
16
+ tableName: 'caches',
17
+ timestamps: true,
18
+ });
19
+ }
20
+ },
21
+ _a.GENESIS_ATTRIBUTES = {
22
+ key: {
23
+ type: sequelize_1.DataTypes.STRING(64),
24
+ primaryKey: true,
25
+ defaultValue: util_1.generateId,
26
+ },
27
+ value: {
28
+ type: sequelize_1.DataTypes.JSON,
29
+ allowNull: false,
30
+ },
31
+ createdAt: {
32
+ type: sequelize_1.DataTypes.DATE,
33
+ defaultValue: sequelize_1.DataTypes.NOW,
34
+ index: true,
35
+ },
36
+ updatedAt: {
37
+ type: sequelize_1.DataTypes.DATE,
38
+ defaultValue: sequelize_1.DataTypes.NOW,
39
+ index: true,
40
+ },
41
+ },
42
+ _a;
43
+ }
44
+ exports.createCacheModel = createCacheModel;
@@ -0,0 +1,7 @@
1
+ import { TCertificate } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type CertificateState = Omit<TCertificate, 'name' | 'matchedSites' | 'status'> & {
4
+ privateKey: string;
5
+ public: boolean;
6
+ };
7
+ export declare function createCertificateModel(): DynamicModel<CertificateState>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCertificateModel = void 0;
4
+ // Storage for multi-queue job storage
5
+ const sequelize_1 = require("sequelize");
6
+ const util_1 = require("../util");
7
+ function createCertificateModel() {
8
+ var _a;
9
+ return _a = class Certificate extends sequelize_1.Model {
10
+ static initialize(sequelize) {
11
+ this.init({
12
+ ...this.GENESIS_ATTRIBUTES,
13
+ }, {
14
+ sequelize,
15
+ indexes: [{ fields: ['domain', 'id'] }],
16
+ modelName: 'Certificate',
17
+ tableName: 'certificates',
18
+ timestamps: true,
19
+ });
20
+ }
21
+ },
22
+ _a.GENESIS_ATTRIBUTES = {
23
+ id: {
24
+ type: sequelize_1.DataTypes.STRING(40),
25
+ primaryKey: true,
26
+ defaultValue: util_1.generateId,
27
+ },
28
+ domain: {
29
+ type: sequelize_1.DataTypes.STRING(255),
30
+ unique: true,
31
+ allowNull: false,
32
+ },
33
+ privateKey: {
34
+ type: sequelize_1.DataTypes.TEXT,
35
+ allowNull: false,
36
+ },
37
+ certificate: {
38
+ type: sequelize_1.DataTypes.TEXT,
39
+ allowNull: false,
40
+ },
41
+ isProtected: {
42
+ type: sequelize_1.DataTypes.BOOLEAN,
43
+ defaultValue: false,
44
+ },
45
+ public: {
46
+ type: sequelize_1.DataTypes.BOOLEAN,
47
+ defaultValue: false,
48
+ },
49
+ source: {
50
+ type: sequelize_1.DataTypes.STRING(32),
51
+ allowNull: false,
52
+ },
53
+ meta: {
54
+ type: sequelize_1.DataTypes.JSON,
55
+ defaultValue: {},
56
+ },
57
+ createdAt: {
58
+ type: sequelize_1.DataTypes.DATE,
59
+ defaultValue: sequelize_1.DataTypes.NOW,
60
+ index: true,
61
+ },
62
+ updatedAt: {
63
+ type: sequelize_1.DataTypes.DATE,
64
+ defaultValue: sequelize_1.DataTypes.NOW,
65
+ index: true,
66
+ },
67
+ },
68
+ _a;
69
+ }
70
+ exports.createCertificateModel = createCertificateModel;
@@ -0,0 +1,8 @@
1
+ import { TConnectedAccount } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type ConnectedAccountState = TConnectedAccount & {
4
+ userDid: string;
5
+ firstLoginAt: Date;
6
+ lastLoginIp: string;
7
+ };
8
+ export declare function createConnectedAccountModel(): DynamicModel<ConnectedAccountState>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConnectedAccountModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ function createConnectedAccountModel() {
6
+ var _a;
7
+ return _a = class ConnectedAccount extends sequelize_1.Model {
8
+ static initialize(sequelize) {
9
+ this.init({
10
+ ...this.GENESIS_ATTRIBUTES,
11
+ }, {
12
+ sequelize,
13
+ modelName: 'ConnectedAccount',
14
+ tableName: 'connected_accounts',
15
+ timestamps: false,
16
+ });
17
+ }
18
+ static associate(models) {
19
+ ConnectedAccount.belongsTo(models.User, {
20
+ foreignKey: 'userDid',
21
+ as: 'user',
22
+ });
23
+ }
24
+ },
25
+ _a.GENESIS_ATTRIBUTES = {
26
+ did: {
27
+ type: sequelize_1.DataTypes.STRING(40),
28
+ primaryKey: true,
29
+ },
30
+ pk: {
31
+ type: sequelize_1.DataTypes.STRING(256),
32
+ },
33
+ userDid: {
34
+ type: sequelize_1.DataTypes.STRING(40),
35
+ index: true,
36
+ references: {
37
+ model: 'users',
38
+ key: 'did',
39
+ },
40
+ },
41
+ provider: {
42
+ type: sequelize_1.DataTypes.STRING(32),
43
+ },
44
+ id: {
45
+ type: sequelize_1.DataTypes.STRING(64),
46
+ },
47
+ firstLoginAt: {
48
+ type: sequelize_1.DataTypes.DATE,
49
+ },
50
+ lastLoginAt: {
51
+ type: sequelize_1.DataTypes.DATE,
52
+ },
53
+ lastLoginIp: {
54
+ type: sequelize_1.DataTypes.STRING,
55
+ },
56
+ },
57
+ _a;
58
+ }
59
+ exports.createConnectedAccountModel = createConnectedAccountModel;
@@ -0,0 +1,23 @@
1
+ import { DynamicModel } from '../types';
2
+ export type ConnectionState = {
3
+ id: string;
4
+ token: string;
5
+ status: string;
6
+ currentStep: number;
7
+ mfaSupported: boolean;
8
+ challenge: string;
9
+ sharedKey: string;
10
+ extraParams: Record<string, any>;
11
+ appInfo: Record<string, any>;
12
+ clientVersion: string;
13
+ encryptionKey: string;
14
+ connectedWallet: Record<string, string>;
15
+ did: string;
16
+ pk: string;
17
+ mfaCode: number;
18
+ appDid: string;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ [key: string]: any;
22
+ };
23
+ export declare function createConnectionModel(): DynamicModel<ConnectionState>;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConnectionModel = void 0;
4
+ // Storage for did-connect sessions
5
+ const sequelize_1 = require("sequelize");
6
+ function createConnectionModel() {
7
+ var _a;
8
+ return _a = class Connection extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ modelName: 'Connection',
15
+ tableName: 'connections',
16
+ timestamps: true,
17
+ });
18
+ }
19
+ },
20
+ _a.GENESIS_ATTRIBUTES = {
21
+ token: {
22
+ type: sequelize_1.DataTypes.STRING(16),
23
+ primaryKey: true,
24
+ },
25
+ status: {
26
+ type: sequelize_1.DataTypes.STRING(16),
27
+ index: true,
28
+ },
29
+ currentStep: {
30
+ type: sequelize_1.DataTypes.INTEGER,
31
+ },
32
+ mfaSupported: {
33
+ type: sequelize_1.DataTypes.BOOLEAN,
34
+ default: false,
35
+ },
36
+ challenge: {
37
+ type: sequelize_1.DataTypes.STRING(32),
38
+ },
39
+ sharedKey: {
40
+ type: sequelize_1.DataTypes.STRING(32),
41
+ },
42
+ extraParams: {
43
+ type: sequelize_1.DataTypes.JSON,
44
+ },
45
+ appInfo: {
46
+ type: sequelize_1.DataTypes.JSON,
47
+ },
48
+ clientVersion: {
49
+ type: sequelize_1.DataTypes.STRING(8),
50
+ },
51
+ encryptionKey: {
52
+ type: sequelize_1.DataTypes.STRING(512),
53
+ },
54
+ connectedWallet: {
55
+ type: sequelize_1.DataTypes.JSON,
56
+ },
57
+ did: {
58
+ type: sequelize_1.DataTypes.STRING(40),
59
+ },
60
+ pk: {
61
+ type: sequelize_1.DataTypes.STRING(128),
62
+ },
63
+ mfaCode: {
64
+ type: sequelize_1.DataTypes.INTEGER,
65
+ },
66
+ appDid: {
67
+ type: sequelize_1.DataTypes.STRING(40),
68
+ },
69
+ error: {
70
+ type: sequelize_1.DataTypes.STRING(256),
71
+ },
72
+ __extra: {
73
+ type: sequelize_1.DataTypes.JSON,
74
+ defaultValue: {},
75
+ },
76
+ createdAt: {
77
+ type: sequelize_1.DataTypes.DATE,
78
+ defaultValue: sequelize_1.DataTypes.NOW,
79
+ index: true,
80
+ },
81
+ updatedAt: {
82
+ type: sequelize_1.DataTypes.DATE,
83
+ defaultValue: sequelize_1.DataTypes.NOW,
84
+ index: true,
85
+ },
86
+ },
87
+ _a;
88
+ }
89
+ exports.createConnectionModel = createConnectionModel;
@@ -0,0 +1,9 @@
1
+ import { DynamicModel } from '../types';
2
+ export type HttpChallengeState = {
3
+ id: string;
4
+ key: string;
5
+ value: string;
6
+ createdAt: Date;
7
+ updatedAt: Date;
8
+ };
9
+ export declare function createHttpChallengeModel(): DynamicModel<HttpChallengeState>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHttpChallengeModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createHttpChallengeModel() {
7
+ var _a;
8
+ return _a = class HttpChallenge extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ indexes: [{ fields: ['key', 'id'] }],
15
+ modelName: 'HttpChallenge',
16
+ tableName: 'http_challenges',
17
+ timestamps: true,
18
+ });
19
+ }
20
+ },
21
+ _a.GENESIS_ATTRIBUTES = {
22
+ id: {
23
+ type: sequelize_1.DataTypes.STRING(40),
24
+ primaryKey: true,
25
+ defaultValue: util_1.generateId,
26
+ },
27
+ key: {
28
+ type: sequelize_1.DataTypes.STRING(255),
29
+ unique: true,
30
+ allowNull: false,
31
+ },
32
+ value: {
33
+ type: sequelize_1.DataTypes.STRING(512),
34
+ allowNull: false,
35
+ },
36
+ createdAt: {
37
+ type: sequelize_1.DataTypes.DATE,
38
+ defaultValue: sequelize_1.DataTypes.NOW,
39
+ index: true,
40
+ },
41
+ updatedAt: {
42
+ type: sequelize_1.DataTypes.DATE,
43
+ defaultValue: sequelize_1.DataTypes.NOW,
44
+ index: true,
45
+ },
46
+ },
47
+ _a;
48
+ }
49
+ exports.createHttpChallengeModel = createHttpChallengeModel;
@@ -0,0 +1,63 @@
1
+ import { Sequelize } from 'sequelize';
2
+ export * from './message';
3
+ export * from './account';
4
+ export * from './certificate';
5
+ export * from './http-challenge';
6
+ export * from './user';
7
+ export * from './passport';
8
+ export * from './connected-account';
9
+ export * from './session';
10
+ export * from './rbac';
11
+ export * from './access-key';
12
+ export * from './audit-log';
13
+ export * from './blocklet-extra';
14
+ export * from './blocklet';
15
+ export * from './cache';
16
+ export * from './job';
17
+ export * from './migration';
18
+ export * from './notification';
19
+ export * from './server';
20
+ export * from './site';
21
+ export * from './webhook';
22
+ export * from './connection';
23
+ export * from './backup';
24
+ export declare function createSequelize(dbPath: string, config?: Record<string, any>): any;
25
+ export declare function getServiceModels(): {
26
+ Message: import("../types").DynamicModel<import("./message").MessageState>;
27
+ };
28
+ export declare function getCertificateManagerModels(): {
29
+ Account: import("../types").DynamicModel<import("./account").AccountState>;
30
+ Certificate: import("../types").DynamicModel<import("./certificate").CertificateState>;
31
+ HttpChallenge: import("../types").DynamicModel<import("./http-challenge").HttpChallengeState>;
32
+ Job: import("../types").DynamicModel<import("./job").JobState>;
33
+ };
34
+ export declare function getBlockletModels(): {
35
+ User: import("../types").DynamicModel<import("./user").UserState>;
36
+ Passport: import("../types").DynamicModel<import("./passport").PassportState>;
37
+ ConnectedAccount: import("../types").DynamicModel<import("./connected-account").ConnectedAccountState>;
38
+ Session: import("../types").DynamicModel<import("./session").SessionState>;
39
+ Rbac: import("../types").DynamicModel<import("./rbac").RbacState>;
40
+ };
41
+ export declare function getServerModels(): {
42
+ AccessKey: import("../types").DynamicModel<import("./access-key").AccessKeyState>;
43
+ AuditLog: import("../types").DynamicModel<import("./audit-log").AuditLogState>;
44
+ BlockletExtra: import("../types").DynamicModel<import("./blocklet-extra").BlockletExtraState>;
45
+ Blocklet: import("../types").DynamicModel<import("./blocklet").BlockletState>;
46
+ Cache: import("../types").DynamicModel<import("./cache").CacheState>;
47
+ Job: import("../types").DynamicModel<import("./job").JobState>;
48
+ Migration: import("../types").DynamicModel<import("./migration").MigrationState>;
49
+ Notification: import("../types").DynamicModel<import("@abtnode/types").TNotification>;
50
+ Rbac: import("../types").DynamicModel<import("./rbac").RbacState>;
51
+ Server: import("../types").DynamicModel<import("./server").ServerState>;
52
+ Session: import("../types").DynamicModel<import("./session").SessionState>;
53
+ Site: import("../types").DynamicModel<import("./site").SiteState>;
54
+ User: import("../types").DynamicModel<import("./user").UserState>;
55
+ Passport: import("../types").DynamicModel<import("./passport").PassportState>;
56
+ ConnectedAccount: import("../types").DynamicModel<import("./connected-account").ConnectedAccountState>;
57
+ WebHook: import("../types").DynamicModel<import("./webhook").WebHookState>;
58
+ Backup: import("../types").DynamicModel<import("./backup").BackupState>;
59
+ };
60
+ export declare function getConnectModels(): {
61
+ Connection: import("../types").DynamicModel<import("./connection").ConnectionState>;
62
+ };
63
+ export declare function setupModels(models: any, sequelize: Sequelize): void;