@powerhousedao/vetra-builder-package 0.0.9 → 0.0.11
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/dist/document-models/builder-account/src/reducers/packages.js +7 -6
- package/dist/editors/builder-account-editor/editor.js +16 -21
- package/dist/processors/vetra-read-model/builder-account-handlers.d.ts +27 -0
- package/dist/processors/vetra-read-model/builder-account-handlers.js +249 -0
- package/dist/processors/vetra-read-model/database-helpers.d.ts +34 -0
- package/dist/processors/vetra-read-model/database-helpers.js +121 -0
- package/dist/processors/vetra-read-model/package-handlers.d.ts +20 -0
- package/dist/processors/vetra-read-model/package-handlers.js +116 -0
- package/dist/processors/vetra-read-model/schema.d.ts +41 -38
- package/dist/processors/vetra-read-model/types.d.ts +32 -0
- package/dist/processors/vetra-read-model/types.js +1 -0
- package/dist/style.css +286 -10
- package/package.json +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { DatabaseHelpers } from "./database-helpers.js";
|
|
2
|
+
export class PackageHandlers {
|
|
3
|
+
db;
|
|
4
|
+
dbHelpers;
|
|
5
|
+
constructor(db) {
|
|
6
|
+
this.db = db;
|
|
7
|
+
this.dbHelpers = new DatabaseHelpers(db);
|
|
8
|
+
}
|
|
9
|
+
async handlePackageOperation(documentId, action, state, driveId) {
|
|
10
|
+
const packageDriveId = driveId || "";
|
|
11
|
+
switch (action.type) {
|
|
12
|
+
case "SET_PACKAGE_NAME":
|
|
13
|
+
await this.handleSetPackageName(documentId, packageDriveId, action, state);
|
|
14
|
+
break;
|
|
15
|
+
case "SET_PACKAGE_DESCRIPTION":
|
|
16
|
+
await this.handleSetPackageDescription(documentId, packageDriveId, action, state);
|
|
17
|
+
break;
|
|
18
|
+
case "SET_PACKAGE_CATEGORY":
|
|
19
|
+
await this.handleSetPackageCategory(documentId, packageDriveId, action, state);
|
|
20
|
+
break;
|
|
21
|
+
case "SET_PACKAGE_AUTHOR":
|
|
22
|
+
await this.handleSetPackageAuthor(documentId, packageDriveId, action, state);
|
|
23
|
+
break;
|
|
24
|
+
case "SET_PACKAGE_AUTHOR_NAME":
|
|
25
|
+
await this.handleSetPackageAuthorName(documentId, packageDriveId, action, state);
|
|
26
|
+
break;
|
|
27
|
+
case "SET_PACKAGE_AUTHOR_WEBSITE":
|
|
28
|
+
await this.handleSetPackageAuthorWebsite(documentId, packageDriveId, action, state);
|
|
29
|
+
break;
|
|
30
|
+
case "ADD_PACKAGE_KEYWORD":
|
|
31
|
+
await this.handleAddPackageKeyword(documentId, packageDriveId, action, state);
|
|
32
|
+
break;
|
|
33
|
+
case "REMOVE_PACKAGE_KEYWORD":
|
|
34
|
+
await this.handleRemovePackageKeyword(documentId, packageDriveId, action, state);
|
|
35
|
+
break;
|
|
36
|
+
case "SET_PACKAGE_GITHUB_URL":
|
|
37
|
+
await this.handleSetPackageGithubUrl(documentId, packageDriveId, action, state);
|
|
38
|
+
break;
|
|
39
|
+
case "SET_PACKAGE_NPM_URL":
|
|
40
|
+
await this.handleSetPackageNpmUrl(documentId, packageDriveId, action, state);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async handleSetPackageName(documentId, driveId, action, state) {
|
|
45
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
46
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
47
|
+
name: action.input.name,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async handleSetPackageDescription(documentId, driveId, action, state) {
|
|
51
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
52
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
53
|
+
description: action.input.description,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async handleSetPackageCategory(documentId, driveId, action, state) {
|
|
57
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
58
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
59
|
+
category: action.input.category,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async handleSetPackageAuthor(documentId, driveId, action, state) {
|
|
63
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
64
|
+
const input = action.input;
|
|
65
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
66
|
+
author_name: input.name,
|
|
67
|
+
author_website: input.website,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async handleSetPackageAuthorName(documentId, driveId, action, state) {
|
|
71
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
72
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
73
|
+
author_name: action.input.name,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async handleSetPackageAuthorWebsite(documentId, driveId, action, state) {
|
|
77
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
78
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
79
|
+
author_website: action.input.website,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
async handleAddPackageKeyword(documentId, driveId, action, state) {
|
|
83
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
84
|
+
const input = action.input;
|
|
85
|
+
await this.db
|
|
86
|
+
.insertInto("builder_package_keywords")
|
|
87
|
+
.values({
|
|
88
|
+
id: input.id,
|
|
89
|
+
package_id: documentId,
|
|
90
|
+
label: input.label,
|
|
91
|
+
created_at: new Date(),
|
|
92
|
+
})
|
|
93
|
+
.onConflict((oc) => oc.column("id").doNothing())
|
|
94
|
+
.execute();
|
|
95
|
+
}
|
|
96
|
+
async handleRemovePackageKeyword(documentId, driveId, action, state) {
|
|
97
|
+
const input = action.input;
|
|
98
|
+
await this.db
|
|
99
|
+
.deleteFrom("builder_package_keywords")
|
|
100
|
+
.where("id", "=", input.id)
|
|
101
|
+
.where("package_id", "=", documentId)
|
|
102
|
+
.execute();
|
|
103
|
+
}
|
|
104
|
+
async handleSetPackageGithubUrl(documentId, driveId, action, state) {
|
|
105
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
106
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
107
|
+
github_url: action.input.url,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async handleSetPackageNpmUrl(documentId, driveId, action, state) {
|
|
111
|
+
await this.dbHelpers.ensurePackageExists(documentId, driveId);
|
|
112
|
+
await this.dbHelpers.updatePackage(documentId, {
|
|
113
|
+
npm_url: action.input.url,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -1,56 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ColumnType } from "kysely";
|
|
2
|
+
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
|
|
3
|
+
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
|
|
4
|
+
export interface BuilderAccountMembers {
|
|
5
|
+
builder_account_id: string;
|
|
6
|
+
created_at: Generated<Timestamp>;
|
|
7
|
+
eth_address: string;
|
|
2
8
|
id: string;
|
|
9
|
+
}
|
|
10
|
+
export interface BuilderAccounts {
|
|
11
|
+
created_at: Generated<Timestamp>;
|
|
12
|
+
id: string;
|
|
13
|
+
profile_description: string | null;
|
|
14
|
+
profile_logo: string | null;
|
|
3
15
|
profile_name: string;
|
|
4
16
|
profile_slug: string;
|
|
5
|
-
profile_logo: string | null;
|
|
6
|
-
profile_description: string | null;
|
|
7
|
-
profile_socials_x: string | null;
|
|
8
17
|
profile_socials_github: string | null;
|
|
9
18
|
profile_socials_website: string | null;
|
|
10
|
-
|
|
11
|
-
updated_at:
|
|
12
|
-
}
|
|
13
|
-
export interface BuilderAccountMember {
|
|
14
|
-
id: string;
|
|
15
|
-
builder_account_id: string;
|
|
16
|
-
eth_address: string;
|
|
17
|
-
created_at: Date;
|
|
19
|
+
profile_socials_x: string | null;
|
|
20
|
+
updated_at: Generated<Timestamp>;
|
|
18
21
|
}
|
|
19
|
-
export interface
|
|
22
|
+
export interface BuilderPackageKeywords {
|
|
23
|
+
created_at: Generated<Timestamp>;
|
|
20
24
|
id: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
description: string | null;
|
|
24
|
-
sort_order: number;
|
|
25
|
-
created_at: Date;
|
|
26
|
-
updated_at: Date;
|
|
25
|
+
label: string;
|
|
26
|
+
package_id: string;
|
|
27
27
|
}
|
|
28
|
-
export interface
|
|
29
|
-
id: string;
|
|
30
|
-
space_id: string;
|
|
31
|
-
name: string;
|
|
32
|
-
description: string | null;
|
|
33
|
-
category: string | null;
|
|
28
|
+
export interface BuilderPackages {
|
|
34
29
|
author_name: string;
|
|
35
30
|
author_website: string | null;
|
|
31
|
+
category: string | null;
|
|
32
|
+
created_at: Generated<Timestamp>;
|
|
33
|
+
description: string | null;
|
|
34
|
+
drive_id: string | null;
|
|
36
35
|
github_url: string | null;
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
37
38
|
npm_url: string | null;
|
|
39
|
+
sort_order: Generated<number>;
|
|
40
|
+
space_id: string;
|
|
41
|
+
updated_at: Generated<Timestamp>;
|
|
38
42
|
vetra_drive_url: string | null;
|
|
39
|
-
drive_id: string | null;
|
|
40
|
-
sort_order: number;
|
|
41
|
-
created_at: Date;
|
|
42
|
-
updated_at: Date;
|
|
43
43
|
}
|
|
44
|
-
export interface
|
|
44
|
+
export interface BuilderSpaces {
|
|
45
|
+
builder_account_id: string;
|
|
46
|
+
created_at: Generated<Timestamp>;
|
|
47
|
+
description: string | null;
|
|
45
48
|
id: string;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
sort_order: Generated<number>;
|
|
50
|
+
title: string;
|
|
51
|
+
updated_at: Generated<Timestamp>;
|
|
49
52
|
}
|
|
50
53
|
export interface DB {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
builder_packages:
|
|
55
|
-
|
|
54
|
+
builder_account_members: BuilderAccountMembers;
|
|
55
|
+
builder_accounts: BuilderAccounts;
|
|
56
|
+
builder_package_keywords: BuilderPackageKeywords;
|
|
57
|
+
builder_packages: BuilderPackages;
|
|
58
|
+
builder_spaces: BuilderSpaces;
|
|
56
59
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface SetPackageNameInput {
|
|
2
|
+
name: string;
|
|
3
|
+
}
|
|
4
|
+
export interface SetPackageDescriptionInput {
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SetPackageCategoryInput {
|
|
8
|
+
category: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SetPackageAuthorInput {
|
|
11
|
+
name?: string | null;
|
|
12
|
+
website?: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface SetPackageAuthorNameInput {
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SetPackageAuthorWebsiteInput {
|
|
18
|
+
website: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AddPackageKeywordInput {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RemovePackageKeywordInput {
|
|
25
|
+
id: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SetPackageGithubUrlInput {
|
|
28
|
+
url: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SetPackageNpmUrlInput {
|
|
31
|
+
url: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|