@powerhousedao/vetra-builder-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.
Files changed (185) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +179 -0
  3. package/dist/document-models/builder-account/gen/actions.d.ts +9 -0
  4. package/dist/document-models/builder-account/gen/actions.js +4 -0
  5. package/dist/document-models/builder-account/gen/creators.d.ts +4 -0
  6. package/dist/document-models/builder-account/gen/creators.js +4 -0
  7. package/dist/document-models/builder-account/gen/document-model.d.ts +2 -0
  8. package/dist/document-models/builder-account/gen/document-model.js +253 -0
  9. package/dist/document-models/builder-account/gen/index.d.ts +7 -0
  10. package/dist/document-models/builder-account/gen/index.js +6 -0
  11. package/dist/document-models/builder-account/gen/members/actions.d.ts +11 -0
  12. package/dist/document-models/builder-account/gen/members/actions.js +1 -0
  13. package/dist/document-models/builder-account/gen/members/creators.d.ts +4 -0
  14. package/dist/document-models/builder-account/gen/members/creators.js +4 -0
  15. package/dist/document-models/builder-account/gen/members/error.d.ts +1 -0
  16. package/dist/document-models/builder-account/gen/members/error.js +1 -0
  17. package/dist/document-models/builder-account/gen/members/object.d.ts +7 -0
  18. package/dist/document-models/builder-account/gen/members/object.js +10 -0
  19. package/dist/document-models/builder-account/gen/members/operations.d.ts +7 -0
  20. package/dist/document-models/builder-account/gen/members/operations.js +1 -0
  21. package/dist/document-models/builder-account/gen/object.d.ts +20 -0
  22. package/dist/document-models/builder-account/gen/object.js +36 -0
  23. package/dist/document-models/builder-account/gen/packages/actions.d.ts +23 -0
  24. package/dist/document-models/builder-account/gen/packages/actions.js +1 -0
  25. package/dist/document-models/builder-account/gen/packages/creators.d.ts +7 -0
  26. package/dist/document-models/builder-account/gen/packages/creators.js +7 -0
  27. package/dist/document-models/builder-account/gen/packages/error.d.ts +1 -0
  28. package/dist/document-models/builder-account/gen/packages/error.js +1 -0
  29. package/dist/document-models/builder-account/gen/packages/object.d.ts +10 -0
  30. package/dist/document-models/builder-account/gen/packages/object.js +19 -0
  31. package/dist/document-models/builder-account/gen/packages/operations.d.ts +10 -0
  32. package/dist/document-models/builder-account/gen/packages/operations.js +1 -0
  33. package/dist/document-models/builder-account/gen/ph-factories.d.ts +26 -0
  34. package/dist/document-models/builder-account/gen/ph-factories.js +62 -0
  35. package/dist/document-models/builder-account/gen/profile/actions.d.ts +23 -0
  36. package/dist/document-models/builder-account/gen/profile/actions.js +1 -0
  37. package/dist/document-models/builder-account/gen/profile/creators.d.ts +7 -0
  38. package/dist/document-models/builder-account/gen/profile/creators.js +7 -0
  39. package/dist/document-models/builder-account/gen/profile/error.d.ts +1 -0
  40. package/dist/document-models/builder-account/gen/profile/error.js +1 -0
  41. package/dist/document-models/builder-account/gen/profile/object.d.ts +10 -0
  42. package/dist/document-models/builder-account/gen/profile/object.js +19 -0
  43. package/dist/document-models/builder-account/gen/profile/operations.d.ts +10 -0
  44. package/dist/document-models/builder-account/gen/profile/operations.js +1 -0
  45. package/dist/document-models/builder-account/gen/reducer.d.ts +4 -0
  46. package/dist/document-models/builder-account/gen/reducer.js +87 -0
  47. package/dist/document-models/builder-account/gen/schema/index.d.ts +2 -0
  48. package/dist/document-models/builder-account/gen/schema/index.js +2 -0
  49. package/dist/document-models/builder-account/gen/schema/types.d.ts +269 -0
  50. package/dist/document-models/builder-account/gen/schema/types.js +1 -0
  51. package/dist/document-models/builder-account/gen/schema/zod.d.ts +34 -0
  52. package/dist/document-models/builder-account/gen/schema/zod.js +192 -0
  53. package/dist/document-models/builder-account/gen/spaces/actions.d.ts +23 -0
  54. package/dist/document-models/builder-account/gen/spaces/actions.js +1 -0
  55. package/dist/document-models/builder-account/gen/spaces/creators.d.ts +7 -0
  56. package/dist/document-models/builder-account/gen/spaces/creators.js +7 -0
  57. package/dist/document-models/builder-account/gen/spaces/error.d.ts +13 -0
  58. package/dist/document-models/builder-account/gen/spaces/error.js +11 -0
  59. package/dist/document-models/builder-account/gen/spaces/object.d.ts +10 -0
  60. package/dist/document-models/builder-account/gen/spaces/object.js +19 -0
  61. package/dist/document-models/builder-account/gen/spaces/operations.d.ts +10 -0
  62. package/dist/document-models/builder-account/gen/spaces/operations.js +1 -0
  63. package/dist/document-models/builder-account/gen/types.d.ts +9 -0
  64. package/dist/document-models/builder-account/gen/types.js +1 -0
  65. package/dist/document-models/builder-account/gen/utils.d.ts +21 -0
  66. package/dist/document-models/builder-account/gen/utils.js +54 -0
  67. package/dist/document-models/builder-account/index.d.ts +40 -0
  68. package/dist/document-models/builder-account/index.js +21 -0
  69. package/dist/document-models/builder-account/src/reducers/members.d.ts +2 -0
  70. package/dist/document-models/builder-account/src/reducers/members.js +11 -0
  71. package/dist/document-models/builder-account/src/reducers/packages.d.ts +2 -0
  72. package/dist/document-models/builder-account/src/reducers/packages.js +79 -0
  73. package/dist/document-models/builder-account/src/reducers/profile.d.ts +2 -0
  74. package/dist/document-models/builder-account/src/reducers/profile.js +26 -0
  75. package/dist/document-models/builder-account/src/reducers/spaces.d.ts +2 -0
  76. package/dist/document-models/builder-account/src/reducers/spaces.js +46 -0
  77. package/dist/document-models/builder-account/src/tests/document-model.test.d.ts +5 -0
  78. package/dist/document-models/builder-account/src/tests/document-model.test.js +18 -0
  79. package/dist/document-models/builder-account/src/tests/members.test.d.ts +5 -0
  80. package/dist/document-models/builder-account/src/tests/members.test.js +32 -0
  81. package/dist/document-models/builder-account/src/tests/packages.test.d.ts +5 -0
  82. package/dist/document-models/builder-account/src/tests/packages.test.js +56 -0
  83. package/dist/document-models/builder-account/src/tests/profile.test.d.ts +5 -0
  84. package/dist/document-models/builder-account/src/tests/profile.test.js +56 -0
  85. package/dist/document-models/builder-account/src/tests/spaces.test.d.ts +5 -0
  86. package/dist/document-models/builder-account/src/tests/spaces.test.js +56 -0
  87. package/dist/document-models/builder-account/src/utils.d.ts +1 -0
  88. package/dist/document-models/builder-account/src/utils.js +1 -0
  89. package/dist/document-models/index.d.ts +3 -0
  90. package/dist/document-models/index.js +2 -0
  91. package/dist/document-models/vetra-package/gen/actions.d.ts +3 -0
  92. package/dist/document-models/vetra-package/gen/actions.js +1 -0
  93. package/dist/document-models/vetra-package/gen/creators.d.ts +1 -0
  94. package/dist/document-models/vetra-package/gen/creators.js +1 -0
  95. package/dist/document-models/vetra-package/gen/document-model.d.ts +2 -0
  96. package/dist/document-models/vetra-package/gen/document-model.js +125 -0
  97. package/dist/document-models/vetra-package/gen/index.d.ts +7 -0
  98. package/dist/document-models/vetra-package/gen/index.js +6 -0
  99. package/dist/document-models/vetra-package/gen/meta/actions.d.ts +35 -0
  100. package/dist/document-models/vetra-package/gen/meta/actions.js +1 -0
  101. package/dist/document-models/vetra-package/gen/meta/creators.d.ts +10 -0
  102. package/dist/document-models/vetra-package/gen/meta/creators.js +10 -0
  103. package/dist/document-models/vetra-package/gen/meta/error.d.ts +1 -0
  104. package/dist/document-models/vetra-package/gen/meta/error.js +1 -0
  105. package/dist/document-models/vetra-package/gen/meta/object.d.ts +13 -0
  106. package/dist/document-models/vetra-package/gen/meta/object.js +28 -0
  107. package/dist/document-models/vetra-package/gen/meta/operations.d.ts +13 -0
  108. package/dist/document-models/vetra-package/gen/meta/operations.js +1 -0
  109. package/dist/document-models/vetra-package/gen/object.d.ts +14 -0
  110. package/dist/document-models/vetra-package/gen/object.js +25 -0
  111. package/dist/document-models/vetra-package/gen/ph-factories.d.ts +26 -0
  112. package/dist/document-models/vetra-package/gen/ph-factories.js +59 -0
  113. package/dist/document-models/vetra-package/gen/reducer.d.ts +4 -0
  114. package/dist/document-models/vetra-package/gen/reducer.js +48 -0
  115. package/dist/document-models/vetra-package/gen/schema/index.d.ts +2 -0
  116. package/dist/document-models/vetra-package/gen/schema/index.js +2 -0
  117. package/dist/document-models/vetra-package/gen/schema/types.d.ts +187 -0
  118. package/dist/document-models/vetra-package/gen/schema/types.js +1 -0
  119. package/dist/document-models/vetra-package/gen/schema/zod.d.ts +20 -0
  120. package/dist/document-models/vetra-package/gen/schema/zod.js +73 -0
  121. package/dist/document-models/vetra-package/gen/types.d.ts +9 -0
  122. package/dist/document-models/vetra-package/gen/types.js +1 -0
  123. package/dist/document-models/vetra-package/gen/utils.d.ts +21 -0
  124. package/dist/document-models/vetra-package/gen/utils.js +51 -0
  125. package/dist/document-models/vetra-package/index.d.ts +31 -0
  126. package/dist/document-models/vetra-package/index.js +21 -0
  127. package/dist/document-models/vetra-package/src/reducers/meta.d.ts +2 -0
  128. package/dist/document-models/vetra-package/src/reducers/meta.js +34 -0
  129. package/dist/document-models/vetra-package/src/tests/document-model.test.d.ts +5 -0
  130. package/dist/document-models/vetra-package/src/tests/document-model.test.js +18 -0
  131. package/dist/document-models/vetra-package/src/tests/meta.test.d.ts +5 -0
  132. package/dist/document-models/vetra-package/src/tests/meta.test.js +80 -0
  133. package/dist/document-models/vetra-package/src/utils.d.ts +1 -0
  134. package/dist/document-models/vetra-package/src/utils.js +1 -0
  135. package/dist/editors/builder-account-editor/editor.d.ts +3 -0
  136. package/dist/editors/builder-account-editor/editor.js +202 -0
  137. package/dist/editors/builder-account-editor/index.d.ts +3 -0
  138. package/dist/editors/builder-account-editor/index.js +12 -0
  139. package/dist/editors/index.d.ts +2 -0
  140. package/dist/editors/index.js +1 -0
  141. package/dist/index.d.ts +4 -0
  142. package/dist/index.js +6 -0
  143. package/dist/powerhouse.manifest.json +29 -0
  144. package/dist/processors/factory.d.ts +7 -0
  145. package/dist/processors/factory.js +22 -0
  146. package/dist/processors/index.d.ts +2 -0
  147. package/dist/processors/index.js +1 -0
  148. package/dist/processors/vetra-read-model/factory.d.ts +3 -0
  149. package/dist/processors/vetra-read-model/factory.js +22 -0
  150. package/dist/processors/vetra-read-model/index.d.ts +28 -0
  151. package/dist/processors/vetra-read-model/index.js +349 -0
  152. package/dist/processors/vetra-read-model/migrations.d.ts +3 -0
  153. package/dist/processors/vetra-read-model/migrations.js +127 -0
  154. package/dist/processors/vetra-read-model/schema.d.ts +56 -0
  155. package/dist/processors/vetra-read-model/schema.js +1 -0
  156. package/dist/style.css +10598 -0
  157. package/dist/subgraphs/builder-account/index.d.ts +10 -0
  158. package/dist/subgraphs/builder-account/index.js +11 -0
  159. package/dist/subgraphs/builder-account/resolvers.d.ts +2 -0
  160. package/dist/subgraphs/builder-account/resolvers.js +276 -0
  161. package/dist/subgraphs/builder-account/schema.d.ts +2 -0
  162. package/dist/subgraphs/builder-account/schema.js +267 -0
  163. package/dist/subgraphs/index.d.ts +4 -0
  164. package/dist/subgraphs/index.js +3 -0
  165. package/dist/subgraphs/vetra/index.d.ts +10 -0
  166. package/dist/subgraphs/vetra/index.js +11 -0
  167. package/dist/subgraphs/vetra/resolvers.d.ts +2 -0
  168. package/dist/subgraphs/vetra/resolvers.js +10 -0
  169. package/dist/subgraphs/vetra/schema.d.ts +2 -0
  170. package/dist/subgraphs/vetra/schema.js +9 -0
  171. package/dist/subgraphs/vetra-package/index.d.ts +10 -0
  172. package/dist/subgraphs/vetra-package/index.js +11 -0
  173. package/dist/subgraphs/vetra-package/resolvers.d.ts +2 -0
  174. package/dist/subgraphs/vetra-package/resolvers.js +168 -0
  175. package/dist/subgraphs/vetra-package/schema.d.ts +2 -0
  176. package/dist/subgraphs/vetra-package/schema.js +123 -0
  177. package/dist/subgraphs/vetra-read-model/index.d.ts +10 -0
  178. package/dist/subgraphs/vetra-read-model/index.js +11 -0
  179. package/dist/subgraphs/vetra-read-model/resolvers.d.ts +2 -0
  180. package/dist/subgraphs/vetra-read-model/resolvers.js +134 -0
  181. package/dist/subgraphs/vetra-read-model/schema.d.ts +2 -0
  182. package/dist/subgraphs/vetra-read-model/schema.js +69 -0
  183. package/dist/vitest.config.d.ts +2 -0
  184. package/dist/vitest.config.js +8 -0
  185. package/package.json +131 -0
@@ -0,0 +1,168 @@
1
+ import { addFile } from "document-drive";
2
+ import { actions, } from "../../document-models/vetra-package/index.js";
3
+ import { setName } from "document-model";
4
+ export const getResolvers = (subgraph) => {
5
+ const reactor = subgraph.reactor;
6
+ return {
7
+ Query: {
8
+ VetraPackage: 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 === "powerhouse/vetra/package");
50
+ },
51
+ };
52
+ },
53
+ },
54
+ Mutation: {
55
+ VetraPackage_createDocument: async (_, args) => {
56
+ const { driveId, name } = args;
57
+ const document = await reactor.addDocument("powerhouse/vetra/package");
58
+ if (driveId) {
59
+ await reactor.addAction(driveId, addFile({
60
+ name,
61
+ id: document.header.id,
62
+ documentType: "powerhouse/vetra/package",
63
+ }));
64
+ }
65
+ if (name) {
66
+ await reactor.addAction(document.header.id, setName(name));
67
+ }
68
+ return document.header.id;
69
+ },
70
+ VetraPackage_setPackageName: 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.setPackageName(input));
77
+ if (result.status !== "SUCCESS") {
78
+ throw new Error(result.error?.message ?? "Failed to setPackageName");
79
+ }
80
+ return true;
81
+ },
82
+ VetraPackage_setPackageDescription: 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.setPackageDescription(input));
89
+ if (result.status !== "SUCCESS") {
90
+ throw new Error(result.error?.message ?? "Failed to setPackageDescription");
91
+ }
92
+ return true;
93
+ },
94
+ VetraPackage_setPackageCategory: async (_, args) => {
95
+ const { docId, input } = args;
96
+ const doc = await reactor.getDocument(docId);
97
+ if (!doc) {
98
+ throw new Error("Document not found");
99
+ }
100
+ const result = await reactor.addAction(docId, actions.setPackageCategory(input));
101
+ if (result.status !== "SUCCESS") {
102
+ throw new Error(result.error?.message ?? "Failed to setPackageCategory");
103
+ }
104
+ return true;
105
+ },
106
+ VetraPackage_setPackageGithub: async (_, args) => {
107
+ const { docId, input } = args;
108
+ const doc = await reactor.getDocument(docId);
109
+ if (!doc) {
110
+ throw new Error("Document not found");
111
+ }
112
+ const result = await reactor.addAction(docId, actions.setPackageGithub(input));
113
+ if (result.status !== "SUCCESS") {
114
+ throw new Error(result.error?.message ?? "Failed to setPackageGithub");
115
+ }
116
+ return true;
117
+ },
118
+ VetraPackage_setPackageNpm: async (_, args) => {
119
+ const { docId, input } = args;
120
+ const doc = await reactor.getDocument(docId);
121
+ if (!doc) {
122
+ throw new Error("Document not found");
123
+ }
124
+ const result = await reactor.addAction(docId, actions.setPackageNpm(input));
125
+ if (result.status !== "SUCCESS") {
126
+ throw new Error(result.error?.message ?? "Failed to setPackageNpm");
127
+ }
128
+ return true;
129
+ },
130
+ VetraPackage_setAuthor: async (_, args) => {
131
+ const { docId, input } = args;
132
+ const doc = await reactor.getDocument(docId);
133
+ if (!doc) {
134
+ throw new Error("Document not found");
135
+ }
136
+ const result = await reactor.addAction(docId, actions.setAuthor(input));
137
+ if (result.status !== "SUCCESS") {
138
+ throw new Error(result.error?.message ?? "Failed to setAuthor");
139
+ }
140
+ return true;
141
+ },
142
+ VetraPackage_addKeywords: async (_, args) => {
143
+ const { docId, input } = args;
144
+ const doc = await reactor.getDocument(docId);
145
+ if (!doc) {
146
+ throw new Error("Document not found");
147
+ }
148
+ const result = await reactor.addAction(docId, actions.addKeywords(input));
149
+ if (result.status !== "SUCCESS") {
150
+ throw new Error(result.error?.message ?? "Failed to addKeywords");
151
+ }
152
+ return true;
153
+ },
154
+ VetraPackage_removeKeywords: async (_, args) => {
155
+ const { docId, input } = args;
156
+ const doc = await reactor.getDocument(docId);
157
+ if (!doc) {
158
+ throw new Error("Document not found");
159
+ }
160
+ const result = await reactor.addAction(docId, actions.removeKeywords(input));
161
+ if (result.status !== "SUCCESS") {
162
+ throw new Error(result.error?.message ?? "Failed to removeKeywords");
163
+ }
164
+ return true;
165
+ },
166
+ },
167
+ };
168
+ };
@@ -0,0 +1,2 @@
1
+ import type { DocumentNode } from "graphql";
2
+ export declare const schema: DocumentNode;
@@ -0,0 +1,123 @@
1
+ import { gql } from "graphql-tag";
2
+ export const schema = gql `
3
+ """
4
+ Subgraph definition for VetraPackage (powerhouse/vetra/package)
5
+ """
6
+ type VetraPackageState {
7
+ name: String!
8
+ description: String
9
+ category: String
10
+ author: VetraBuilderPackageAuthor!
11
+ keywords: [VetraBuilderPackageKeyword!]!
12
+ github: URL
13
+ npm: URL
14
+ }
15
+
16
+ type VetraBuilderPackageAuthor {
17
+ name: String!
18
+ website: URL
19
+ }
20
+
21
+ type VetraBuilderPackageKeyword {
22
+ id: OID!
23
+ label: String!
24
+ }
25
+
26
+ """
27
+ Queries: VetraPackage
28
+ """
29
+ type VetraPackageQueries {
30
+ getDocument(docId: PHID!, driveId: PHID): VetraPackage
31
+ getDocuments(driveId: String!): [VetraPackage!]
32
+ }
33
+
34
+ type Query {
35
+ VetraPackage: VetraPackageQueries
36
+ }
37
+
38
+ """
39
+ Mutations: VetraPackage
40
+ """
41
+ type Mutation {
42
+ VetraPackage_createDocument(name: String!, driveId: String): String
43
+
44
+ VetraPackage_setPackageName(
45
+ driveId: String
46
+ docId: PHID
47
+ input: VetraPackage_SetPackageNameInput
48
+ ): Int
49
+ VetraPackage_setPackageDescription(
50
+ driveId: String
51
+ docId: PHID
52
+ input: VetraPackage_SetPackageDescriptionInput
53
+ ): Int
54
+ VetraPackage_setPackageCategory(
55
+ driveId: String
56
+ docId: PHID
57
+ input: VetraPackage_SetPackageCategoryInput
58
+ ): Int
59
+ VetraPackage_setPackageGithub(
60
+ driveId: String
61
+ docId: PHID
62
+ input: VetraPackage_SetPackageGithubInput
63
+ ): Int
64
+ VetraPackage_setPackageNpm(
65
+ driveId: String
66
+ docId: PHID
67
+ input: VetraPackage_SetPackageNpmInput
68
+ ): Int
69
+ VetraPackage_setAuthor(
70
+ driveId: String
71
+ docId: PHID
72
+ input: VetraPackage_SetAuthorInput
73
+ ): Int
74
+ VetraPackage_addKeywords(
75
+ driveId: String
76
+ docId: PHID
77
+ input: VetraPackage_AddKeywordsInput
78
+ ): Int
79
+ VetraPackage_removeKeywords(
80
+ driveId: String
81
+ docId: PHID
82
+ input: VetraPackage_RemoveKeywordsInput
83
+ ): Int
84
+ }
85
+
86
+ """
87
+ Module: Meta
88
+ """
89
+ input VetraPackage_SetPackageNameInput {
90
+ "Add your inputs here"
91
+ name: String!
92
+ }
93
+ input VetraPackage_SetPackageDescriptionInput {
94
+ "Add your inputs here"
95
+ description: String!
96
+ }
97
+ input VetraPackage_SetPackageCategoryInput {
98
+ "Add your inputs here"
99
+ category: String!
100
+ }
101
+ input VetraPackage_SetPackageGithubInput {
102
+ "Add your inputs here"
103
+ github: URL!
104
+ }
105
+ input VetraPackage_SetPackageNpmInput {
106
+ "Add your inputs here"
107
+ npm: URL!
108
+ }
109
+ input VetraPackage_SetAuthorInput {
110
+ "Add your inputs here"
111
+ name: String!
112
+ website: URL
113
+ }
114
+ input VetraPackage_AddKeywordsInput {
115
+ "Add your inputs here"
116
+ id: OID
117
+ label: String!
118
+ }
119
+ input VetraPackage_RemoveKeywordsInput {
120
+ "Add your inputs here"
121
+ id: OID!
122
+ }
123
+ `;
@@ -0,0 +1,10 @@
1
+ import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
3
+ export declare class VetraReadModelSubgraph 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 VetraReadModelSubgraph extends Subgraph {
5
+ name = "vetra-read-model";
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,134 @@
1
+ import { VetraReadModelProcessor } from "processors/index.js";
2
+ export const getResolvers = (subgraph) => {
3
+ const reactor = subgraph.reactor;
4
+ const db = subgraph.relationalDb;
5
+ return {
6
+ Query: {
7
+ fetchAllBuilderAccounts: async (parent, args, context) => {
8
+ const driveId = context.driveId || "default";
9
+ const accounts = await VetraReadModelProcessor.query(driveId, db)
10
+ .selectFrom("builder_accounts")
11
+ .selectAll()
12
+ .execute();
13
+ return accounts.map((account) => ({
14
+ id: account.id,
15
+ profileName: account.profile_name,
16
+ profileSlug: account.profile_slug,
17
+ profileLogo: account.profile_logo,
18
+ profileDescription: account.profile_description,
19
+ profileSocialsX: account.profile_socials_x,
20
+ profileSocialsGithub: account.profile_socials_github,
21
+ profileSocialsWebsite: account.profile_socials_website,
22
+ createdAt: account.created_at.toISOString(),
23
+ updatedAt: account.updated_at.toISOString(),
24
+ spaces: [], // Will be resolved by field resolver
25
+ members: [], // Will be resolved by field resolver
26
+ }));
27
+ },
28
+ fetchBuilderAccount: async (parent, args, context) => {
29
+ const driveId = context.driveId || "default";
30
+ const account = await VetraReadModelProcessor.query(driveId, db)
31
+ .selectFrom("builder_accounts")
32
+ .selectAll()
33
+ .where("id", "=", args.id)
34
+ .executeTakeFirst();
35
+ if (!account) {
36
+ return null;
37
+ }
38
+ return {
39
+ id: account.id,
40
+ profileName: account.profile_name,
41
+ profileSlug: account.profile_slug,
42
+ profileLogo: account.profile_logo,
43
+ profileDescription: account.profile_description,
44
+ profileSocialsX: account.profile_socials_x,
45
+ profileSocialsGithub: account.profile_socials_github,
46
+ profileSocialsWebsite: account.profile_socials_website,
47
+ createdAt: account.created_at.toISOString(),
48
+ updatedAt: account.updated_at.toISOString(),
49
+ spaces: [], // Will be resolved by field resolver
50
+ members: [], // Will be resolved by field resolver
51
+ };
52
+ },
53
+ },
54
+ BuilderAccount: {
55
+ spaces: async (parent, args, context) => {
56
+ const driveId = context.driveId || "default";
57
+ const spaces = await VetraReadModelProcessor.query(driveId, db)
58
+ .selectFrom("builder_spaces")
59
+ .selectAll()
60
+ .where("builder_account_id", "=", parent.id)
61
+ .orderBy("sort_order", "asc")
62
+ .execute();
63
+ return spaces.map((space) => ({
64
+ id: space.id,
65
+ builderAccountId: space.builder_account_id,
66
+ title: space.title,
67
+ description: space.description,
68
+ sortOrder: space.sort_order,
69
+ createdAt: space.created_at.toISOString(),
70
+ updatedAt: space.updated_at.toISOString(),
71
+ packages: [], // Will be resolved by field resolver
72
+ }));
73
+ },
74
+ members: async (parent, args, context) => {
75
+ const driveId = context.driveId || "default";
76
+ const members = await VetraReadModelProcessor.query(driveId, db)
77
+ .selectFrom("builder_account_members")
78
+ .selectAll()
79
+ .where("builder_account_id", "=", parent.id)
80
+ .execute();
81
+ return members.map((member) => ({
82
+ id: member.id,
83
+ builderAccountId: member.builder_account_id,
84
+ ethAddress: member.eth_address,
85
+ createdAt: member.created_at.toISOString(),
86
+ }));
87
+ },
88
+ },
89
+ BuilderSpace: {
90
+ packages: async (parent, args, context) => {
91
+ const driveId = context.driveId || "default";
92
+ const packages = await VetraReadModelProcessor.query(driveId, db)
93
+ .selectFrom("builder_packages")
94
+ .selectAll()
95
+ .where("space_id", "=", parent.id)
96
+ .orderBy("sort_order", "asc")
97
+ .execute();
98
+ return packages.map((pkg) => ({
99
+ id: pkg.id,
100
+ spaceId: pkg.space_id,
101
+ name: pkg.name,
102
+ description: pkg.description,
103
+ category: pkg.category,
104
+ authorName: pkg.author_name,
105
+ authorWebsite: pkg.author_website,
106
+ githubUrl: pkg.github_url,
107
+ npmUrl: pkg.npm_url,
108
+ vetraDriveUrl: pkg.vetra_drive_url,
109
+ driveId: pkg.drive_id,
110
+ sortOrder: pkg.sort_order,
111
+ createdAt: pkg.created_at.toISOString(),
112
+ updatedAt: pkg.updated_at.toISOString(),
113
+ keywords: [], // Will be resolved by field resolver
114
+ }));
115
+ },
116
+ },
117
+ BuilderPackage: {
118
+ keywords: async (parent, args, context) => {
119
+ const driveId = context.driveId || "default";
120
+ const keywords = await VetraReadModelProcessor.query(driveId, db)
121
+ .selectFrom("builder_package_keywords")
122
+ .selectAll()
123
+ .where("package_id", "=", parent.id)
124
+ .execute();
125
+ return keywords.map((keyword) => ({
126
+ id: keyword.id,
127
+ packageId: keyword.package_id,
128
+ label: keyword.label,
129
+ createdAt: keyword.created_at.toISOString(),
130
+ }));
131
+ },
132
+ },
133
+ };
134
+ };
@@ -0,0 +1,2 @@
1
+ import type { DocumentNode } from "graphql";
2
+ export declare const schema: DocumentNode;
@@ -0,0 +1,69 @@
1
+ import { gql } from "graphql-tag";
2
+ export const schema = gql `
3
+ """
4
+ Subgraph definition for Vetra Read Model
5
+ """
6
+ type BuilderAccount {
7
+ id: String!
8
+ profileName: String!
9
+ profileSlug: String!
10
+ profileLogo: String
11
+ profileDescription: String
12
+ profileSocialsX: String
13
+ profileSocialsGithub: String
14
+ profileSocialsWebsite: String
15
+ createdAt: String!
16
+ updatedAt: String!
17
+ spaces: [BuilderSpace!]!
18
+ members: [BuilderAccountMember!]!
19
+ }
20
+
21
+ type BuilderSpace {
22
+ id: String!
23
+ builderAccountId: String!
24
+ title: String!
25
+ description: String
26
+ sortOrder: Int!
27
+ createdAt: String!
28
+ updatedAt: String!
29
+ packages: [BuilderPackage!]!
30
+ }
31
+
32
+ type BuilderPackage {
33
+ id: String!
34
+ spaceId: String!
35
+ name: String!
36
+ description: String
37
+ category: String
38
+ authorName: String!
39
+ authorWebsite: String
40
+ githubUrl: String
41
+ npmUrl: String
42
+ vetraDriveUrl: String
43
+ driveId: String
44
+ sortOrder: Int!
45
+ createdAt: String!
46
+ updatedAt: String!
47
+ keywords: [BuilderPackageKeyword!]!
48
+ }
49
+
50
+ type BuilderPackageKeyword {
51
+ id: String!
52
+ packageId: String!
53
+ label: String!
54
+ createdAt: String!
55
+ }
56
+
57
+ type BuilderAccountMember {
58
+ id: String!
59
+ builderAccountId: String!
60
+ ethAddress: String!
61
+ createdAt: String!
62
+ }
63
+
64
+ type Query {
65
+ example(driveId: String!): String
66
+ fetchAllBuilderAccounts: [BuilderAccount!]!
67
+ fetchBuilderAccount(id: String!): BuilderAccount
68
+ }
69
+ `;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { defineConfig } from "vitest/config";
2
+ import react from "@vitejs/plugin-react";
3
+ export default defineConfig({
4
+ test: {
5
+ globals: true,
6
+ },
7
+ plugins: [react()],
8
+ });
package/package.json ADDED
@@ -0,0 +1,131 @@
1
+ {
2
+ "name": "@powerhousedao/vetra-builder-package",
3
+ "description": "",
4
+ "version": "0.0.0",
5
+ "license": "AGPL-3.0-only",
6
+ "type": "module",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "release": {
11
+ "branches": [
12
+ "main",
13
+ {
14
+ "name": "staging",
15
+ "prerelease": "staging"
16
+ },
17
+ {
18
+ "name": "dev",
19
+ "prerelease": "dev"
20
+ }
21
+ ],
22
+ "plugins": [
23
+ "@semantic-release/changelog",
24
+ "@semantic-release/git",
25
+ "@semantic-release/commit-analyzer",
26
+ "@semantic-release/release-notes-generator",
27
+ [
28
+ "@semantic-release/npm",
29
+ {
30
+ "npmPublish": true,
31
+ "tarballDir": "dist"
32
+ }
33
+ ],
34
+ "@semantic-release/github"
35
+ ]
36
+ },
37
+ "exports": {
38
+ ".": {
39
+ "types": "./dist/index.d.ts",
40
+ "default": "./dist/index.js"
41
+ },
42
+ "./document-models": {
43
+ "types": "./dist/document-models/index.d.ts",
44
+ "default": "./dist/document-models/index.js"
45
+ },
46
+ "./editors": {
47
+ "types": "./dist/editors/index.d.ts",
48
+ "default": "./dist/editors/index.js"
49
+ },
50
+ "./subgraphs": {
51
+ "types": "./dist/subgraphs/index.d.ts",
52
+ "default": "./dist/subgraphs/index.js"
53
+ },
54
+ "./processors": {
55
+ "types": "./dist/processors/index.d.ts",
56
+ "default": "./dist/processors/index.js"
57
+ },
58
+ "./manifest": {
59
+ "types": "./dist/manifest.d.ts",
60
+ "default": "./dist/manifest.js"
61
+ },
62
+ "./style.css": "./dist/style.css"
63
+ },
64
+ "dependencies": {
65
+ "@powerhousedao/builder-tools": "staging",
66
+ "@powerhousedao/common": "staging",
67
+ "@powerhousedao/design-system": "staging",
68
+ "@powerhousedao/document-engineering": "^1.36.0",
69
+ "document-model": "staging",
70
+ "graphql": "^16.10.0",
71
+ "graphql-tag": "^2.12.6",
72
+ "kysely": "^0.28.7",
73
+ "uuid": "^11.1.0",
74
+ "zod": "^3.24.2"
75
+ },
76
+ "devDependencies": {
77
+ "@electric-sql/pglite": "^0.2.12",
78
+ "@eslint/js": "^9.22.0",
79
+ "@powerhousedao/analytics-engine-core": "^0.5.0",
80
+ "@powerhousedao/codegen": "staging",
81
+ "@powerhousedao/ph-cli": "staging",
82
+ "@powerhousedao/reactor-api": "staging",
83
+ "@powerhousedao/reactor-browser": "staging",
84
+ "@powerhousedao/reactor-local": "staging",
85
+ "@powerhousedao/scalars": "staging",
86
+ "@powerhousedao/switchboard": "staging",
87
+ "@powerhousedao/vetra": "staging",
88
+ "@semantic-release/changelog": "^6.0.3",
89
+ "@semantic-release/git": "^10.0.1",
90
+ "@tailwindcss/cli": "^4.0.15",
91
+ "@testing-library/react": "^16.3.0",
92
+ "@types/node": "^22.13.11",
93
+ "@types/react": "^18.3.19",
94
+ "@vitejs/plugin-react": "^4.3.4",
95
+ "document-drive": "staging",
96
+ "eslint": "^9.22.0",
97
+ "eslint-plugin-react": "^7.37.4",
98
+ "eslint-plugin-react-hooks": "^5.2.0",
99
+ "globals": "^16.0.0",
100
+ "package-manager-detector": "^0.2.8",
101
+ "pm2": "^5.4.3",
102
+ "react": "^18.3.1",
103
+ "react-dom": "^18.3.1",
104
+ "semantic-release": "^24.2.8",
105
+ "tailwindcss": "^4.1.4",
106
+ "typescript": "^5.8.3",
107
+ "typescript-eslint": "^8.30.1",
108
+ "vite": "^6.2.3",
109
+ "vitest": "^3.0.9"
110
+ },
111
+ "peerDependencies": {
112
+ "react": "^18.3.1",
113
+ "react-dom": "^18.3.1"
114
+ },
115
+ "scripts": {
116
+ "lint": "eslint .",
117
+ "build:tsc": "tsc",
118
+ "build:tsc:watch": "tsc --watch",
119
+ "build:css": "npx @tailwindcss/cli -i ./style.css -o ./dist/style.css",
120
+ "build:css:watch": "npx @tailwindcss/cli -i ./style.css -o ./dist/style.css --watch",
121
+ "build": "npm run build:tsc && npm run build:css",
122
+ "test": "vitest run",
123
+ "test:watch": "vitest",
124
+ "generate": "ph-cli generate",
125
+ "connect": "ph-cli connect",
126
+ "reactor": "ph-cli reactor",
127
+ "service": "ph-cli service",
128
+ "service-startup": "bash ./node_modules/@powerhousedao/ph-cli/dist/scripts/service-startup.sh",
129
+ "service-unstartup": "bash ./node_modules/@powerhousedao/ph-cli/dist/scripts/service-unstartup.sh"
130
+ }
131
+ }