@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
package/README.md ADDED
@@ -0,0 +1,179 @@
1
+ # Document Model Boilerplate
2
+
3
+ This Document Model Boilerplate provides code generation for scaffolding editors and models.
4
+ It ensures compatibility with host applications like Connect and the Reactors for seamless document model and editor integration.
5
+
6
+ ## Standard Document Model Workflow with help of the boilerplate.
7
+ This tutorial will guide you through the process of creating a new document model using the Document Model Editor in the Connect app.
8
+
9
+ <details>
10
+ <summary>Available NPM commands</summary>
11
+
12
+ - `generate`: Updates the generated code according to the JSON spec and GraphQL schema of your document model, made in Connect.
13
+ - `lint`: Checks for errors with ESLint and TypeScript checking.
14
+ - `format`: Formats the code using Prettier.
15
+ - `build`: Builds the library project using Vite.
16
+ - `storybook`: Starts Storybook in development mode.
17
+ - `build-storybook`: Builds Storybook.
18
+ - `test`: Runs Jest for testing.
19
+
20
+ </details>
21
+
22
+ ### 1. Defining Your Document Model GraphQL Schema
23
+ Start by creating your own 'Powerhouse Project' (Document model + editor).
24
+
25
+ Step 1: Run the following command to set up your project inside this directory:
26
+
27
+ ```bash
28
+ npm create document-model-lib
29
+ ```
30
+
31
+ Step 2: Use the Document Model Editor in the Connect app
32
+
33
+ The following command gives you access to all the powerhouse CLI tools available, install it globally if you are a poweruser.
34
+
35
+ ```bash
36
+ npm install ph-cmd
37
+ ```
38
+ Now you are able to launch Connect in Studio Mode (Locally):
39
+
40
+ ```bash
41
+ npm run connect
42
+ ```
43
+
44
+ Open the 'Document Model' creator at the bottom of connect to define your document mode with it's GraphQL Schema Definition.
45
+ This schema will define the structure and fields for your document model using GraphQL.
46
+ Follow one of our tutorials on Academy to get familiar with the process.
47
+
48
+ ### 2. Defining Document Model Operations
49
+ Using the Document Model Operations Editor, define the operations for your document model and their GraphQL counterparts.
50
+ These operations will handle state changes within your document model.
51
+
52
+ **Best Practices:**
53
+
54
+ - Clearly define CRUD operations (Create, Read, Update, Delete).
55
+ - Use GraphQL input types to specify the parameters for each operation.
56
+ - Ensure that operations align with user intent to maintain a clean and understandable API.
57
+
58
+ ### 3. Generating Scaffolding Code
59
+ Export your document model as a .zip file from Connect.
60
+ Import the .zip file into your project directory created in Step 1.
61
+ Run the following command to generate the scaffolding code:
62
+
63
+ ```bash
64
+ npm run generate YourModelName.phdm.zip
65
+ ```
66
+
67
+ This will create a new directory under /document-models containing:
68
+
69
+ JSON file with the document model specification.
70
+ GraphQL file with state and operation schemas.
71
+ A gen/ folder with autogenerated code.
72
+ A src/ folder for your custom code implementation.
73
+
74
+ ### 4. Implementing Reducer Code and Unit Tests
75
+ Navigate to the reducer directory:
76
+
77
+ ```bash
78
+ cd document-models/"YourModelName"/src/reducers
79
+ ```
80
+
81
+ Implement the reducer functions for each document model operation. These functions will handle state transitions.
82
+
83
+ Add utility functions in:
84
+
85
+ ```bash
86
+ document-models/"YourModelName"/src/utils.ts
87
+ ```
88
+
89
+ Write unit tests to ensure the correctness of your reducers:
90
+
91
+ Test files should be located in:
92
+
93
+ ```bash
94
+ document-models/"YourModelName"/src/reducers/tests
95
+ ```
96
+
97
+ Run the tests:
98
+
99
+ ```bash
100
+ npm test
101
+ ```
102
+
103
+ Test the editor functionality:
104
+
105
+ ```bash
106
+ npm run connect
107
+ ```
108
+
109
+ ### 5. Implementing Document Editors
110
+ Generate the editor template for your document model:
111
+
112
+ ```bash
113
+ npm run generate -- --editor YourModelName --document-types powerhouse/YourModelName
114
+ ```
115
+
116
+ The --editor flag specifies the name of your document model.
117
+ The --document-types flag links the editor to your document model type.
118
+ After generation:
119
+
120
+ Open the editor template:
121
+
122
+ ```bash
123
+ editors/YourModelName/editor.tsx
124
+ ```
125
+
126
+ Customize the editor interface to suit your document model.
127
+
128
+ ### 6. Testing the Document Editor
129
+ Run the Connect app to test your document editor:
130
+
131
+ ```bash
132
+ npm run connect
133
+ ```
134
+
135
+ Verify that the editor functions as expected.
136
+ Perform end-to-end testing to ensure smooth integration between the document model and its editor.
137
+
138
+ ### 7. Adding a Manifest File
139
+ Create a manifest file to describe your document model and editor. This enables proper integration with the host application.
140
+
141
+ **Example manifest.json:**
142
+
143
+ ```json
144
+ {
145
+ "name": "your-model-name",
146
+ "description": "A brief description of your document model.",
147
+ "category": "your-category", // e.g., "Finance", "People Ops", "Legal"
148
+ "publisher": {
149
+ "name": "your-publisher-name",
150
+ "url": "your-publisher-url"
151
+ },
152
+ "documentModels": [
153
+ {
154
+ "id": "your-model-id",
155
+ "name": "your-model-name"
156
+ }
157
+ ],
158
+ "editors": [
159
+ {
160
+ "id": "your-editor-id",
161
+ "name": "your-editor-name",
162
+ "documentTypes": ["your-model-id"]
163
+ }
164
+ ]
165
+ }
166
+ ```
167
+
168
+ ### Steps to finalize:
169
+
170
+ Place the manifest file at your project root.
171
+ Update your index.js to export your modules and include the new document model and editor.
172
+
173
+ ### Final Thoughts
174
+ You've now successfully created a Document Model and its corresponding Editor using the Connect app!
175
+
176
+ Next Steps:
177
+ - Expand functionality: Add more operations or complex logic to your document model.
178
+ - Improve UX: Enhance the document editor for a smoother user experience.
179
+ - Integrate with other systems: Use APIs or GraphQL to connect your document model with external services.
@@ -0,0 +1,9 @@
1
+ import type { BuilderAccountProfileAction } from "./profile/actions.js";
2
+ import type { BuilderAccountMembersAction } from "./members/actions.js";
3
+ import type { BuilderAccountSpacesAction } from "./spaces/actions.js";
4
+ import type { BuilderAccountPackagesAction } from "./packages/actions.js";
5
+ export * from "./profile/actions.js";
6
+ export * from "./members/actions.js";
7
+ export * from "./spaces/actions.js";
8
+ export * from "./packages/actions.js";
9
+ export type BuilderAccountAction = BuilderAccountProfileAction | BuilderAccountMembersAction | BuilderAccountSpacesAction | BuilderAccountPackagesAction;
@@ -0,0 +1,4 @@
1
+ export * from "./profile/actions.js";
2
+ export * from "./members/actions.js";
3
+ export * from "./spaces/actions.js";
4
+ export * from "./packages/actions.js";
@@ -0,0 +1,4 @@
1
+ export * from "./profile/creators.js";
2
+ export * from "./members/creators.js";
3
+ export * from "./spaces/creators.js";
4
+ export * from "./packages/creators.js";
@@ -0,0 +1,4 @@
1
+ export * from "./profile/creators.js";
2
+ export * from "./members/creators.js";
3
+ export * from "./spaces/creators.js";
4
+ export * from "./packages/creators.js";
@@ -0,0 +1,2 @@
1
+ import type { DocumentModelState } from "document-model";
2
+ export declare const documentModel: DocumentModelState;
@@ -0,0 +1,253 @@
1
+ export const documentModel = {
2
+ author: {
3
+ name: "Powerhouse Inc.",
4
+ website: "https://www.powerhouse.inc",
5
+ },
6
+ description: "A builder account contains a builder profile information as well as managed spaces with linked packages.",
7
+ extension: "phvba",
8
+ id: "powerhouse/vetra/builder-account",
9
+ name: "BuilderAccount",
10
+ specifications: [
11
+ {
12
+ changeLog: [],
13
+ modules: [
14
+ {
15
+ description: "",
16
+ id: "956b252d-242d-4a65-a05a-9c7fc0e6f0ec",
17
+ name: "profile",
18
+ operations: [
19
+ {
20
+ description: "",
21
+ errors: [],
22
+ examples: [],
23
+ id: "1da0a31b-fcab-4a65-829b-8c510fcbdb80",
24
+ name: "SET_LOGO",
25
+ reducer: "",
26
+ schema: 'input SetLogoInput {\n "Add your inputs here"\n logoUrl: String!\n}',
27
+ scope: "global",
28
+ template: "",
29
+ },
30
+ {
31
+ description: "",
32
+ errors: [],
33
+ examples: [],
34
+ id: "12cc5fb2-e471-459c-88b2-2120a3f1d799",
35
+ name: "SET_PROFILE_NAME",
36
+ reducer: "",
37
+ schema: 'input SetProfileNameInput {\n "Add your inputs here"\n name: String!\n}',
38
+ scope: "global",
39
+ template: "",
40
+ },
41
+ {
42
+ description: "",
43
+ errors: [],
44
+ examples: [],
45
+ id: "b60ad617-1812-4609-ad48-286d231b5be5",
46
+ name: "SET_SLUG",
47
+ reducer: "",
48
+ schema: 'input SetSlugInput {\n "Add your inputs here"\n slug: String!\n}',
49
+ scope: "global",
50
+ template: "",
51
+ },
52
+ {
53
+ description: "",
54
+ errors: [],
55
+ examples: [],
56
+ id: "3fb3ee10-982f-4236-81ec-ed9fc2883848",
57
+ name: "SET_PROFILE_DESCRIPTION",
58
+ reducer: "",
59
+ schema: 'input SetProfileDescriptionInput {\n "Add your inputs here"\n description: String\n}',
60
+ scope: "global",
61
+ template: "",
62
+ },
63
+ {
64
+ description: "",
65
+ errors: [],
66
+ examples: [],
67
+ id: "d35c76a4-6264-4c1c-9b49-406fdae985f4",
68
+ name: "UPDATE_SOCIALS",
69
+ reducer: "",
70
+ schema: 'input UpdateSocialsInput {\n "Add your inputs here"\n x: URL\n github: URL\n website: URL\n}',
71
+ scope: "global",
72
+ template: "",
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ description: "",
78
+ id: "a54d3cc2-df3a-4533-a2ec-f8f0749a07fe",
79
+ name: "members",
80
+ operations: [
81
+ {
82
+ description: "",
83
+ errors: [],
84
+ examples: [],
85
+ id: "2be30ebb-09af-4aac-8341-2039451edda6",
86
+ name: "ADD_MEMBER",
87
+ reducer: "",
88
+ schema: 'input AddMemberInput {\n "Add your inputs here"\n ethAddress: EthereumAddress\n}',
89
+ scope: "global",
90
+ template: "",
91
+ },
92
+ {
93
+ description: "",
94
+ errors: [],
95
+ examples: [],
96
+ id: "23749f96-d8db-403e-9eca-fc94861493a4",
97
+ name: "REMOVE_MEMBER",
98
+ reducer: "",
99
+ schema: 'input RemoveMemberInput {\n "Add your inputs here"\n ethAddress: EthereumAddress\n}',
100
+ scope: "global",
101
+ template: "",
102
+ },
103
+ ],
104
+ },
105
+ {
106
+ description: "",
107
+ id: "a51e6d2e-bf33-48ad-a96f-f58ea9c07d3f",
108
+ name: "spaces",
109
+ operations: [
110
+ {
111
+ description: "",
112
+ errors: [],
113
+ examples: [],
114
+ id: "8d4ea31c-ca59-4d41-b434-faf0f8cdacb2",
115
+ name: "ADD_SPACE",
116
+ reducer: "",
117
+ schema: 'input AddSpaceInput {\n "Add your inputs here"\n title: String!\n description: String\n}',
118
+ scope: "global",
119
+ template: "",
120
+ },
121
+ {
122
+ description: "",
123
+ errors: [
124
+ {
125
+ code: "SpaceNotFound",
126
+ description: "",
127
+ id: "35e9b8a9-dc0e-449f-bd08-b4a0592bfd32",
128
+ name: "SpaceNotFound",
129
+ template: "",
130
+ },
131
+ ],
132
+ examples: [],
133
+ id: "3126b54e-4b95-4cd4-8e41-09d02ac43f91",
134
+ name: "DELETE_SPACE",
135
+ reducer: "",
136
+ schema: 'input DeleteSpaceInput {\n "Add your inputs here"\n id: OID!\n}',
137
+ scope: "global",
138
+ template: "",
139
+ },
140
+ {
141
+ description: "",
142
+ errors: [],
143
+ examples: [],
144
+ id: "bba5e947-f112-4f92-8a40-740f8d5aced9",
145
+ name: "SET_SPACE_TITLE",
146
+ reducer: "",
147
+ schema: 'input SetSpaceTitleInput {\n "Add your inputs here"\n id: OID!\n newTitle: String!\n}',
148
+ scope: "global",
149
+ template: "",
150
+ },
151
+ {
152
+ description: "",
153
+ errors: [],
154
+ examples: [],
155
+ id: "3793893f-ea2b-44e7-a68b-771fdc1f7b89",
156
+ name: "SET_SPACE_DESCRIPTION",
157
+ reducer: "",
158
+ schema: 'input SetSpaceDescriptionInput {\n "Add your inputs here"\n id: OID!\n description: String!\n}',
159
+ scope: "global",
160
+ template: "",
161
+ },
162
+ {
163
+ description: "",
164
+ errors: [],
165
+ examples: [],
166
+ id: "d4628931-8fad-4778-b445-c08663a6b3ae",
167
+ name: "REORDER_SPACES",
168
+ reducer: "",
169
+ schema: 'input ReorderSpacesInput {\n "Add your inputs here"\n ids: [OID!]!, insertAfter: OID\n}',
170
+ scope: "global",
171
+ template: "",
172
+ },
173
+ ],
174
+ },
175
+ {
176
+ description: "",
177
+ id: "7b47d6b1-d0e9-40c6-a021-ed22b2b4dbc6",
178
+ name: "packages",
179
+ operations: [
180
+ {
181
+ description: "",
182
+ errors: [],
183
+ examples: [],
184
+ id: "992b606d-c59b-466d-b30d-785cf7c77f7c",
185
+ name: "ADD_PACKAGE",
186
+ reducer: "",
187
+ schema: 'input AuthorInput {\n name: String!\n website: URL\n}\n\ninput AddPackageInput {\n "Add your inputs here"\n spaceId: OID!\n name: String!\n description: String\n category: String\n author: AuthorInput\n keywords: [String!]\n github: URL\n npm: URL\n vetraDriveUrl: URL\n}',
188
+ scope: "global",
189
+ template: "",
190
+ },
191
+ {
192
+ description: "",
193
+ errors: [],
194
+ examples: [],
195
+ id: "c457a69d-c570-43b6-bbb1-68aca95bc1c3",
196
+ name: "SET_PACKAGE_DRIVE_ID",
197
+ reducer: "",
198
+ schema: 'input SetPackageDriveIdInput {\n "Add your inputs here"\n packageId: OID!\n driveId: String\n}',
199
+ scope: "global",
200
+ template: "",
201
+ },
202
+ {
203
+ description: "",
204
+ errors: [],
205
+ examples: [],
206
+ id: "cb82b50c-a33c-480a-8c29-1a7f95191bae",
207
+ name: "UPDATE_PACKAGE",
208
+ reducer: "",
209
+ schema: 'input UpdatePackageInput {\n "Add your inputs here"\n id: OID!\n title: String\n description: String\n}',
210
+ scope: "global",
211
+ template: "",
212
+ },
213
+ {
214
+ description: "",
215
+ errors: [],
216
+ examples: [],
217
+ id: "82821647-90f0-47bd-9fce-31f260727d46",
218
+ name: "REORDER_PACKAGES",
219
+ reducer: "",
220
+ schema: 'input ReorderPackagesInput {\n "Add your inputs here"\n spaceId: OID!\n ids: [OID!]!\n insertAfter: OID\n}',
221
+ scope: "global",
222
+ template: "",
223
+ },
224
+ {
225
+ description: "",
226
+ errors: [],
227
+ examples: [],
228
+ id: "578b4c06-cdb0-4df4-bdda-620430f592d4",
229
+ name: "DELETE_PACKAGE",
230
+ reducer: "",
231
+ schema: 'input DeletePackageInput {\n "Add your inputs here"\n id: OID!\n}',
232
+ scope: "global",
233
+ template: "",
234
+ },
235
+ ],
236
+ },
237
+ ],
238
+ state: {
239
+ global: {
240
+ examples: [],
241
+ initialValue: '"{\\n \\"profile\\": {\\n \\"logo\\": null,\\n \\"name\\": \\"\\",\\n \\"slug\\": \\"\\",\\n \\"description\\": null,\\n \\"socials\\": {\\n \\"xProfile\\": null,\\n \\"github\\": null,\\n \\"website\\": null\\n }\\n },\\n \\"members\\": [],\\n \\"spaces\\": []\\n}"',
242
+ schema: "type BuilderAccountState {\n profile: VetraBuilderProfile!\n members: [EthereumAddress!]!\n spaces: [VetraBuilderSpace!]!\n}\n\ntype VetraBuilderProfile {\n logo: URL\n name: String!\n slug: String!\n description: String\n socials: VetraBuilderSocials!\n}\n\ntype VetraBuilderSocials {\n xProfile: URL\n github: URL \n website: URL\n}\n\ntype VetraBuilderSpace {\n id: OID!\n title: String!\n description: String\n packages: [VetraBuilderPackage!]!\n}\n\ntype VetraBuilderPackage {\n id: OID!\n name: String!\n description: String\n category: String\n author: VetraBuilderPackageAuthor!\n keywords: [VetraBuilderPackageKeyword!]!\n github: URL\n npm: URL\n vetraDriveUrl: URL\n}\n\ntype VetraBuilderPackageAuthor {\n name: String!\n website: URL\n}\n\ntype VetraBuilderPackageKeyword {\n id: OID!\n label: String!\n}\n",
243
+ },
244
+ local: {
245
+ examples: [],
246
+ initialValue: '""',
247
+ schema: "",
248
+ },
249
+ },
250
+ version: 1,
251
+ },
252
+ ],
253
+ };
@@ -0,0 +1,7 @@
1
+ export * from "./actions.js";
2
+ export * from "./document-model.js";
3
+ export * from "./object.js";
4
+ export * from "./types.js";
5
+ export * as actions from "./creators.js";
6
+ export type { BuilderAccountPHState } from "./ph-factories.js";
7
+ export { createBuilderAccountDocument, createState, defaultPHState, defaultGlobalState, defaultLocalState, } from "./ph-factories.js";
@@ -0,0 +1,6 @@
1
+ export * from "./actions.js";
2
+ export * from "./document-model.js";
3
+ export * from "./object.js";
4
+ export * from "./types.js";
5
+ export * as actions from "./creators.js";
6
+ export { createBuilderAccountDocument, createState, defaultPHState, defaultGlobalState, defaultLocalState, } from "./ph-factories.js";
@@ -0,0 +1,11 @@
1
+ import { type Action } from "document-model";
2
+ import type { AddMemberInput, RemoveMemberInput } from "../types.js";
3
+ export type AddMemberAction = Action & {
4
+ type: "ADD_MEMBER";
5
+ input: AddMemberInput;
6
+ };
7
+ export type RemoveMemberAction = Action & {
8
+ type: "REMOVE_MEMBER";
9
+ input: RemoveMemberInput;
10
+ };
11
+ export type BuilderAccountMembersAction = AddMemberAction | RemoveMemberAction;
@@ -0,0 +1,4 @@
1
+ import { type AddMemberInput, type RemoveMemberInput } from "../types.js";
2
+ import { type AddMemberAction, type RemoveMemberAction } from "./actions.js";
3
+ export declare const addMember: (input: AddMemberInput) => AddMemberAction;
4
+ export declare const removeMember: (input: RemoveMemberInput) => RemoveMemberAction;
@@ -0,0 +1,4 @@
1
+ import { createAction } from "document-model";
2
+ import { z } from "../types.js";
3
+ export const addMember = (input) => createAction("ADD_MEMBER", { ...input }, undefined, z.AddMemberInputSchema, "global");
4
+ export const removeMember = (input) => createAction("REMOVE_MEMBER", { ...input }, undefined, z.RemoveMemberInputSchema, "global");
@@ -0,0 +1 @@
1
+ export declare const errors: {};
@@ -0,0 +1 @@
1
+ export const errors = {};
@@ -0,0 +1,7 @@
1
+ import { BaseDocumentClass } from "document-model";
2
+ import { BuilderAccountPHState } from "../ph-factories.js";
3
+ import { type AddMemberInput, type RemoveMemberInput } from "../types.js";
4
+ export default class BuilderAccount_Members extends BaseDocumentClass<BuilderAccountPHState> {
5
+ addMember(input: AddMemberInput): this;
6
+ removeMember(input: RemoveMemberInput): this;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseDocumentClass } from "document-model";
2
+ import { addMember, removeMember } from "./creators.js";
3
+ export default class BuilderAccount_Members extends BaseDocumentClass {
4
+ addMember(input) {
5
+ return this.dispatch(addMember(input));
6
+ }
7
+ removeMember(input) {
8
+ return this.dispatch(removeMember(input));
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ import { type SignalDispatch } from "document-model";
2
+ import { type AddMemberAction, type RemoveMemberAction } from "./actions.js";
3
+ import { type BuilderAccountState } from "../types.js";
4
+ export interface BuilderAccountMembersOperations {
5
+ addMemberOperation: (state: BuilderAccountState, action: AddMemberAction, dispatch?: SignalDispatch) => void;
6
+ removeMemberOperation: (state: BuilderAccountState, action: RemoveMemberAction, dispatch?: SignalDispatch) => void;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { BaseDocumentClass, type SignalDispatch } from "document-model";
2
+ import { BuilderAccountPHState } from "./ph-factories.js";
3
+ import BuilderAccount_Profile from "./profile/object.js";
4
+ import BuilderAccount_Members from "./members/object.js";
5
+ import BuilderAccount_Spaces from "./spaces/object.js";
6
+ import BuilderAccount_Packages from "./packages/object.js";
7
+ export * from "./profile/object.js";
8
+ export * from "./members/object.js";
9
+ export * from "./spaces/object.js";
10
+ export * from "./packages/object.js";
11
+ interface BuilderAccount extends BuilderAccount_Profile, BuilderAccount_Members, BuilderAccount_Spaces, BuilderAccount_Packages {
12
+ }
13
+ declare class BuilderAccount extends BaseDocumentClass<BuilderAccountPHState> {
14
+ static fileExtension: string;
15
+ constructor(initialState?: Partial<BuilderAccountPHState>, dispatch?: SignalDispatch);
16
+ saveToFile(path: string, name?: string): Promise<string>;
17
+ loadFromFile(path: string): Promise<void>;
18
+ static fromFile(path: string): Promise<BuilderAccount>;
19
+ }
20
+ export { BuilderAccount };
@@ -0,0 +1,36 @@
1
+ import { BaseDocumentClass, applyMixins, } from "document-model";
2
+ import { reducer } from "./reducer.js";
3
+ import { createDocument } from "./utils.js";
4
+ import BuilderAccount_Profile from "./profile/object.js";
5
+ import BuilderAccount_Members from "./members/object.js";
6
+ import BuilderAccount_Spaces from "./spaces/object.js";
7
+ import BuilderAccount_Packages from "./packages/object.js";
8
+ export * from "./profile/object.js";
9
+ export * from "./members/object.js";
10
+ export * from "./spaces/object.js";
11
+ export * from "./packages/object.js";
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
13
+ class BuilderAccount extends BaseDocumentClass {
14
+ static fileExtension = "phvba";
15
+ constructor(initialState, dispatch) {
16
+ super(reducer, createDocument(initialState), dispatch);
17
+ }
18
+ saveToFile(path, name) {
19
+ return super.saveToFile(path, BuilderAccount.fileExtension, name);
20
+ }
21
+ loadFromFile(path) {
22
+ return super.loadFromFile(path);
23
+ }
24
+ static async fromFile(path) {
25
+ const document = new this();
26
+ await document.loadFromFile(path);
27
+ return document;
28
+ }
29
+ }
30
+ applyMixins(BuilderAccount, [
31
+ BuilderAccount_Profile,
32
+ BuilderAccount_Members,
33
+ BuilderAccount_Spaces,
34
+ BuilderAccount_Packages,
35
+ ]);
36
+ export { BuilderAccount };
@@ -0,0 +1,23 @@
1
+ import { type Action } from "document-model";
2
+ import type { AddPackageInput, SetPackageDriveIdInput, UpdatePackageInput, ReorderPackagesInput, DeletePackageInput } from "../types.js";
3
+ export type AddPackageAction = Action & {
4
+ type: "ADD_PACKAGE";
5
+ input: AddPackageInput;
6
+ };
7
+ export type SetPackageDriveIdAction = Action & {
8
+ type: "SET_PACKAGE_DRIVE_ID";
9
+ input: SetPackageDriveIdInput;
10
+ };
11
+ export type UpdatePackageAction = Action & {
12
+ type: "UPDATE_PACKAGE";
13
+ input: UpdatePackageInput;
14
+ };
15
+ export type ReorderPackagesAction = Action & {
16
+ type: "REORDER_PACKAGES";
17
+ input: ReorderPackagesInput;
18
+ };
19
+ export type DeletePackageAction = Action & {
20
+ type: "DELETE_PACKAGE";
21
+ input: DeletePackageInput;
22
+ };
23
+ export type BuilderAccountPackagesAction = AddPackageAction | SetPackageDriveIdAction | UpdatePackageAction | ReorderPackagesAction | DeletePackageAction;
@@ -0,0 +1,7 @@
1
+ import { type AddPackageInput, type SetPackageDriveIdInput, type UpdatePackageInput, type ReorderPackagesInput, type DeletePackageInput } from "../types.js";
2
+ import { type AddPackageAction, type SetPackageDriveIdAction, type UpdatePackageAction, type ReorderPackagesAction, type DeletePackageAction } from "./actions.js";
3
+ export declare const addPackage: (input: AddPackageInput) => AddPackageAction;
4
+ export declare const setPackageDriveId: (input: SetPackageDriveIdInput) => SetPackageDriveIdAction;
5
+ export declare const updatePackage: (input: UpdatePackageInput) => UpdatePackageAction;
6
+ export declare const reorderPackages: (input: ReorderPackagesInput) => ReorderPackagesAction;
7
+ export declare const deletePackage: (input: DeletePackageInput) => DeletePackageAction;
@@ -0,0 +1,7 @@
1
+ import { createAction } from "document-model";
2
+ import { z, } from "../types.js";
3
+ export const addPackage = (input) => createAction("ADD_PACKAGE", { ...input }, undefined, z.AddPackageInputSchema, "global");
4
+ export const setPackageDriveId = (input) => createAction("SET_PACKAGE_DRIVE_ID", { ...input }, undefined, z.SetPackageDriveIdInputSchema, "global");
5
+ export const updatePackage = (input) => createAction("UPDATE_PACKAGE", { ...input }, undefined, z.UpdatePackageInputSchema, "global");
6
+ export const reorderPackages = (input) => createAction("REORDER_PACKAGES", { ...input }, undefined, z.ReorderPackagesInputSchema, "global");
7
+ export const deletePackage = (input) => createAction("DELETE_PACKAGE", { ...input }, undefined, z.DeletePackageInputSchema, "global");
@@ -0,0 +1 @@
1
+ export declare const errors: {};