@powerhousedao/renown-package 0.0.0
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/LICENSE +661 -0
- package/README.md +179 -0
- package/dist/document-models/index.d.ts +2 -0
- package/dist/document-models/index.js +1 -0
- package/dist/document-models/renown-user/gen/actions.d.ts +3 -0
- package/dist/document-models/renown-user/gen/actions.js +1 -0
- package/dist/document-models/renown-user/gen/creators.d.ts +1 -0
- package/dist/document-models/renown-user/gen/creators.js +1 -0
- package/dist/document-models/renown-user/gen/document-model.d.ts +2 -0
- package/dist/document-models/renown-user/gen/document-model.js +70 -0
- package/dist/document-models/renown-user/gen/index.d.ts +7 -0
- package/dist/document-models/renown-user/gen/index.js +6 -0
- package/dist/document-models/renown-user/gen/object.d.ts +14 -0
- package/dist/document-models/renown-user/gen/object.js +25 -0
- package/dist/document-models/renown-user/gen/ph-factories.d.ts +26 -0
- package/dist/document-models/renown-user/gen/ph-factories.js +52 -0
- package/dist/document-models/renown-user/gen/profile/actions.d.ts +15 -0
- package/dist/document-models/renown-user/gen/profile/actions.js +1 -0
- package/dist/document-models/renown-user/gen/profile/creators.d.ts +5 -0
- package/dist/document-models/renown-user/gen/profile/creators.js +5 -0
- package/dist/document-models/renown-user/gen/profile/error.d.ts +1 -0
- package/dist/document-models/renown-user/gen/profile/error.js +1 -0
- package/dist/document-models/renown-user/gen/profile/object.d.ts +8 -0
- package/dist/document-models/renown-user/gen/profile/object.js +13 -0
- package/dist/document-models/renown-user/gen/profile/operations.d.ts +8 -0
- package/dist/document-models/renown-user/gen/profile/operations.js +1 -0
- package/dist/document-models/renown-user/gen/reducer.d.ts +4 -0
- package/dist/document-models/renown-user/gen/reducer.js +28 -0
- package/dist/document-models/renown-user/gen/schema/index.d.ts +2 -0
- package/dist/document-models/renown-user/gen/schema/index.js +2 -0
- package/dist/document-models/renown-user/gen/schema/types.d.ts +154 -0
- package/dist/document-models/renown-user/gen/schema/types.js +1 -0
- package/dist/document-models/renown-user/gen/schema/zod.d.ts +13 -0
- package/dist/document-models/renown-user/gen/schema/zod.js +37 -0
- package/dist/document-models/renown-user/gen/types.d.ts +9 -0
- package/dist/document-models/renown-user/gen/types.js +1 -0
- package/dist/document-models/renown-user/gen/utils.d.ts +21 -0
- package/dist/document-models/renown-user/gen/utils.js +44 -0
- package/dist/document-models/renown-user/index.d.ts +26 -0
- package/dist/document-models/renown-user/index.js +21 -0
- package/dist/document-models/renown-user/src/reducers/profile.d.ts +2 -0
- package/dist/document-models/renown-user/src/reducers/profile.js +11 -0
- package/dist/document-models/renown-user/src/tests/document-model.test.d.ts +5 -0
- package/dist/document-models/renown-user/src/tests/document-model.test.js +18 -0
- package/dist/document-models/renown-user/src/tests/profile.test.d.ts +5 -0
- package/dist/document-models/renown-user/src/tests/profile.test.js +24 -0
- package/dist/document-models/renown-user/src/utils.d.ts +1 -0
- package/dist/document-models/renown-user/src/utils.js +1 -0
- package/dist/editors/hooks/useRenownUserDocument.d.ts +3 -0
- package/dist/editors/hooks/useRenownUserDocument.js +8 -0
- package/dist/editors/index.d.ts +2 -0
- package/dist/editors/index.js +1 -0
- package/dist/editors/renown-user-editor/editor.d.ts +3 -0
- package/dist/editors/renown-user-editor/editor.js +33 -0
- package/dist/editors/renown-user-editor/index.d.ts +2 -0
- package/dist/editors/renown-user-editor/index.js +11 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +6 -0
- package/dist/powerhouse.manifest.json +33 -0
- package/dist/processors/factory.d.ts +7 -0
- package/dist/processors/factory.js +22 -0
- package/dist/processors/index.d.ts +4 -0
- package/dist/processors/index.js +3 -0
- package/dist/processors/renown-user/factory.d.ts +3 -0
- package/dist/processors/renown-user/factory.js +22 -0
- package/dist/processors/renown-user/index.d.ts +9 -0
- package/dist/processors/renown-user/index.js +81 -0
- package/dist/processors/renown-user/migrations.d.ts +3 -0
- package/dist/processors/renown-user/migrations.js +36 -0
- package/dist/processors/renown-user/schema.d.ts +14 -0
- package/dist/processors/renown-user/schema.js +1 -0
- package/dist/style.css +17667 -0
- package/dist/subgraphs/index.d.ts +3 -0
- package/dist/subgraphs/index.js +2 -0
- package/dist/subgraphs/renown-read-model/index.d.ts +10 -0
- package/dist/subgraphs/renown-read-model/index.js +11 -0
- package/dist/subgraphs/renown-read-model/resolvers.d.ts +2 -0
- package/dist/subgraphs/renown-read-model/resolvers.js +106 -0
- package/dist/subgraphs/renown-read-model/schema.d.ts +2 -0
- package/dist/subgraphs/renown-read-model/schema.js +35 -0
- package/dist/subgraphs/renown-user/index.d.ts +10 -0
- package/dist/subgraphs/renown-user/index.js +11 -0
- package/dist/subgraphs/renown-user/resolvers.d.ts +2 -0
- package/dist/subgraphs/renown-user/resolvers.js +108 -0
- package/dist/subgraphs/renown-user/schema.d.ts +2 -0
- package/dist/subgraphs/renown-user/schema.js +63 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +8 -0
- package/package.json +103 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { RelationalDbProcessor } from "document-drive/processors/relational";
|
|
2
|
+
import { up } from "./migrations.js";
|
|
3
|
+
export class RenownUserProcessor extends RelationalDbProcessor {
|
|
4
|
+
static getNamespace(driveId) {
|
|
5
|
+
// Default namespace: `${this.name}_${driveId.replaceAll("-", "_")}`
|
|
6
|
+
return super.getNamespace(driveId);
|
|
7
|
+
}
|
|
8
|
+
async initAndUpgrade() {
|
|
9
|
+
await up(this.relationalDb);
|
|
10
|
+
}
|
|
11
|
+
async onStrands(strands) {
|
|
12
|
+
if (strands.length === 0) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
for (const strand of strands) {
|
|
16
|
+
if (strand.operations.length === 0) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const documentId = strand.documentId;
|
|
20
|
+
// Ensure the User exists in the database
|
|
21
|
+
const existingUser = await this.relationalDb
|
|
22
|
+
.selectFrom("renown_user")
|
|
23
|
+
.select(["document_id"])
|
|
24
|
+
.where("document_id", "=", documentId)
|
|
25
|
+
.executeTakeFirst();
|
|
26
|
+
if (!existingUser) {
|
|
27
|
+
// Create a new User entry
|
|
28
|
+
await this.relationalDb
|
|
29
|
+
.insertInto("renown_user")
|
|
30
|
+
.values({
|
|
31
|
+
document_id: documentId,
|
|
32
|
+
username: null,
|
|
33
|
+
eth_address: null,
|
|
34
|
+
user_image: null,
|
|
35
|
+
created_at: new Date(),
|
|
36
|
+
updated_at: new Date(),
|
|
37
|
+
})
|
|
38
|
+
.execute();
|
|
39
|
+
}
|
|
40
|
+
// Process each operation
|
|
41
|
+
for (const operation of strand.operations) {
|
|
42
|
+
// Update the User based on the operation type
|
|
43
|
+
const updateData = {
|
|
44
|
+
updated_at: new Date(),
|
|
45
|
+
};
|
|
46
|
+
switch (operation.action.type) {
|
|
47
|
+
case "SET_USERNAME": {
|
|
48
|
+
const input = operation.action.input;
|
|
49
|
+
if (input?.username) {
|
|
50
|
+
updateData.username = input.username;
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "SET_ETH_ADDRESS": {
|
|
55
|
+
const input = operation.action.input;
|
|
56
|
+
if (input?.ethAddress) {
|
|
57
|
+
updateData.eth_address = input.ethAddress;
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "SET_USER_IMAGE": {
|
|
62
|
+
const input = operation.action.input;
|
|
63
|
+
if (input?.userImage !== undefined) {
|
|
64
|
+
updateData.user_image = input.userImage || null;
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Apply updates if there are any field changes
|
|
70
|
+
if (Object.keys(updateData).length > 1) {
|
|
71
|
+
await this.relationalDb
|
|
72
|
+
.updateTable("renown_user")
|
|
73
|
+
.set(updateData)
|
|
74
|
+
.where("document_id", "=", documentId)
|
|
75
|
+
.execute();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async onDisconnect() { }
|
|
81
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export async function up(db) {
|
|
2
|
+
await down(db);
|
|
3
|
+
// Create renown_user table
|
|
4
|
+
await db.schema
|
|
5
|
+
.createTable("renown_user")
|
|
6
|
+
.addColumn("document_id", "varchar(255)")
|
|
7
|
+
.addColumn("username", "varchar(255)")
|
|
8
|
+
.addColumn("eth_address", "varchar(42)")
|
|
9
|
+
.addColumn("user_image", "text")
|
|
10
|
+
.addColumn("created_at", "timestamp", (col) => col.defaultTo(db.fn("now")))
|
|
11
|
+
.addColumn("updated_at", "timestamp", (col) => col.defaultTo(db.fn("now")))
|
|
12
|
+
.addPrimaryKeyConstraint("renown_user_pkey", ["document_id"])
|
|
13
|
+
.ifNotExists()
|
|
14
|
+
.execute();
|
|
15
|
+
// Create index on username for faster lookups
|
|
16
|
+
await db.schema
|
|
17
|
+
.createIndex("idx_renown_user_username")
|
|
18
|
+
.on("renown_user")
|
|
19
|
+
.column("username")
|
|
20
|
+
.ifNotExists()
|
|
21
|
+
.execute();
|
|
22
|
+
// Create index on eth_address for faster lookups
|
|
23
|
+
await db.schema
|
|
24
|
+
.createIndex("idx_renown_user_eth_address")
|
|
25
|
+
.on("renown_user")
|
|
26
|
+
.column("eth_address")
|
|
27
|
+
.ifNotExists()
|
|
28
|
+
.execute();
|
|
29
|
+
}
|
|
30
|
+
export async function down(db) {
|
|
31
|
+
// Drop indexes
|
|
32
|
+
await db.schema.dropIndex("idx_renown_user_eth_address").ifExists().execute();
|
|
33
|
+
await db.schema.dropIndex("idx_renown_user_username").ifExists().execute();
|
|
34
|
+
// Drop tables
|
|
35
|
+
await db.schema.dropTable("renown_user").ifExists().execute();
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 RenownUser {
|
|
5
|
+
created_at: Generated<Timestamp | null>;
|
|
6
|
+
document_id: string;
|
|
7
|
+
eth_address: string | null;
|
|
8
|
+
updated_at: Generated<Timestamp | null>;
|
|
9
|
+
user_image: string | null;
|
|
10
|
+
username: string | null;
|
|
11
|
+
}
|
|
12
|
+
export interface DB {
|
|
13
|
+
renown_user: RenownUser;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|