@powerhousedao/renown-package 0.0.0 → 0.0.2

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 (61) hide show
  1. package/dist/document-models/index.d.ts +1 -0
  2. package/dist/document-models/index.js +1 -0
  3. package/dist/document-models/renown-credential/gen/actions.d.ts +3 -0
  4. package/dist/document-models/renown-credential/gen/actions.js +1 -0
  5. package/dist/document-models/renown-credential/gen/creators.d.ts +1 -0
  6. package/dist/document-models/renown-credential/gen/creators.js +1 -0
  7. package/dist/document-models/renown-credential/gen/document-model.d.ts +2 -0
  8. package/dist/document-models/renown-credential/gen/document-model.js +59 -0
  9. package/dist/document-models/renown-credential/gen/index.d.ts +7 -0
  10. package/dist/document-models/renown-credential/gen/index.js +6 -0
  11. package/dist/document-models/renown-credential/gen/manager/actions.d.ts +11 -0
  12. package/dist/document-models/renown-credential/gen/manager/actions.js +1 -0
  13. package/dist/document-models/renown-credential/gen/manager/creators.d.ts +4 -0
  14. package/dist/document-models/renown-credential/gen/manager/creators.js +4 -0
  15. package/dist/document-models/renown-credential/gen/manager/error.d.ts +1 -0
  16. package/dist/document-models/renown-credential/gen/manager/error.js +1 -0
  17. package/dist/document-models/renown-credential/gen/manager/object.d.ts +7 -0
  18. package/dist/document-models/renown-credential/gen/manager/object.js +10 -0
  19. package/dist/document-models/renown-credential/gen/manager/operations.d.ts +7 -0
  20. package/dist/document-models/renown-credential/gen/manager/operations.js +1 -0
  21. package/dist/document-models/renown-credential/gen/object.d.ts +14 -0
  22. package/dist/document-models/renown-credential/gen/object.js +25 -0
  23. package/dist/document-models/renown-credential/gen/ph-factories.d.ts +26 -0
  24. package/dist/document-models/renown-credential/gen/ph-factories.js +55 -0
  25. package/dist/document-models/renown-credential/gen/reducer.d.ts +4 -0
  26. package/dist/document-models/renown-credential/gen/reducer.js +24 -0
  27. package/dist/document-models/renown-credential/gen/schema/index.d.ts +2 -0
  28. package/dist/document-models/renown-credential/gen/schema/index.js +2 -0
  29. package/dist/document-models/renown-credential/gen/schema/types.d.ts +156 -0
  30. package/dist/document-models/renown-credential/gen/schema/types.js +1 -0
  31. package/dist/document-models/renown-credential/gen/schema/zod.d.ts +12 -0
  32. package/dist/document-models/renown-credential/gen/schema/zod.js +30 -0
  33. package/dist/document-models/renown-credential/gen/types.d.ts +9 -0
  34. package/dist/document-models/renown-credential/gen/types.js +1 -0
  35. package/dist/document-models/renown-credential/gen/utils.d.ts +21 -0
  36. package/dist/document-models/renown-credential/gen/utils.js +47 -0
  37. package/dist/document-models/renown-credential/index.d.ts +25 -0
  38. package/dist/document-models/renown-credential/index.js +21 -0
  39. package/dist/document-models/renown-credential/src/reducers/manager.d.ts +2 -0
  40. package/dist/document-models/renown-credential/src/reducers/manager.js +23 -0
  41. package/dist/document-models/renown-credential/src/tests/document-model.test.d.ts +5 -0
  42. package/dist/document-models/renown-credential/src/tests/document-model.test.js +18 -0
  43. package/dist/document-models/renown-credential/src/tests/manager.test.d.ts +5 -0
  44. package/dist/document-models/renown-credential/src/tests/manager.test.js +32 -0
  45. package/dist/document-models/renown-credential/src/utils.d.ts +1 -0
  46. package/dist/document-models/renown-credential/src/utils.js +1 -0
  47. package/dist/editors/renown-user-editor/editor.js +5 -5
  48. package/dist/index.d.ts +1 -1
  49. package/dist/powerhouse.manifest.json +4 -0
  50. package/dist/style.css +133 -139
  51. package/dist/subgraphs/index.d.ts +1 -0
  52. package/dist/subgraphs/index.js +1 -0
  53. package/dist/subgraphs/renown-credential/index.d.ts +10 -0
  54. package/dist/subgraphs/renown-credential/index.js +11 -0
  55. package/dist/subgraphs/renown-credential/resolvers.d.ts +2 -0
  56. package/dist/subgraphs/renown-credential/resolvers.js +96 -0
  57. package/dist/subgraphs/renown-credential/schema.d.ts +2 -0
  58. package/dist/subgraphs/renown-credential/schema.js +60 -0
  59. package/dist/subgraphs/renown-read-model/resolvers.js +3 -99
  60. package/dist/subgraphs/renown-read-model/schema.js +2 -28
  61. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
3
+ export declare class RenownCredentialSubgraph extends Subgraph {
4
+ name: string;
5
+ typeDefs: DocumentNode;
6
+ resolvers: Record<string, unknown>;
7
+ additionalContextFields: {};
8
+ onSetup(): Promise<void>;
9
+ onDisconnect(): Promise<void>;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import { schema } from "./schema.js";
3
+ import { getResolvers } from "./resolvers.js";
4
+ export class RenownCredentialSubgraph extends Subgraph {
5
+ name = "renown-credential";
6
+ typeDefs = schema;
7
+ resolvers = getResolvers(this);
8
+ additionalContextFields = {};
9
+ async onSetup() { }
10
+ async onDisconnect() { }
11
+ }
@@ -0,0 +1,2 @@
1
+ import { type Subgraph } from "@powerhousedao/reactor-api";
2
+ export declare const getResolvers: (subgraph: Subgraph) => Record<string, unknown>;
@@ -0,0 +1,96 @@
1
+ import { addFile } from "document-drive";
2
+ import { actions, } from "../../document-models/renown-credential/index.js";
3
+ import { setName } from "document-model";
4
+ export const getResolvers = (subgraph) => {
5
+ const reactor = subgraph.reactor;
6
+ return {
7
+ Query: {
8
+ RenownCredential: async () => {
9
+ return {
10
+ getDocument: async (args) => {
11
+ const { docId, driveId } = args;
12
+ if (!docId) {
13
+ throw new Error("Document id is required");
14
+ }
15
+ if (driveId) {
16
+ const docIds = await reactor.getDocuments(driveId);
17
+ if (!docIds.includes(docId)) {
18
+ throw new Error(`Document with id ${docId} is not part of ${driveId}`);
19
+ }
20
+ }
21
+ const doc = await reactor.getDocument(docId);
22
+ return {
23
+ driveId: driveId,
24
+ ...doc,
25
+ ...doc.header,
26
+ created: doc.header.createdAtUtcIso,
27
+ lastModified: doc.header.lastModifiedAtUtcIso,
28
+ state: doc.state.global,
29
+ stateJSON: doc.state.global,
30
+ revision: doc.header?.revision?.global ?? 0,
31
+ };
32
+ },
33
+ getDocuments: async (args) => {
34
+ const { driveId } = args;
35
+ const docsIds = await reactor.getDocuments(driveId);
36
+ const docs = await Promise.all(docsIds.map(async (docId) => {
37
+ const doc = await reactor.getDocument(docId);
38
+ return {
39
+ driveId: driveId,
40
+ ...doc,
41
+ ...doc.header,
42
+ created: doc.header.createdAtUtcIso,
43
+ lastModified: doc.header.lastModifiedAtUtcIso,
44
+ state: doc.state.global,
45
+ stateJSON: doc.state.global,
46
+ revision: doc.header?.revision?.global ?? 0,
47
+ };
48
+ }));
49
+ return docs.filter((doc) => doc.header.documentType === "renown/credential");
50
+ },
51
+ };
52
+ },
53
+ },
54
+ Mutation: {
55
+ RenownCredential_createDocument: async (_, args) => {
56
+ const { driveId, name } = args;
57
+ const document = await reactor.addDocument("renown/credential");
58
+ if (driveId) {
59
+ await reactor.addAction(driveId, addFile({
60
+ name,
61
+ id: document.header.id,
62
+ documentType: "renown/credential",
63
+ }));
64
+ }
65
+ if (name) {
66
+ await reactor.addAction(document.header.id, setName(name));
67
+ }
68
+ return document.header.id;
69
+ },
70
+ RenownCredential_init: async (_, args) => {
71
+ const { docId, input } = args;
72
+ const doc = await reactor.getDocument(docId);
73
+ if (!doc) {
74
+ throw new Error("Document not found");
75
+ }
76
+ const result = await reactor.addAction(docId, actions.init(input));
77
+ if (result.status !== "SUCCESS") {
78
+ throw new Error(result.error?.message ?? "Failed to init");
79
+ }
80
+ return true;
81
+ },
82
+ RenownCredential_revoke: async (_, args) => {
83
+ const { docId, input } = args;
84
+ const doc = await reactor.getDocument(docId);
85
+ if (!doc) {
86
+ throw new Error("Document not found");
87
+ }
88
+ const result = await reactor.addAction(docId, actions.revoke(input));
89
+ if (result.status !== "SUCCESS") {
90
+ throw new Error(result.error?.message ?? "Failed to revoke");
91
+ }
92
+ return true;
93
+ },
94
+ },
95
+ };
96
+ };
@@ -0,0 +1,2 @@
1
+ import type { DocumentNode } from "graphql";
2
+ export declare const schema: DocumentNode;
@@ -0,0 +1,60 @@
1
+ import { gql } from "graphql-tag";
2
+ export const schema = gql `
3
+ """
4
+ Subgraph definition for RenownCredential (renown/credential)
5
+ """
6
+ type RenownCredentialState {
7
+ "Add your global state fields here"
8
+ jwt: String
9
+ revoked: Boolean
10
+ issuer: String
11
+ subject: String
12
+ audience: String
13
+ payload: String
14
+ }
15
+
16
+ """
17
+ Queries: RenownCredential
18
+ """
19
+ type RenownCredentialQueries {
20
+ getDocument(docId: PHID!, driveId: PHID): RenownCredential
21
+ getDocuments(driveId: String!): [RenownCredential!]
22
+ }
23
+
24
+ type Query {
25
+ RenownCredential: RenownCredentialQueries
26
+ }
27
+
28
+ """
29
+ Mutations: RenownCredential
30
+ """
31
+ type Mutation {
32
+ RenownCredential_createDocument(name: String!, driveId: String): String
33
+
34
+ RenownCredential_init(
35
+ driveId: String
36
+ docId: PHID
37
+ input: RenownCredential_InitInput
38
+ ): Int
39
+ RenownCredential_revoke(
40
+ driveId: String
41
+ docId: PHID
42
+ input: RenownCredential_RevokeInput
43
+ ): Int
44
+ }
45
+
46
+ """
47
+ Module: Manager
48
+ """
49
+ input RenownCredential_InitInput {
50
+ "Add your inputs here"
51
+ jwt: String!
52
+ issuer: String
53
+ subject: String
54
+ audience: String
55
+ payload: String
56
+ }
57
+ input RenownCredential_RevokeInput {
58
+ jwt: String
59
+ }
60
+ `;
@@ -1,105 +1,9 @@
1
- import { RenownUserProcessor } from "../../processors/renown-user/index.js";
2
- const mapToProfile = (user) => ({
3
- documentId: user.document_id,
4
- username: user.username,
5
- ethAddress: user.eth_address,
6
- userImage: user.user_image,
7
- createdAt: user.created_at,
8
- updatedAt: user.updated_at,
9
- });
10
1
  export const getResolvers = (subgraph) => {
11
- const db = subgraph.relationalDb;
2
+ const reactor = subgraph.reactor;
12
3
  return {
13
4
  Query: {
14
- getProfile: async (parent, args) => {
15
- const { driveId, id, username, ethAddress, searchInput } = args.input;
16
- let query = RenownUserProcessor.query(driveId, db).selectFrom("renown_user");
17
- // Priority: id > username > ethAddress > searchInput
18
- if (id) {
19
- query = query.where("renown_user.document_id", "=", id);
20
- }
21
- else if (username) {
22
- query = query.where("renown_user.username", "=", username);
23
- }
24
- else if (ethAddress) {
25
- query = query.where("renown_user.eth_address", "=", ethAddress);
26
- }
27
- else if (searchInput) {
28
- // Search across username and eth_address
29
- query = query.where((eb) => eb.or([
30
- eb("renown_user.username", "like", `%${searchInput}%`),
31
- eb("renown_user.eth_address", "like", `%${searchInput}%`),
32
- ]));
33
- }
34
- else {
35
- throw new Error("At least one of id, username, ethAddress, or searchInput must be provided");
36
- }
37
- const result = await query.selectAll().executeTakeFirst();
38
- return result ? mapToProfile(result) : null;
39
- },
40
- getProfiles: async (parent, args) => {
41
- const { driveId, ids, usernames, ethAddresses, searchString } = args.input;
42
- let query = RenownUserProcessor.query(driveId, db).selectFrom("renown_user");
43
- // Build OR conditions based on provided inputs
44
- if (ids && ids.length > 0) {
45
- query = query.where((eb) => eb.or([
46
- eb("renown_user.document_id", "in", ids),
47
- ...(usernames && usernames.length > 0
48
- ? [eb("renown_user.username", "in", usernames)]
49
- : []),
50
- ...(ethAddresses && ethAddresses.length > 0
51
- ? [eb("renown_user.eth_address", "in", ethAddresses)]
52
- : []),
53
- ...(searchString
54
- ? [
55
- eb.or([
56
- eb("renown_user.username", "like", `%${searchString}%`),
57
- eb("renown_user.eth_address", "like", `%${searchString}%`),
58
- ]),
59
- ]
60
- : []),
61
- ]));
62
- }
63
- else if (usernames && usernames.length > 0) {
64
- query = query.where((eb) => eb.or([
65
- eb("renown_user.username", "in", usernames),
66
- ...(ethAddresses && ethAddresses.length > 0
67
- ? [eb("renown_user.eth_address", "in", ethAddresses)]
68
- : []),
69
- ...(searchString
70
- ? [
71
- eb.or([
72
- eb("renown_user.username", "like", `%${searchString}%`),
73
- eb("renown_user.eth_address", "like", `%${searchString}%`),
74
- ]),
75
- ]
76
- : []),
77
- ]));
78
- }
79
- else if (ethAddresses && ethAddresses.length > 0) {
80
- query = query.where((eb) => eb.or([
81
- eb("renown_user.eth_address", "in", ethAddresses),
82
- ...(searchString
83
- ? [
84
- eb.or([
85
- eb("renown_user.username", "like", `%${searchString}%`),
86
- eb("renown_user.eth_address", "like", `%${searchString}%`),
87
- ]),
88
- ]
89
- : []),
90
- ]));
91
- }
92
- else if (searchString) {
93
- query = query.where((eb) => eb.or([
94
- eb("renown_user.username", "like", `%${searchString}%`),
95
- eb("renown_user.eth_address", "like", `%${searchString}%`),
96
- ]));
97
- }
98
- else {
99
- throw new Error("At least one of ids, usernames, ethAddresses, or searchString must be provided");
100
- }
101
- const results = await query.selectAll().execute();
102
- return results.map(mapToProfile);
5
+ example: async (parent, args) => {
6
+ return "example";
103
7
  },
104
8
  },
105
9
  };
@@ -1,35 +1,9 @@
1
1
  import { gql } from "graphql-tag";
2
2
  export const schema = gql `
3
3
  """
4
- Subgraph definition for Renown Read Model
4
+ Subgraph definition
5
5
  """
6
- type RenownProfile {
7
- documentId: String!
8
- username: String
9
- ethAddress: String
10
- userImage: String
11
- createdAt: String
12
- updatedAt: String
13
- }
14
-
15
- input GetProfileInput {
16
- driveId: String!
17
- id: String
18
- username: String
19
- ethAddress: String
20
- searchInput: String
21
- }
22
-
23
- input GetProfilesInput {
24
- driveId: String!
25
- ids: [String!]
26
- usernames: [String!]
27
- ethAddresses: [String!]
28
- searchString: String
29
- }
30
-
31
6
  type Query {
32
- getProfile(input: GetProfileInput!): RenownProfile
33
- getProfiles(input: GetProfilesInput!): [RenownProfile!]!
7
+ example(driveId: String!): String
34
8
  }
35
9
  `;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powerhousedao/renown-package",
3
3
  "description": "",
4
- "version": "0.0.0",
4
+ "version": "0.0.2",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
7
7
  "files": [