@powerhousedao/vetra-builder-package 0.0.17 → 0.0.18

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 (190) hide show
  1. package/dist/document-models/builder-account/gen/document-model.js +1 -1
  2. package/dist/document-models/builder-account/gen/profile/actions.d.ts +5 -5
  3. package/dist/document-models/builder-account/gen/profile/creators.d.ts +3 -3
  4. package/dist/document-models/builder-account/gen/profile/creators.js +1 -1
  5. package/dist/document-models/builder-account/gen/profile/object.d.ts +2 -2
  6. package/dist/document-models/builder-account/gen/profile/object.js +3 -3
  7. package/dist/document-models/builder-account/gen/profile/operations.d.ts +2 -2
  8. package/dist/document-models/builder-account/gen/reducer.js +3 -3
  9. package/dist/document-models/builder-account/gen/schema/types.d.ts +1 -1
  10. package/dist/document-models/builder-account/gen/schema/zod.js +1 -1
  11. package/dist/document-models/builder-account/index.d.ts +1 -1
  12. package/dist/document-models/builder-account/src/reducers/profile.js +4 -0
  13. package/dist/document-models/builder-team/gen/actions.d.ts +9 -0
  14. package/dist/document-models/builder-team/gen/actions.js +4 -0
  15. package/dist/document-models/builder-team/gen/creators.d.ts +4 -0
  16. package/dist/document-models/builder-team/gen/creators.js +4 -0
  17. package/dist/document-models/builder-team/gen/document-model.d.ts +2 -0
  18. package/dist/document-models/builder-team/gen/document-model.js +212 -0
  19. package/dist/document-models/builder-team/gen/index.d.ts +7 -0
  20. package/dist/document-models/builder-team/gen/index.js +6 -0
  21. package/dist/document-models/builder-team/gen/member/actions.d.ts +15 -0
  22. package/dist/document-models/builder-team/gen/member/actions.js +1 -0
  23. package/dist/document-models/builder-team/gen/member/creators.d.ts +5 -0
  24. package/dist/document-models/builder-team/gen/member/creators.js +5 -0
  25. package/dist/document-models/builder-team/gen/member/error.d.ts +1 -0
  26. package/dist/document-models/builder-team/gen/member/error.js +1 -0
  27. package/dist/document-models/builder-team/gen/member/object.d.ts +8 -0
  28. package/dist/document-models/builder-team/gen/member/object.js +13 -0
  29. package/dist/document-models/builder-team/gen/member/operations.d.ts +8 -0
  30. package/dist/document-models/builder-team/gen/member/operations.js +1 -0
  31. package/dist/document-models/builder-team/gen/object.d.ts +20 -0
  32. package/dist/document-models/builder-team/gen/object.js +36 -0
  33. package/dist/document-models/builder-team/gen/packages/actions.d.ts +15 -0
  34. package/dist/document-models/builder-team/gen/packages/actions.js +1 -0
  35. package/dist/document-models/builder-team/gen/packages/creators.d.ts +5 -0
  36. package/dist/document-models/builder-team/gen/packages/creators.js +5 -0
  37. package/dist/document-models/builder-team/gen/packages/error.d.ts +1 -0
  38. package/dist/document-models/builder-team/gen/packages/error.js +1 -0
  39. package/dist/document-models/builder-team/gen/packages/object.d.ts +8 -0
  40. package/dist/document-models/builder-team/gen/packages/object.js +13 -0
  41. package/dist/document-models/builder-team/gen/packages/operations.d.ts +8 -0
  42. package/dist/document-models/builder-team/gen/packages/operations.js +1 -0
  43. package/dist/document-models/builder-team/gen/ph-factories.d.ts +26 -0
  44. package/dist/document-models/builder-team/gen/ph-factories.js +62 -0
  45. package/dist/document-models/builder-team/gen/profile/actions.d.ts +23 -0
  46. package/dist/document-models/builder-team/gen/profile/actions.js +1 -0
  47. package/dist/document-models/builder-team/gen/profile/creators.d.ts +7 -0
  48. package/dist/document-models/builder-team/gen/profile/creators.js +7 -0
  49. package/dist/document-models/builder-team/gen/profile/error.d.ts +1 -0
  50. package/dist/document-models/builder-team/gen/profile/error.js +1 -0
  51. package/dist/document-models/builder-team/gen/profile/object.d.ts +10 -0
  52. package/dist/document-models/builder-team/gen/profile/object.js +19 -0
  53. package/dist/document-models/builder-team/gen/profile/operations.d.ts +10 -0
  54. package/dist/document-models/builder-team/gen/profile/operations.js +1 -0
  55. package/dist/document-models/builder-team/gen/reducer.d.ts +4 -0
  56. package/dist/document-models/builder-team/gen/reducer.js +75 -0
  57. package/dist/document-models/builder-team/gen/schema/index.d.ts +2 -0
  58. package/dist/document-models/builder-team/gen/schema/index.js +2 -0
  59. package/dist/document-models/builder-team/gen/schema/types.d.ts +247 -0
  60. package/dist/document-models/builder-team/gen/schema/types.js +1 -0
  61. package/dist/document-models/builder-team/gen/schema/zod.d.ts +29 -0
  62. package/dist/document-models/builder-team/gen/schema/zod.js +148 -0
  63. package/dist/document-models/builder-team/gen/spaces/actions.d.ts +15 -0
  64. package/dist/document-models/builder-team/gen/spaces/actions.js +1 -0
  65. package/dist/document-models/builder-team/gen/spaces/creators.d.ts +5 -0
  66. package/dist/document-models/builder-team/gen/spaces/creators.js +5 -0
  67. package/dist/document-models/builder-team/gen/spaces/error.d.ts +1 -0
  68. package/dist/document-models/builder-team/gen/spaces/error.js +1 -0
  69. package/dist/document-models/builder-team/gen/spaces/object.d.ts +8 -0
  70. package/dist/document-models/builder-team/gen/spaces/object.js +13 -0
  71. package/dist/document-models/builder-team/gen/spaces/operations.d.ts +8 -0
  72. package/dist/document-models/builder-team/gen/spaces/operations.js +1 -0
  73. package/dist/document-models/builder-team/gen/types.d.ts +9 -0
  74. package/dist/document-models/builder-team/gen/types.js +1 -0
  75. package/dist/document-models/builder-team/gen/utils.d.ts +21 -0
  76. package/dist/document-models/builder-team/gen/utils.js +54 -0
  77. package/dist/document-models/builder-team/index.d.ts +37 -0
  78. package/dist/document-models/builder-team/index.js +21 -0
  79. package/dist/document-models/builder-team/src/reducers/member.d.ts +2 -0
  80. package/dist/document-models/builder-team/src/reducers/member.js +30 -0
  81. package/dist/document-models/builder-team/src/reducers/packages.d.ts +2 -0
  82. package/dist/document-models/builder-team/src/reducers/packages.js +40 -0
  83. package/dist/document-models/builder-team/src/reducers/profile.d.ts +2 -0
  84. package/dist/document-models/builder-team/src/reducers/profile.js +26 -0
  85. package/dist/document-models/builder-team/src/reducers/spaces.d.ts +2 -0
  86. package/dist/document-models/builder-team/src/reducers/spaces.js +34 -0
  87. package/dist/document-models/builder-team/src/tests/document-model.test.d.ts +5 -0
  88. package/dist/document-models/builder-team/src/tests/document-model.test.js +18 -0
  89. package/dist/document-models/builder-team/src/tests/member.test.d.ts +5 -0
  90. package/dist/document-models/builder-team/src/tests/member.test.js +40 -0
  91. package/dist/document-models/builder-team/src/tests/packages.test.d.ts +5 -0
  92. package/dist/document-models/builder-team/src/tests/packages.test.js +40 -0
  93. package/dist/document-models/builder-team/src/tests/profile.test.d.ts +5 -0
  94. package/dist/document-models/builder-team/src/tests/profile.test.js +56 -0
  95. package/dist/document-models/builder-team/src/tests/spaces.test.d.ts +5 -0
  96. package/dist/document-models/builder-team/src/tests/spaces.test.js +40 -0
  97. package/dist/document-models/builder-team/src/utils.d.ts +1 -0
  98. package/dist/document-models/builder-team/src/utils.js +1 -0
  99. package/dist/document-models/index.d.ts +1 -1
  100. package/dist/document-models/index.js +1 -1
  101. package/dist/editors/builder-team-editor/components/Header.d.ts +8 -0
  102. package/dist/editors/builder-team-editor/components/Header.js +5 -0
  103. package/dist/editors/builder-team-editor/components/MembersSection.d.ts +14 -0
  104. package/dist/editors/builder-team-editor/components/MembersSection.js +152 -0
  105. package/dist/editors/builder-team-editor/components/PackageForm.d.ts +8 -0
  106. package/dist/editors/builder-team-editor/components/PackageForm.js +92 -0
  107. package/dist/editors/builder-team-editor/components/PackageItem.d.ts +11 -0
  108. package/dist/editors/builder-team-editor/components/PackageItem.js +99 -0
  109. package/dist/editors/builder-team-editor/components/ProfileSection.d.ts +17 -0
  110. package/dist/editors/builder-team-editor/components/ProfileSection.js +5 -0
  111. package/dist/editors/builder-team-editor/components/QuickStats.d.ts +7 -0
  112. package/dist/editors/builder-team-editor/components/QuickStats.js +5 -0
  113. package/dist/editors/builder-team-editor/components/SpaceForm.d.ts +9 -0
  114. package/dist/editors/builder-team-editor/components/SpaceForm.js +11 -0
  115. package/dist/editors/builder-team-editor/components/SpaceItem.d.ts +21 -0
  116. package/dist/editors/builder-team-editor/components/SpaceItem.js +12 -0
  117. package/dist/editors/builder-team-editor/components/SpacesSection.d.ts +22 -0
  118. package/dist/editors/builder-team-editor/components/SpacesSection.js +14 -0
  119. package/dist/editors/builder-team-editor/config.d.ts +6 -0
  120. package/dist/editors/builder-team-editor/config.js +11 -0
  121. package/dist/editors/builder-team-editor/editor.d.ts +3 -0
  122. package/dist/editors/builder-team-editor/editor.js +73 -0
  123. package/dist/editors/builder-team-editor/hooks/useMemberHandlers.d.ts +12 -0
  124. package/dist/editors/builder-team-editor/hooks/useMemberHandlers.js +27 -0
  125. package/dist/editors/builder-team-editor/hooks/usePackageHandlers.d.ts +11 -0
  126. package/dist/editors/builder-team-editor/hooks/usePackageHandlers.js +49 -0
  127. package/dist/editors/builder-team-editor/hooks/useProfileHandlers.d.ts +14 -0
  128. package/dist/editors/builder-team-editor/hooks/useProfileHandlers.js +38 -0
  129. package/dist/editors/builder-team-editor/hooks/useSpaceHandlers.d.ts +15 -0
  130. package/dist/editors/builder-team-editor/hooks/useSpaceHandlers.js +82 -0
  131. package/dist/editors/builder-team-editor/index.d.ts +2 -0
  132. package/dist/editors/builder-team-editor/index.js +11 -0
  133. package/dist/editors/hooks/useBuilderTeamDocument.d.ts +3 -0
  134. package/dist/editors/hooks/useBuilderTeamDocument.js +8 -0
  135. package/dist/editors/index.d.ts +1 -1
  136. package/dist/editors/index.js +1 -1
  137. package/dist/index.d.ts +1 -1
  138. package/dist/powerhouse.manifest.json +21 -6
  139. package/dist/processors/factory.d.ts +0 -4
  140. package/dist/processors/factory.js +3 -3
  141. package/dist/processors/index.d.ts +2 -2
  142. package/dist/processors/index.js +2 -2
  143. package/dist/processors/old_vetra-builder-relational-db-processor/factory.d.ts +3 -0
  144. package/dist/processors/old_vetra-builder-relational-db-processor/factory.js +22 -0
  145. package/dist/processors/old_vetra-builder-relational-db-processor/index.d.ts +9 -0
  146. package/dist/processors/old_vetra-builder-relational-db-processor/index.js +32 -0
  147. package/dist/processors/old_vetra-builder-relational-db-processor/migrations.d.ts +3 -0
  148. package/dist/processors/old_vetra-builder-relational-db-processor/migrations.js +14 -0
  149. package/dist/processors/old_vetra-builder-relational-db-processor/schema.d.ts +7 -0
  150. package/dist/processors/old_vetra-builder-relational-db-processor/schema.js +1 -0
  151. package/dist/processors/vetra-builder-relational-db-processor/builder-team-handlers.d.ts +22 -0
  152. package/dist/processors/vetra-builder-relational-db-processor/builder-team-handlers.js +261 -0
  153. package/dist/processors/vetra-builder-relational-db-processor/database-helpers.d.ts +39 -0
  154. package/dist/processors/vetra-builder-relational-db-processor/database-helpers.js +144 -0
  155. package/dist/processors/vetra-builder-relational-db-processor/factory.d.ts +3 -0
  156. package/dist/processors/vetra-builder-relational-db-processor/factory.js +23 -0
  157. package/dist/processors/vetra-builder-relational-db-processor/index.d.ts +13 -0
  158. package/dist/processors/vetra-builder-relational-db-processor/index.js +53 -0
  159. package/dist/processors/vetra-builder-relational-db-processor/migrations.d.ts +3 -0
  160. package/dist/processors/vetra-builder-relational-db-processor/migrations.js +155 -0
  161. package/dist/processors/vetra-builder-relational-db-processor/schema.d.ts +66 -0
  162. package/dist/processors/vetra-builder-relational-db-processor/schema.js +1 -0
  163. package/dist/processors/vetra-builder-relational-db-processor/types.d.ts +32 -0
  164. package/dist/processors/vetra-builder-relational-db-processor/types.js +1 -0
  165. package/dist/style.css +36 -28
  166. package/dist/subgraphs/builder-account/resolvers.js +3 -3
  167. package/dist/subgraphs/builder-account/schema.js +4 -4
  168. package/dist/subgraphs/builder-team/index.d.ts +10 -0
  169. package/dist/subgraphs/builder-team/index.js +11 -0
  170. package/dist/subgraphs/builder-team/resolvers.d.ts +2 -0
  171. package/dist/subgraphs/builder-team/resolvers.js +240 -0
  172. package/dist/subgraphs/builder-team/schema.d.ts +2 -0
  173. package/dist/subgraphs/builder-team/schema.js +228 -0
  174. package/dist/subgraphs/index.d.ts +2 -2
  175. package/dist/subgraphs/index.js +3 -2
  176. package/dist/subgraphs/vetra-builders/index.d.ts +10 -0
  177. package/dist/subgraphs/vetra-builders/index.js +11 -0
  178. package/dist/subgraphs/vetra-builders/resolvers.d.ts +2 -0
  179. package/dist/subgraphs/vetra-builders/resolvers.js +144 -0
  180. package/dist/subgraphs/vetra-builders/schema.d.ts +2 -0
  181. package/dist/subgraphs/vetra-builders/schema.js +79 -0
  182. package/dist/subgraphs/vetra-builders-bkp/index.d.ts +10 -0
  183. package/dist/subgraphs/vetra-builders-bkp/index.js +11 -0
  184. package/dist/subgraphs/vetra-builders-bkp/resolvers.d.ts +2 -0
  185. package/dist/subgraphs/vetra-builders-bkp/resolvers.js +10 -0
  186. package/dist/subgraphs/vetra-builders-bkp/schema.d.ts +2 -0
  187. package/dist/subgraphs/vetra-builders-bkp/schema.js +9 -0
  188. package/dist/utils/nano-id.d.ts +1 -0
  189. package/dist/utils/nano-id.js +4 -0
  190. package/package.json +4 -2
@@ -0,0 +1,21 @@
1
+ import { type VetraBuilderSpace, type VetraPackageInfo } from "document-models/builder-team/index.js";
2
+ interface SpaceItemProps {
3
+ space: VetraBuilderSpace;
4
+ isEditing: boolean;
5
+ editingSpaceTitle: string;
6
+ editingSpaceDescription: string;
7
+ editingPackageId: string | null;
8
+ onEdit: () => void;
9
+ onDelete: () => void;
10
+ onSaveEdit: () => boolean;
11
+ onCancelEdit: () => void;
12
+ onSetEditingTitle: (title: string) => void;
13
+ onSetEditingDescription: (description: string) => void;
14
+ onAddPackage: (spaceId: string) => void;
15
+ onEditPackage: (packageId: string) => void;
16
+ onDeletePackage: (packageId: string) => void;
17
+ onSavePackage: (packageInfo: VetraPackageInfo) => void;
18
+ onCancelPackageEdit: () => void;
19
+ }
20
+ export declare function SpaceItem({ space, isEditing, editingSpaceTitle, editingSpaceDescription, editingPackageId, onEdit, onDelete, onSaveEdit, onCancelEdit, onSetEditingTitle, onSetEditingDescription, onAddPackage, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }: SpaceItemProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Form, StringField } from "@powerhousedao/document-engineering";
3
+ import { PackageItem } from "./PackageItem.js";
4
+ function EditSpaceForm({ title, description, onTitleChange, onDescriptionChange, onSave, onCancel, }) {
5
+ return (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-4", children: [_jsx(StringField, { name: "editingSpaceTitle", label: "Space Title", value: title, onChange: (e) => onTitleChange(e.target.value), placeholder: "Enter space title" }), _jsx(StringField, { name: "editingSpaceDescription", label: "Description (optional)", value: description, onChange: (e) => onDescriptionChange(e.target.value), placeholder: "Enter space description" }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: onCancel, children: "Cancel" }), _jsx(Button, { onClick: onSave, disabled: !title.trim(), children: "Save Changes" })] })] }) }));
6
+ }
7
+ export function SpaceItem({ space, isEditing, editingSpaceTitle, editingSpaceDescription, editingPackageId, onEdit, onDelete, onSaveEdit, onCancelEdit, onSetEditingTitle, onSetEditingDescription, onAddPackage, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }) {
8
+ if (isEditing) {
9
+ return (_jsx("div", { className: "border border-gray-200 rounded-lg p-4", children: _jsx(EditSpaceForm, { title: editingSpaceTitle, description: editingSpaceDescription, onTitleChange: onSetEditingTitle, onDescriptionChange: onSetEditingDescription, onSave: onSaveEdit, onCancel: onCancelEdit }) }));
10
+ }
11
+ return (_jsxs("div", { className: "border border-gray-200 rounded-lg p-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-md font-medium text-gray-900", children: space.title }), space.description && (_jsx("p", { className: "text-sm text-gray-500 mt-1", children: space.description })), _jsxs("p", { className: "text-xs text-gray-400 mt-1", children: [space.packages.length, " package", space.packages.length !== 1 ? "s" : ""] })] }), _jsxs("div", { className: "flex space-x-2", children: [_jsx(Button, { color: "light", size: "sm", onClick: onEdit, children: "Edit" }), _jsx(Button, { color: "light", size: "sm", onClick: () => onAddPackage(space.id), children: "Add Package" }), _jsx(Button, { color: "red", size: "sm", onClick: onDelete, children: "Delete" })] })] }), space.packages.length > 0 && (_jsx("div", { className: "mt-4 space-y-2", children: space.packages.map((pkg) => (_jsx(PackageItem, { pkg: pkg, isEditing: editingPackageId === pkg.id, onEdit: () => onEditPackage(pkg.id), onDelete: () => onDeletePackage(pkg.id), onSave: (selectedPackage) => onSavePackage(selectedPackage), onCancel: onCancelPackageEdit }, pkg.id))) }))] }));
12
+ }
@@ -0,0 +1,22 @@
1
+ import type { BuilderTeamDocument, VetraPackageInfo } from "../../../document-models/builder-team/index.js";
2
+ interface SpacesSectionProps {
3
+ spaces: BuilderTeamDocument["state"]["global"]["spaces"];
4
+ editingSpaceId: string | null;
5
+ editingSpaceTitle: string;
6
+ editingSpaceDescription: string;
7
+ editingPackageId: string | null;
8
+ onAddSpace: (title: string, description: string) => boolean;
9
+ onDeleteSpace: (spaceId: string) => void;
10
+ onStartEditingSpace: (spaceId: string) => void;
11
+ onSaveSpaceEdit: () => boolean;
12
+ onCancelSpaceEdit: () => void;
13
+ onSetEditingSpaceTitle: (title: string) => void;
14
+ onSetEditingSpaceDescription: (description: string) => void;
15
+ onAddPackageToSpace: (spaceId: string) => void;
16
+ onEditPackage: (packageId: string) => void;
17
+ onDeletePackage: (packageId: string) => void;
18
+ onSavePackage: (packageInfo: VetraPackageInfo) => void;
19
+ onCancelPackageEdit: () => void;
20
+ }
21
+ export declare function SpacesSection({ spaces, editingSpaceId, editingSpaceTitle, editingSpaceDescription, editingPackageId, onAddSpace, onDeleteSpace, onStartEditingSpace, onSaveSpaceEdit, onCancelSpaceEdit, onSetEditingSpaceTitle, onSetEditingSpaceDescription, onAddPackageToSpace, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }: SpacesSectionProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from "@powerhousedao/document-engineering";
3
+ import { useState } from "react";
4
+ import { SpaceForm } from "./SpaceForm.js";
5
+ import { SpaceItem } from "./SpaceItem.js";
6
+ export function SpacesSection({ spaces, editingSpaceId, editingSpaceTitle, editingSpaceDescription, editingPackageId, onAddSpace, onDeleteSpace, onStartEditingSpace, onSaveSpaceEdit, onCancelSpaceEdit, onSetEditingSpaceTitle, onSetEditingSpaceDescription, onAddPackageToSpace, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }) {
7
+ const [isAddingSpace, setIsAddingSpace] = useState(false);
8
+ const handleAddSpace = (title, description) => {
9
+ if (onAddSpace(title, description)) {
10
+ setIsAddingSpace(false);
11
+ }
12
+ };
13
+ return (_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Spaces" }), _jsx("p", { className: "text-sm text-gray-500", children: "Organize your packages into spaces" })] }), _jsx(Button, { onClick: () => setIsAddingSpace(true), children: "Add Space" })] }) }), _jsxs("div", { className: "p-6", children: [isAddingSpace && (_jsx(SpaceForm, { onSave: handleAddSpace, onCancel: () => setIsAddingSpace(false) })), _jsx("div", { className: "space-y-4", children: spaces.length > 0 ? (spaces.map((space) => (_jsx(SpaceItem, { space: space, isEditing: editingSpaceId === space.id, editingSpaceTitle: editingSpaceTitle, editingSpaceDescription: editingSpaceDescription, editingPackageId: editingPackageId, onEdit: () => onStartEditingSpace(space.id), onDelete: () => onDeleteSpace(space.id), onSaveEdit: onSaveSpaceEdit, onCancelEdit: onCancelSpaceEdit, onSetEditingTitle: onSetEditingSpaceTitle, onSetEditingDescription: onSetEditingSpaceDescription, onAddPackage: onAddPackageToSpace, onEditPackage: onEditPackage, onDeletePackage: onDeletePackage, onSavePackage: onSavePackage, onCancelPackageEdit: onCancelPackageEdit }, space.id)))) : (_jsx("div", { className: "text-center py-8 text-gray-500", children: _jsx("p", { children: "No spaces created yet. Create a space to organize your packages." }) })) })] })] }));
14
+ }
@@ -0,0 +1,6 @@
1
+ export declare const config: {
2
+ renownGraphqlEndpoint: string;
3
+ vetraGraphqlEndpoint: string;
4
+ renownProfileBasePath: string;
5
+ vetraPackageBasePath: string;
6
+ };
@@ -0,0 +1,11 @@
1
+ const getEnvVar = (key, defaultValue) => {
2
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
3
+ const value = process.env[key];
4
+ return typeof value === "string" ? value : defaultValue;
5
+ };
6
+ export const config = {
7
+ renownGraphqlEndpoint: getEnvVar("VETRA_RENOWN_GRAPHQL_ENDPOINT", "https://switchboard.renown-staging.vetra.io/graphql"),
8
+ vetraGraphqlEndpoint: getEnvVar("VETRA_VETRA_GRAPHQL_ENDPOINT", "https://switchboard.staging.vetra.io/graphql"),
9
+ renownProfileBasePath: getEnvVar("VETRA_RENOWN_PROFILE_BASE_PATH", "phd://renown-staging.vetra.to/"),
10
+ vetraPackageBasePath: getEnvVar("VETRA_VETRA_PACKAGE_BASE_PATH", "phd://staging.vetra.to/"),
11
+ };
@@ -0,0 +1,3 @@
1
+ import type { EditorProps } from "document-model";
2
+ export type IProps = EditorProps;
3
+ export declare function Editor(props: IProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useSelectedDocument } from "@powerhousedao/reactor-browser";
3
+ import { useState } from "react";
4
+ import { actions } from "../../document-models/builder-team/index.js";
5
+ import { Header } from "./components/Header.js";
6
+ import { ProfileSection } from "./components/ProfileSection.js";
7
+ import { SpacesSection } from "./components/SpacesSection.js";
8
+ import { PackageForm } from "./components/PackageForm.js";
9
+ import { MembersSection } from "./components/MembersSection.js";
10
+ import { QuickStats } from "./components/QuickStats.js";
11
+ import { useProfileHandlers } from "./hooks/useProfileHandlers.js";
12
+ import { useSpaceHandlers } from "./hooks/useSpaceHandlers.js";
13
+ import { usePackageHandlers } from "./hooks/usePackageHandlers.js";
14
+ import { useMemberHandlers } from "./hooks/useMemberHandlers.js";
15
+ import { generateNanoId } from "../../utils/nano-id.js";
16
+ export function Editor(props) {
17
+ const [document, dispatch] = useSelectedDocument();
18
+ const typedDocument = document;
19
+ // Local UI state
20
+ const [isEditingProfile, setIsEditingProfile] = useState(false);
21
+ const [isAddingPackage, setIsAddingPackage] = useState(false);
22
+ const [selectedSpaceForPackage, setSelectedSpaceForPackage] = useState("");
23
+ const { state: { global }, } = typedDocument;
24
+ const { profile, spaces, members } = global;
25
+ // Custom hooks for handlers
26
+ const profileHandlers = useProfileHandlers(profile, dispatch);
27
+ const spaceHandlers = useSpaceHandlers(spaces, dispatch);
28
+ const packageHandlers = usePackageHandlers(spaces, dispatch);
29
+ const memberHandlers = useMemberHandlers(dispatch);
30
+ // Wrapper handlers for components
31
+ const handleAddPackageToSpace = (spaceId) => {
32
+ setSelectedSpaceForPackage(spaceId);
33
+ setIsAddingPackage(true);
34
+ };
35
+ const handleSavePackage = (spaceId, packageInfo) => {
36
+ if (!packageInfo) {
37
+ return false;
38
+ }
39
+ // Create the package first with a generated ID
40
+ const id = generateNanoId();
41
+ dispatch(actions.addPackage({ id, spaceId }));
42
+ // Update the package with full info from the PHID selection
43
+ dispatch(actions.updatePackageInfo({
44
+ id,
45
+ phid: packageInfo.phid,
46
+ title: packageInfo.title,
47
+ description: packageInfo.description,
48
+ github: packageInfo.github,
49
+ npm: packageInfo.npm,
50
+ vetraDriveUrl: packageInfo.vetraDriveUrl,
51
+ }));
52
+ setIsAddingPackage(false);
53
+ setSelectedSpaceForPackage("");
54
+ return true;
55
+ };
56
+ const handleCancelAddPackage = () => {
57
+ setIsAddingPackage(false);
58
+ setSelectedSpaceForPackage("");
59
+ };
60
+ return (_jsxs("div", { className: "html-defaults-container min-h-screen bg-gray-50", children: [_jsx(Header, { profile: profile, isEditingProfile: isEditingProfile, onToggleEdit: () => setIsEditingProfile(!isEditingProfile) }), _jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-3 gap-8", children: [_jsxs("div", { className: "lg:col-span-2 space-y-8", children: [_jsx(ProfileSection, { profile: profile, isEditing: isEditingProfile, onSetProfileName: profileHandlers.handleSetProfileName, onSetSlug: profileHandlers.handleSetSlug, onSetDescription: profileHandlers.handleSetProfileDescription, onSetLogo: profileHandlers.handleSetLogo, onUpdateSocials: profileHandlers.handleUpdateSocials, onClose: () => setIsEditingProfile(false) }), _jsx(SpacesSection, { spaces: spaces, editingSpaceId: spaceHandlers.editingSpaceId, editingSpaceTitle: spaceHandlers.editingSpaceTitle, editingSpaceDescription: spaceHandlers.editingSpaceDescription, editingPackageId: packageHandlers.editingPackageId, onAddSpace: spaceHandlers.handleAddSpace, onDeleteSpace: spaceHandlers.handleDeleteSpace, onStartEditingSpace: spaceHandlers.handleStartEditingSpace, onSaveSpaceEdit: spaceHandlers.handleSaveSpaceEdit, onCancelSpaceEdit: spaceHandlers.handleCancelSpaceEdit, onSetEditingSpaceTitle: spaceHandlers.setEditingSpaceTitle, onSetEditingSpaceDescription: spaceHandlers.setEditingSpaceDescription, onAddPackageToSpace: handleAddPackageToSpace, onEditPackage: packageHandlers.handleStartEditingPackage, onDeletePackage: packageHandlers.handleDeletePackage, onSavePackage: (packageInfo) => {
61
+ // Update the package with info
62
+ dispatch(actions.updatePackageInfo({
63
+ id: packageInfo.id,
64
+ phid: packageInfo.phid,
65
+ title: packageInfo.title,
66
+ description: packageInfo.description,
67
+ github: packageInfo.github,
68
+ npm: packageInfo.npm,
69
+ vetraDriveUrl: packageInfo.vetraDriveUrl,
70
+ }));
71
+ packageHandlers.handleCancelPackageEdit();
72
+ }, onCancelPackageEdit: packageHandlers.handleCancelPackageEdit }), isAddingPackage && (_jsx(PackageForm, { spaceId: selectedSpaceForPackage, onSave: handleSavePackage, onCancel: handleCancelAddPackage }))] }), _jsxs("div", { className: "space-y-6", children: [_jsx(MembersSection, { members: members, onAddMember: memberHandlers.handleAddMember, onRemoveMember: memberHandlers.handleRemoveMember }), _jsx(QuickStats, { spaces: spaces, members: members })] })] }) })] }));
73
+ }
@@ -0,0 +1,12 @@
1
+ import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
2
+ import { type Action } from "document-model";
3
+ export interface MemberProfileData {
4
+ phid: string;
5
+ ethAddress: string;
6
+ name: string;
7
+ profileImage?: string;
8
+ }
9
+ export declare function useMemberHandlers(dispatch: DocumentDispatch<Action>): {
10
+ handleAddMember: (profileData: MemberProfileData) => boolean;
11
+ handleRemoveMember: (id: string) => void;
12
+ };
@@ -0,0 +1,27 @@
1
+ import { useCallback } from "react";
2
+ import { actions } from "../../../document-models/builder-team/index.js";
3
+ import { generateNanoId } from "../../../utils/nano-id.js";
4
+ export function useMemberHandlers(dispatch) {
5
+ const handleAddMember = useCallback((profileData) => {
6
+ if (profileData.ethAddress.trim()) {
7
+ const id = generateNanoId();
8
+ dispatch(actions.addMember({ id }));
9
+ dispatch(actions.updateMemberInfo({
10
+ id,
11
+ phid: profileData.phid,
12
+ ethAddress: profileData.ethAddress.trim(),
13
+ name: profileData.name,
14
+ profileImage: profileData.profileImage,
15
+ }));
16
+ return true;
17
+ }
18
+ return false;
19
+ }, [dispatch]);
20
+ const handleRemoveMember = useCallback((id) => {
21
+ dispatch(actions.removeMember({ id }));
22
+ }, [dispatch]);
23
+ return {
24
+ handleAddMember,
25
+ handleRemoveMember,
26
+ };
27
+ }
@@ -0,0 +1,11 @@
1
+ import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
2
+ import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
3
+ import { type Action } from "document-model";
4
+ export declare function usePackageHandlers(spaces: BuilderTeamDocument["state"]["global"]["spaces"], dispatch: DocumentDispatch<Action>): {
5
+ editingPackageId: string | null;
6
+ handleAddPackage: (spaceId: string, name: string, description: string) => boolean;
7
+ handleDeletePackage: (packageId: string) => void;
8
+ handleStartEditingPackage: (packageId: string) => void;
9
+ handleSavePackageEdit: (packageId: string, name: string, description: string) => boolean;
10
+ handleCancelPackageEdit: () => void;
11
+ };
@@ -0,0 +1,49 @@
1
+ import { useCallback, useState } from "react";
2
+ import { actions, } from "../../../document-models/builder-team/index.js";
3
+ import { generateNanoId } from "../../../utils/nano-id.js";
4
+ export function usePackageHandlers(spaces, dispatch) {
5
+ const [editingPackageId, setEditingPackageId] = useState(null);
6
+ const handleAddPackage = useCallback((spaceId, name, description) => {
7
+ if (name.trim() && spaceId) {
8
+ const id = generateNanoId();
9
+ dispatch(actions.addPackage({ id, spaceId }));
10
+ dispatch(actions.updatePackageInfo({
11
+ id,
12
+ title: name.trim(),
13
+ description: description.trim() || null,
14
+ }));
15
+ return true;
16
+ }
17
+ return false;
18
+ }, [dispatch]);
19
+ const handleDeletePackage = useCallback((packageId) => {
20
+ dispatch(actions.removePackage({ id: packageId }));
21
+ }, [dispatch]);
22
+ const handleStartEditingPackage = useCallback((packageId) => {
23
+ setEditingPackageId(packageId);
24
+ }, []);
25
+ const handleSavePackageEdit = useCallback((packageId, name, description) => {
26
+ console.log("handleSavePackageEdit", packageId, name, description);
27
+ if (packageId && name.trim()) {
28
+ dispatch(actions.updatePackageInfo({
29
+ id: packageId,
30
+ title: name.trim(),
31
+ description: description.trim() || null,
32
+ }));
33
+ setEditingPackageId(null);
34
+ return true;
35
+ }
36
+ return false;
37
+ }, [dispatch]);
38
+ const handleCancelPackageEdit = useCallback(() => {
39
+ setEditingPackageId(null);
40
+ }, []);
41
+ return {
42
+ editingPackageId,
43
+ handleAddPackage,
44
+ handleDeletePackage,
45
+ handleStartEditingPackage,
46
+ handleSavePackageEdit,
47
+ handleCancelPackageEdit,
48
+ };
49
+ }
@@ -0,0 +1,14 @@
1
+ import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
2
+ import { type Action } from "document-model";
3
+ import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
4
+ export declare function useProfileHandlers(profile: BuilderTeamDocument["state"]["global"]["profile"], dispatch: DocumentDispatch<Action>): {
5
+ handleSetProfileName: (name: string) => void;
6
+ handleSetSlug: (slug: string) => void;
7
+ handleSetProfileDescription: (description: string) => void;
8
+ handleSetLogo: (logoUrl: string) => void;
9
+ handleUpdateSocials: (socials: {
10
+ github?: string | null;
11
+ website?: string | null;
12
+ x?: string | null;
13
+ }) => void;
14
+ };
@@ -0,0 +1,38 @@
1
+ import { useCallback } from "react";
2
+ import { actions, } from "../../../document-models/builder-team/index.js";
3
+ export function useProfileHandlers(profile, dispatch) {
4
+ const handleSetProfileName = useCallback((name) => {
5
+ if (name.trim() && name !== profile.name) {
6
+ dispatch(actions.setTeamName({ name: name.trim() }));
7
+ }
8
+ }, [profile.name, dispatch]);
9
+ const handleSetSlug = useCallback((slug) => {
10
+ if (slug.trim() && slug !== profile.slug) {
11
+ dispatch(actions.setSlug({ slug: slug.trim() }));
12
+ }
13
+ }, [profile.slug, dispatch]);
14
+ const handleSetProfileDescription = useCallback((description) => {
15
+ if (description !== profile.description) {
16
+ dispatch(actions.setDescription({ description: description.trim() || null }));
17
+ }
18
+ }, [profile.description, dispatch]);
19
+ const handleSetLogo = useCallback((logoUrl) => {
20
+ if (logoUrl.trim() && logoUrl !== profile.logo) {
21
+ dispatch(actions.setLogo({ logo: logoUrl.trim() }));
22
+ }
23
+ }, [profile.logo, dispatch]);
24
+ const handleUpdateSocials = useCallback((socials) => {
25
+ dispatch(actions.setSocials({
26
+ github: socials.github?.trim() || null,
27
+ website: socials.website?.trim() || null,
28
+ xProfile: socials.x?.trim() || null,
29
+ }));
30
+ }, [dispatch]);
31
+ return {
32
+ handleSetProfileName,
33
+ handleSetSlug,
34
+ handleSetProfileDescription,
35
+ handleSetLogo,
36
+ handleUpdateSocials,
37
+ };
38
+ }
@@ -0,0 +1,15 @@
1
+ import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
2
+ import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
3
+ import { type Action } from "document-model";
4
+ export declare function useSpaceHandlers(spaces: BuilderTeamDocument["state"]["global"]["spaces"], dispatch: DocumentDispatch<Action>): {
5
+ editingSpaceId: string | null;
6
+ editingSpaceTitle: string;
7
+ setEditingSpaceTitle: import("react").Dispatch<import("react").SetStateAction<string>>;
8
+ editingSpaceDescription: string;
9
+ setEditingSpaceDescription: import("react").Dispatch<import("react").SetStateAction<string>>;
10
+ handleAddSpace: (title: string, description: string) => boolean;
11
+ handleDeleteSpace: (spaceId: string) => void;
12
+ handleStartEditingSpace: (spaceId: string) => void;
13
+ handleSaveSpaceEdit: () => boolean;
14
+ handleCancelSpaceEdit: () => void;
15
+ };
@@ -0,0 +1,82 @@
1
+ import { useCallback, useState } from "react";
2
+ import { actions, } from "../../../document-models/builder-team/index.js";
3
+ import { generateNanoId } from "../../../utils/nano-id.js";
4
+ export function useSpaceHandlers(spaces, dispatch) {
5
+ const [editingSpaceId, setEditingSpaceId] = useState(null);
6
+ const [editingSpaceTitle, setEditingSpaceTitle] = useState("");
7
+ const [editingSpaceDescription, setEditingSpaceDescription] = useState("");
8
+ const handleAddSpace = useCallback((title, description) => {
9
+ if (title.trim()) {
10
+ // Generate a nano id for the space
11
+ const id = generateNanoId();
12
+ // Create the space with the generated ID
13
+ dispatch(actions.addSpace({
14
+ id,
15
+ }));
16
+ // Update the space with title and description
17
+ dispatch(actions.updateSpaceInfo({
18
+ id,
19
+ title: title.trim(),
20
+ description: description.trim() || undefined,
21
+ }));
22
+ return true;
23
+ }
24
+ return false;
25
+ }, [dispatch]);
26
+ const handleDeleteSpace = useCallback((spaceId) => {
27
+ dispatch(actions.removeSpace({ id: spaceId }));
28
+ }, [dispatch]);
29
+ const handleSetSpaceTitle = useCallback((spaceId, newTitle) => {
30
+ if (newTitle.trim()) {
31
+ dispatch(actions.updateSpaceInfo({ id: spaceId, title: newTitle.trim() }));
32
+ }
33
+ }, [dispatch]);
34
+ const handleSetSpaceDescription = useCallback((spaceId, description) => {
35
+ dispatch(actions.updateSpaceInfo({
36
+ id: spaceId,
37
+ description: description.trim(),
38
+ }));
39
+ }, [dispatch]);
40
+ const handleStartEditingSpace = useCallback((spaceId) => {
41
+ const space = spaces.find((s) => s.id === spaceId);
42
+ if (space) {
43
+ setEditingSpaceId(spaceId);
44
+ setEditingSpaceTitle(space.title);
45
+ setEditingSpaceDescription(space.description || "");
46
+ }
47
+ }, [spaces]);
48
+ const handleSaveSpaceEdit = useCallback(() => {
49
+ if (editingSpaceId && editingSpaceTitle.trim()) {
50
+ handleSetSpaceTitle(editingSpaceId, editingSpaceTitle);
51
+ handleSetSpaceDescription(editingSpaceId, editingSpaceDescription);
52
+ setEditingSpaceId(null);
53
+ setEditingSpaceTitle("");
54
+ setEditingSpaceDescription("");
55
+ return true;
56
+ }
57
+ return false;
58
+ }, [
59
+ editingSpaceId,
60
+ editingSpaceTitle,
61
+ editingSpaceDescription,
62
+ handleSetSpaceTitle,
63
+ handleSetSpaceDescription,
64
+ ]);
65
+ const handleCancelSpaceEdit = useCallback(() => {
66
+ setEditingSpaceId(null);
67
+ setEditingSpaceTitle("");
68
+ setEditingSpaceDescription("");
69
+ }, []);
70
+ return {
71
+ editingSpaceId,
72
+ editingSpaceTitle,
73
+ setEditingSpaceTitle,
74
+ editingSpaceDescription,
75
+ setEditingSpaceDescription,
76
+ handleAddSpace,
77
+ handleDeleteSpace,
78
+ handleStartEditingSpace,
79
+ handleSaveSpaceEdit,
80
+ handleCancelSpaceEdit,
81
+ };
82
+ }
@@ -0,0 +1,2 @@
1
+ import type { EditorModule } from "document-model";
2
+ export declare const module: EditorModule;
@@ -0,0 +1,11 @@
1
+ import { Editor } from "./editor.js";
2
+ export const module = {
3
+ Component: Editor,
4
+ documentTypes: ["powerhouse/builder-team"],
5
+ config: {
6
+ id: "builder-team-editor",
7
+ disableExternalControls: true,
8
+ documentToolbarEnabled: true,
9
+ showSwitchboardLink: true,
10
+ },
11
+ };
@@ -0,0 +1,3 @@
1
+ import type { BuilderTeamAction, BuilderTeamDocument } from "../../document-models/builder-team/index.js";
2
+ export declare function useBuilderTeamDocument(documentId: string | null | undefined): never[] | [BuilderTeamDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<BuilderTeamAction>];
3
+ export declare function useSelectedBuilderTeamDocument(): never[] | [BuilderTeamDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<BuilderTeamAction>];
@@ -0,0 +1,8 @@
1
+ import { useDocumentOfType, useSelectedDocumentId, } from "@powerhousedao/reactor-browser";
2
+ export function useBuilderTeamDocument(documentId) {
3
+ return useDocumentOfType(documentId, "powerhouse/builder-team");
4
+ }
5
+ export function useSelectedBuilderTeamDocument() {
6
+ const selectedDocumentId = useSelectedDocumentId();
7
+ return useBuilderTeamDocument(selectedDocumentId);
8
+ }
@@ -1,2 +1,2 @@
1
1
  export {};
2
- export { module as BuilderAccountEditor } from "./builder-account-editor/index.js";
2
+ export { module as BuilderTeamEditor } from "./builder-team-editor/index.js";
@@ -1 +1 @@
1
- export { module as BuilderAccountEditor } from "./builder-account-editor/index.js";
1
+ export { module as BuilderTeamEditor } from "./builder-team-editor/index.js";
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { Manifest } from "document-model";
2
2
  export declare const manifest: Manifest;
3
- export declare const documentModels: import("document-model").DocumentModelModule<import("./document-models/builder-account/gen").BuilderAccountPHState>[];
3
+ export declare const documentModels: import("document-model").DocumentModelModule<import("./document-models/builder-team/gen").BuilderTeamPHState>[];
4
4
  export declare const editors: import("document-model").EditorModule[];
@@ -1,7 +1,7 @@
1
1
  {
2
- "name": "Vetra Builder Package",
2
+ "name": "powerhouse/vetra-builder-package",
3
3
  "description": "",
4
- "category": "Engineering",
4
+ "category": "People & Culture",
5
5
  "publisher": {
6
6
  "name": "Powerhouse Inc.",
7
7
  "url": "https://www.powerhouse.inc"
@@ -18,6 +18,14 @@
18
18
  {
19
19
  "id": "powerhouse/renown-profile",
20
20
  "name": "RenownProfile"
21
+ },
22
+ {
23
+ "id": "powerhouse/builder-team",
24
+ "name": "BuilderTeam"
25
+ },
26
+ {
27
+ "id": "powerhouse/vetra/builder-team",
28
+ "name": "BuilderTeam"
21
29
  }
22
30
  ],
23
31
  "editors": [
@@ -27,18 +35,25 @@
27
35
  "documentTypes": [
28
36
  "powerhouse/renown-profile"
29
37
  ]
38
+ },
39
+ {
40
+ "id": "builder-team-editor",
41
+ "name": "Builder Team Editor",
42
+ "documentTypes": [
43
+ "powerhouse/builder-team"
44
+ ]
30
45
  }
31
46
  ],
32
47
  "apps": [],
33
48
  "subgraphs": [
34
49
  {
35
- "id": "vetra",
36
- "name": "vetra",
50
+ "id": "vetra-builder-read-model",
51
+ "name": "vetra-builder-read-model",
37
52
  "documentTypes": []
38
53
  },
39
54
  {
40
- "id": "renown-read-model",
41
- "name": "RenownReadModel",
55
+ "id": "vetra-builders",
56
+ "name": "VetraBuilders",
42
57
  "documentTypes": []
43
58
  }
44
59
  ],
@@ -1,7 +1,3 @@
1
- /**
2
- * This file aggregates all processor factories
3
- * Auto-generated by codegen - DO NOT EDIT MANUALLY
4
- */
5
1
  import { type IProcessorHostModule, type ProcessorRecord } from "document-drive/processors/types";
6
2
  import { type PHDocumentHeader } from "document-model";
7
3
  export declare const processorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
@@ -1,13 +1,13 @@
1
- /**
1
+ /*
2
2
  * This file aggregates all processor factories
3
3
  * Auto-generated by codegen - DO NOT EDIT MANUALLY
4
4
  */
5
- import { vetraBuilderReadModelProcessorFactory } from "./vetra-builder-read-model/factory.js";
5
+ import { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
6
6
  export const processorFactory = (module) => {
7
7
  // Initialize all processor factories once with the module
8
8
  const factories = [];
9
9
  // Add other processors here as they are generated
10
- factories.push(vetraBuilderReadModelProcessorFactory(module));
10
+ factories.push(vetraBuilderTeamRelationalDbProcessorFactory(module));
11
11
  // Return the inner function that will be called for each drive
12
12
  return async (driveHeader) => {
13
13
  const processors = [];
@@ -1,3 +1,3 @@
1
- export { VetraBuilderReadModelProcessor } from "./vetra-builder-read-model/index.js";
2
- export { vetraBuilderReadModelProcessorFactory } from "./vetra-builder-read-model/factory.js";
3
1
  export { processorFactory } from "./factory.js";
2
+ export * as VetraBuilderRelationalDbProcessorProcessor from "./vetra-builder-relational-db-processor/index.js";
3
+ export { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
@@ -1,3 +1,3 @@
1
- export { VetraBuilderReadModelProcessor } from "./vetra-builder-read-model/index.js";
2
- export { vetraBuilderReadModelProcessorFactory } from "./vetra-builder-read-model/factory.js";
3
1
  export { processorFactory } from "./factory.js";
2
+ export * as VetraBuilderRelationalDbProcessorProcessor from "./vetra-builder-relational-db-processor/index.js";
3
+ export { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
@@ -0,0 +1,3 @@
1
+ import { type ProcessorRecord, type IProcessorHostModule } from "document-drive/processors/types";
2
+ import { type PHDocumentHeader } from "document-model";
3
+ export declare const vetraBuilderRelationalDbProcessorProcessorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
@@ -0,0 +1,22 @@
1
+ import { VetraBuilderRelationalDbProcessorProcessor } from "./index.js";
2
+ export const vetraBuilderRelationalDbProcessorProcessorFactory = (module) => async (driveHeader) => {
3
+ // Create a namespace for the processor and the provided drive id
4
+ const namespace = VetraBuilderRelationalDbProcessorProcessor.getNamespace(driveHeader.id);
5
+ // Create a namespaced db for the processor
6
+ const store = await module.relationalDb.createNamespace(namespace);
7
+ // Create a filter for the processor
8
+ const filter = {
9
+ branch: ["main"],
10
+ documentId: ["*"],
11
+ documentType: ["powerhouse/builder-team"],
12
+ scope: ["global"],
13
+ };
14
+ // Create the processor
15
+ const processor = new VetraBuilderRelationalDbProcessorProcessor(namespace, filter, store);
16
+ return [
17
+ {
18
+ processor,
19
+ filter,
20
+ },
21
+ ];
22
+ };
@@ -0,0 +1,9 @@
1
+ import { RelationalDbProcessor } from "document-drive/processors/relational";
2
+ import { type InternalTransmitterUpdate } from "document-drive/server/listener/transmitter/internal";
3
+ import { type DB } from "./schema.js";
4
+ export declare class VetraBuilderRelationalDbProcessorProcessor extends RelationalDbProcessor<DB> {
5
+ static getNamespace(driveId: string): string;
6
+ initAndUpgrade(): Promise<void>;
7
+ onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
8
+ onDisconnect(): Promise<void>;
9
+ }