@vira-ui/cli 0.3.3-alpha → 0.4.1-alpha

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 (42) hide show
  1. package/dist/go/appYaml.js +34 -0
  2. package/dist/go/backendEnvExample.js +21 -0
  3. package/dist/go/backendReadme.js +18 -0
  4. package/dist/go/channelHelpers.js +29 -0
  5. package/dist/go/configGo.js +262 -0
  6. package/dist/go/dbGo.js +47 -0
  7. package/dist/go/dbYaml.js +11 -0
  8. package/dist/go/dockerCompose.js +38 -0
  9. package/dist/go/dockerComposeProd.js +54 -0
  10. package/dist/go/dockerfile.js +19 -0
  11. package/dist/go/eventHandlerTemplate.js +34 -0
  12. package/dist/go/eventsAPI.js +414 -0
  13. package/dist/go/goMod.js +20 -0
  14. package/dist/go/kafkaGo.js +71 -0
  15. package/dist/go/kafkaYaml.js +10 -0
  16. package/dist/go/kanbanHandlers.js +221 -0
  17. package/dist/go/mainGo.js +527 -0
  18. package/dist/go/readme.js +14 -0
  19. package/dist/go/redisGo.js +35 -0
  20. package/dist/go/redisYaml.js +8 -0
  21. package/dist/go/registryGo.js +47 -0
  22. package/dist/go/sqlcYaml.js +17 -0
  23. package/dist/go/stateStore.js +119 -0
  24. package/dist/go/typesGo.js +15 -0
  25. package/dist/go/useViraState.js +160 -0
  26. package/dist/go/useViraStream.js +167 -0
  27. package/dist/index.js +644 -192
  28. package/dist/react/appTsx.js +52 -0
  29. package/dist/react/envExample.js +7 -0
  30. package/dist/react/envLocal.js +5 -0
  31. package/dist/react/indexCss.js +22 -0
  32. package/dist/react/indexHtml.js +16 -0
  33. package/dist/react/kanbanAppTsx.js +34 -0
  34. package/dist/react/kanbanBoard.js +63 -0
  35. package/dist/react/kanbanCard.js +65 -0
  36. package/dist/react/kanbanColumn.js +67 -0
  37. package/dist/react/kanbanModels.js +37 -0
  38. package/dist/react/kanbanService.js +119 -0
  39. package/dist/react/mainTsx.js +16 -0
  40. package/dist/react/tsconfig.js +25 -0
  41. package/dist/react/viteConfig.js +31 -0
  42. package/package.json +3 -4
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kanbanHandlers = void 0;
4
+ // Internal handlers for Kanban board (generated by CLI make event)
5
+ exports.kanbanHandlers = `package main
6
+
7
+ import (
8
+ "context"
9
+ "encoding/json"
10
+ "time"
11
+
12
+ "github.com/google/uuid"
13
+ "github.com/gorilla/websocket"
14
+ "vira-engine-backend/internal/events"
15
+ )
16
+
17
+ // handleKanbanCardCreate handles kanban.card.create events.
18
+ func handleKanbanCardCreate(ctx context.Context, hub events.EventEmitter, conn *websocket.Conn, msg events.WSMessage) {
19
+ var payload struct {
20
+ BoardID string \`json:"boardId"\`
21
+ ColumnID string \`json:"columnId"\`
22
+ Title string \`json:"title"\`
23
+ Description string \`json:"description,omitempty"\`
24
+ At int64 \`json:"at"\`
25
+ }
26
+ if err := json.Unmarshal(msg.Data, &payload); err != nil {
27
+ return
28
+ }
29
+
30
+ channel := events.ChannelKanban(payload.BoardID)
31
+ snap, version, ok := hub.Snapshot(channel)
32
+ if !ok {
33
+ // Initialize board
34
+ initialBoard := map[string]any{
35
+ "id": payload.BoardID,
36
+ "title": "Kanban Board",
37
+ "columns": []any{},
38
+ "cards": map[string]any{},
39
+ "createdAt": time.Now().UnixMilli(),
40
+ "updatedAt": time.Now().UnixMilli(),
41
+ }
42
+ hub.Update(channel, initialBoard)
43
+ snap, _, _ = hub.Snapshot(channel)
44
+ }
45
+
46
+ var board map[string]any
47
+ if err := json.Unmarshal(snap, &board); err != nil {
48
+ return
49
+ }
50
+
51
+ // Create new card
52
+ cardID := uuid.NewString()
53
+ newCard := map[string]any{
54
+ "id": cardID,
55
+ "title": payload.Title,
56
+ "description": payload.Description,
57
+ "columnId": payload.ColumnID,
58
+ "order": 0,
59
+ "createdAt": payload.At,
60
+ "updatedAt": payload.At,
61
+ }
62
+
63
+ cards, _ := board["cards"].(map[string]any)
64
+ if cards == nil {
65
+ cards = make(map[string]any)
66
+ }
67
+ cards[cardID] = newCard
68
+ board["cards"] = cards
69
+
70
+ // Add to column
71
+ columns, _ := board["columns"].([]any)
72
+ for i, colRaw := range columns {
73
+ col, _ := colRaw.(map[string]any)
74
+ if col["id"] == payload.ColumnID {
75
+ cardIds, _ := col["cardIds"].([]any)
76
+ if cardIds == nil {
77
+ cardIds = []any{}
78
+ }
79
+ col["cardIds"] = append(cardIds, cardID)
80
+ columns[i] = col
81
+ break
82
+ }
83
+ }
84
+ board["columns"] = columns
85
+ board["updatedAt"] = time.Now().UnixMilli()
86
+
87
+ hub.Update(channel, board)
88
+ }
89
+
90
+ // handleKanbanCardMove handles kanban.card.move events.
91
+ func handleKanbanCardMove(ctx context.Context, hub events.EventEmitter, conn *websocket.Conn, msg events.WSMessage) {
92
+ var payload struct {
93
+ BoardID string \`json:"boardId"\`
94
+ CardID string \`json:"cardId"\`
95
+ FromColumnID string \`json:"fromColumnId"\`
96
+ ToColumnID string \`json:"toColumnId"\`
97
+ NewOrder int \`json:"newOrder"\`
98
+ At int64 \`json:"at"\`
99
+ }
100
+ if err := json.Unmarshal(msg.Data, &payload); err != nil {
101
+ return
102
+ }
103
+
104
+ channel := events.ChannelKanban(payload.BoardID)
105
+ snap, _, ok := hub.Snapshot(channel)
106
+ if !ok {
107
+ return
108
+ }
109
+
110
+ var board map[string]any
111
+ if err := json.Unmarshal(snap, &board); err != nil {
112
+ return
113
+ }
114
+
115
+ // Update card columnId
116
+ cards, _ := board["cards"].(map[string]any)
117
+ if card, ok := cards[payload.CardID].(map[string]any); ok {
118
+ card["columnId"] = payload.ToColumnID
119
+ card["order"] = payload.NewOrder
120
+ card["updatedAt"] = payload.At
121
+ cards[payload.CardID] = card
122
+ }
123
+
124
+ // Remove from old column
125
+ columns, _ := board["columns"].([]any)
126
+ for i, colRaw := range columns {
127
+ col, _ := colRaw.(map[string]any)
128
+ if col["id"] == payload.FromColumnID {
129
+ cardIds, _ := col["cardIds"].([]any)
130
+ newCardIds := []any{}
131
+ for _, id := range cardIds {
132
+ if idStr, _ := id.(string); idStr != payload.CardID {
133
+ newCardIds = append(newCardIds, id)
134
+ }
135
+ }
136
+ col["cardIds"] = newCardIds
137
+ columns[i] = col
138
+ }
139
+ // Add to new column
140
+ if col["id"] == payload.ToColumnID {
141
+ cardIds, _ := col["cardIds"].([]any)
142
+ if cardIds == nil {
143
+ cardIds = []any{}
144
+ }
145
+ // Insert at position
146
+ newCardIds := make([]any, len(cardIds)+1)
147
+ copy(newCardIds, cardIds[:payload.NewOrder])
148
+ newCardIds[payload.NewOrder] = payload.CardID
149
+ copy(newCardIds[payload.NewOrder+1:], cardIds[payload.NewOrder:])
150
+ col["cardIds"] = newCardIds
151
+ columns[i] = col
152
+ }
153
+ }
154
+ board["columns"] = columns
155
+ board["updatedAt"] = time.Now().UnixMilli()
156
+
157
+ hub.Update(channel, board)
158
+ }
159
+
160
+ // handleKanbanCardDelete handles kanban.card.delete events.
161
+ func handleKanbanCardDelete(ctx context.Context, hub events.EventEmitter, conn *websocket.Conn, msg events.WSMessage) {
162
+ var payload struct {
163
+ BoardID string \`json:"boardId"\`
164
+ CardID string \`json:"cardId"\`
165
+ At int64 \`json:"at"\`
166
+ }
167
+ if err := json.Unmarshal(msg.Data, &payload); err != nil {
168
+ return
169
+ }
170
+
171
+ channel := events.ChannelKanban(payload.BoardID)
172
+ snap, _, ok := hub.Snapshot(channel)
173
+ if !ok {
174
+ return
175
+ }
176
+
177
+ var board map[string]any
178
+ if err := json.Unmarshal(snap, &board); err != nil {
179
+ return
180
+ }
181
+
182
+ // Remove card
183
+ cards, _ := board["cards"].(map[string]any)
184
+ var cardColumnID string
185
+ if card, ok := cards[payload.CardID].(map[string]any); ok {
186
+ cardColumnID, _ = card["columnId"].(string)
187
+ delete(cards, payload.CardID)
188
+ }
189
+ board["cards"] = cards
190
+
191
+ // Remove from column
192
+ if cardColumnID != "" {
193
+ columns, _ := board["columns"].([]any)
194
+ for i, colRaw := range columns {
195
+ col, _ := colRaw.(map[string]any)
196
+ if col["id"] == cardColumnID {
197
+ cardIds, _ := col["cardIds"].([]any)
198
+ newCardIds := []any{}
199
+ for _, id := range cardIds {
200
+ if idStr, _ := id.(string); idStr != payload.CardID {
201
+ newCardIds = append(newCardIds, id)
202
+ }
203
+ }
204
+ col["cardIds"] = newCardIds
205
+ columns[i] = col
206
+ break
207
+ }
208
+ }
209
+ board["columns"] = columns
210
+ }
211
+ board["updatedAt"] = time.Now().UnixMilli()
212
+
213
+ hub.Update(channel, board)
214
+ }
215
+
216
+ func init() {
217
+ events.Register("kanban.card.create", handleKanbanCardCreate)
218
+ events.Register("kanban.card.move", handleKanbanCardMove)
219
+ events.Register("kanban.card.delete", handleKanbanCardDelete)
220
+ }
221
+ `;