@gravity-platform/miro-bridge 0.1.1
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.
- package/dist/MiroBridge/node/executor.d.ts +19 -0
- package/dist/MiroBridge/node/executor.d.ts.map +1 -0
- package/dist/MiroBridge/node/executor.js +143 -0
- package/dist/MiroBridge/node/executor.js.map +1 -0
- package/dist/MiroBridge/node/index.d.ts +10 -0
- package/dist/MiroBridge/node/index.d.ts.map +1 -0
- package/dist/MiroBridge/node/index.js +87 -0
- package/dist/MiroBridge/node/index.js.map +1 -0
- package/dist/MiroBridge/service/boardStore.d.ts +15 -0
- package/dist/MiroBridge/service/boardStore.d.ts.map +1 -0
- package/dist/MiroBridge/service/boardStore.js +151 -0
- package/dist/MiroBridge/service/boardStore.js.map +1 -0
- package/dist/MiroBridge/service/diagramLayout.d.ts +13 -0
- package/dist/MiroBridge/service/diagramLayout.d.ts.map +1 -0
- package/dist/MiroBridge/service/diagramLayout.js +241 -0
- package/dist/MiroBridge/service/diagramLayout.js.map +1 -0
- package/dist/MiroBridge/service/mcpHandlers.d.ts +18 -0
- package/dist/MiroBridge/service/mcpHandlers.d.ts.map +1 -0
- package/dist/MiroBridge/service/mcpHandlers.js +307 -0
- package/dist/MiroBridge/service/mcpHandlers.js.map +1 -0
- package/dist/MiroBridge/service/mcpSchema.d.ts +490 -0
- package/dist/MiroBridge/service/mcpSchema.d.ts.map +1 -0
- package/dist/MiroBridge/service/mcpSchema.js +262 -0
- package/dist/MiroBridge/service/mcpSchema.js.map +1 -0
- package/dist/MiroBridge/service/miroApi.d.ts +32 -0
- package/dist/MiroBridge/service/miroApi.d.ts.map +1 -0
- package/dist/MiroBridge/service/miroApi.js +262 -0
- package/dist/MiroBridge/service/miroApi.js.map +1 -0
- package/dist/MiroBridge/service/normalise.d.ts +2 -0
- package/dist/MiroBridge/service/normalise.d.ts.map +1 -0
- package/dist/MiroBridge/service/normalise.js +52 -0
- package/dist/MiroBridge/service/normalise.js.map +1 -0
- package/dist/MiroBridge/util/types.d.ts +78 -0
- package/dist/MiroBridge/util/types.d.ts.map +1 -0
- package/dist/MiroBridge/util/types.js +3 -0
- package/dist/MiroBridge/util/types.js.map +1 -0
- package/dist/credentials/index.d.ts +23 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +28 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiroBridgeMCPSchema = void 0;
|
|
4
|
+
exports.MiroBridgeMCPSchema = {
|
|
5
|
+
name: "MiroBridge",
|
|
6
|
+
version: "2.0.0",
|
|
7
|
+
description: "Read and write a live Miro board.\n\nWORKFLOW — follow this order strictly:\n1. Call get_board_state first to see what exists\n2. Create frames one at a time, sequentially — never in parallel\n3. After each create_frame call, use the returned id as parentId for all items inside it\n4. Create items inside frames — pass parentId from step 3\n5. Call zoom_to at the end\n\nNEVER create a frame and its child items in parallel — the server needs the frame id before placing items.\n\nFRAME LAYOUT:\n- Default size: 1600×900. Pass width/height to override (e.g. for large diagrams).\n- Server auto-positions frames horizontally with 200px gaps — do NOT pass x or y.\n\nITEM LAYOUT (inside frames):\n- Stickies, cards, text, images — do NOT pass x or y — server auto-grids into 3 columns\n- Grid: col0=x110, col1=x330, col2=x550; pitch=220px\n- Always pass parentId so items land inside the frame\n\nDIAGRAMS:\n- Use create_diagram for any flowchart, decision tree, or process flow\n- Pass Mermaid DSL — layout, sizing, shapes, and colours are all handled automatically",
|
|
8
|
+
methods: {
|
|
9
|
+
// ---- Read ----
|
|
10
|
+
get_board_state: {
|
|
11
|
+
description: "Fetches the current board state via the Miro REST API. Returns all items with id, type, content, x, y, width, height, and parentId. Always call this first in a session and after the user makes manual edits. Use the id of existing frames as parentId when adding items to them.",
|
|
12
|
+
input: { type: "object", properties: {} },
|
|
13
|
+
output: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
ok: { type: "boolean" },
|
|
17
|
+
items: { type: "array" },
|
|
18
|
+
count: { type: "integer" },
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
get_selection: {
|
|
23
|
+
description: "Returns the items currently selected by the user on the board.",
|
|
24
|
+
input: { type: "object", properties: {} },
|
|
25
|
+
output: {
|
|
26
|
+
type: "object",
|
|
27
|
+
properties: {
|
|
28
|
+
ok: { type: "boolean" },
|
|
29
|
+
items: { type: "array" },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
// ---- Writes ----
|
|
34
|
+
create_sticky: {
|
|
35
|
+
description: "Creates a sticky note inside a frame. The server auto-positions in a 4-column grid — do NOT pass x or y. Pass parentId to target a specific frame; if omitted the server assigns the most recent frame automatically.",
|
|
36
|
+
input: {
|
|
37
|
+
type: "object",
|
|
38
|
+
properties: {
|
|
39
|
+
text: { type: "string" },
|
|
40
|
+
color: {
|
|
41
|
+
type: "string",
|
|
42
|
+
enum: ["gray", "light_yellow", "yellow", "orange", "light_green", "green", "dark_green", "cyan", "light_pink", "pink", "violet", "red", "light_blue", "blue", "dark_blue", "black"],
|
|
43
|
+
},
|
|
44
|
+
parentId: { type: "string", description: "Frame id to place this item inside" },
|
|
45
|
+
},
|
|
46
|
+
required: ["text"],
|
|
47
|
+
},
|
|
48
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
49
|
+
},
|
|
50
|
+
create_text: {
|
|
51
|
+
description: "Creates a text item inside a frame. Server auto-positions — do NOT pass x or y. Pass parentId from create_frame.",
|
|
52
|
+
input: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
text: { type: "string" },
|
|
56
|
+
fontSize: { type: "number", description: "24 for body, 48 for headers" },
|
|
57
|
+
parentId: { type: "string", description: "Frame id — required to place inside a frame" },
|
|
58
|
+
},
|
|
59
|
+
required: ["text"],
|
|
60
|
+
},
|
|
61
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
62
|
+
},
|
|
63
|
+
create_frame: {
|
|
64
|
+
description: "Creates a named frame. Server auto-positions frames horizontally — do NOT pass x or y. Optionally pass width/height to override the 1600×900 default (useful for large diagrams). Returns id — use it as parentId for all items inside this frame.",
|
|
65
|
+
input: {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
title: { type: "string" },
|
|
69
|
+
width: { type: "number", description: "Frame width. Default 1600." },
|
|
70
|
+
height: { type: "number", description: "Frame height. Default 900." },
|
|
71
|
+
},
|
|
72
|
+
required: ["title"],
|
|
73
|
+
},
|
|
74
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
75
|
+
},
|
|
76
|
+
create_card: {
|
|
77
|
+
description: "Creates a task card inside a frame. Server auto-positions — do NOT pass x or y. Pass parentId from create_frame.",
|
|
78
|
+
input: {
|
|
79
|
+
type: "object",
|
|
80
|
+
properties: {
|
|
81
|
+
title: { type: "string" },
|
|
82
|
+
description: { type: "string" },
|
|
83
|
+
dueDate: { type: "string", description: "ISO date string e.g. 2026-05-10" },
|
|
84
|
+
parentId: { type: "string", description: "Frame id — required to place inside a frame" },
|
|
85
|
+
},
|
|
86
|
+
required: ["title"],
|
|
87
|
+
},
|
|
88
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
89
|
+
},
|
|
90
|
+
create_app_card: {
|
|
91
|
+
description: "Creates a structured app card inside a frame. Use instead of stickies for structured data (research findings, task breakdowns, scored items). Server auto-positions — do NOT pass x or y. Pass parentId from create_frame.",
|
|
92
|
+
input: {
|
|
93
|
+
type: "object",
|
|
94
|
+
properties: {
|
|
95
|
+
title: { type: "string" },
|
|
96
|
+
description: { type: "string" },
|
|
97
|
+
status: {
|
|
98
|
+
type: "string",
|
|
99
|
+
enum: ["connected", "disconnected", "disabled"],
|
|
100
|
+
description: "Default connected",
|
|
101
|
+
},
|
|
102
|
+
fields: {
|
|
103
|
+
type: "array",
|
|
104
|
+
description: "Up to 20 custom fields",
|
|
105
|
+
items: {
|
|
106
|
+
type: "object",
|
|
107
|
+
properties: {
|
|
108
|
+
value: { type: "string" },
|
|
109
|
+
fillColor: { type: "string", description: "Hex colour for the field background" },
|
|
110
|
+
textColor: { type: "string" },
|
|
111
|
+
iconUrl: { type: "string" },
|
|
112
|
+
iconShape: { type: "string", enum: ["round", "square"] },
|
|
113
|
+
tooltip: { type: "string" },
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
parentId: { type: "string", description: "Frame id — required to place inside a frame" },
|
|
118
|
+
},
|
|
119
|
+
required: ["title"],
|
|
120
|
+
},
|
|
121
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
122
|
+
},
|
|
123
|
+
create_image: {
|
|
124
|
+
description: "Places an image inside a frame from a URL. Server auto-positions — do NOT pass x or y. Pass parentId from create_frame.",
|
|
125
|
+
input: {
|
|
126
|
+
type: "object",
|
|
127
|
+
properties: {
|
|
128
|
+
url: { type: "string", description: "Public image URL" },
|
|
129
|
+
width: { type: "number", description: "Default 300" },
|
|
130
|
+
parentId: { type: "string", description: "Frame id — required to place inside a frame" },
|
|
131
|
+
},
|
|
132
|
+
required: ["url"],
|
|
133
|
+
},
|
|
134
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
135
|
+
},
|
|
136
|
+
update_item: {
|
|
137
|
+
description: "Updates an existing item's content, position, or style by id. Obtain ids from get_board_state. Returns NOT_FOUND if the id is not in the cached state — call get_board_state to refresh. For app_cards, pass fields to update individual fields — they are merged with existing fields, not replaced.",
|
|
138
|
+
input: {
|
|
139
|
+
type: "object",
|
|
140
|
+
properties: {
|
|
141
|
+
id: { type: "string" },
|
|
142
|
+
content: { type: "string" },
|
|
143
|
+
x: { type: "number" },
|
|
144
|
+
y: { type: "number" },
|
|
145
|
+
width: { type: "number" },
|
|
146
|
+
height: { type: "number" },
|
|
147
|
+
style: { type: "object" },
|
|
148
|
+
fields: {
|
|
149
|
+
type: "array",
|
|
150
|
+
description: "App card fields to merge (positional — index 0 updates first field, etc.)",
|
|
151
|
+
items: {
|
|
152
|
+
type: "object",
|
|
153
|
+
properties: {
|
|
154
|
+
value: { type: "string" },
|
|
155
|
+
fillColor: { type: "string" },
|
|
156
|
+
textColor: { type: "string" },
|
|
157
|
+
tooltip: { type: "string" },
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
required: ["id"],
|
|
163
|
+
},
|
|
164
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
165
|
+
},
|
|
166
|
+
delete_item: {
|
|
167
|
+
description: "Deletes an item by id. Returns NOT_FOUND if the id is not in the cached state.",
|
|
168
|
+
input: {
|
|
169
|
+
type: "object",
|
|
170
|
+
properties: { id: { type: "string" } },
|
|
171
|
+
required: ["id"],
|
|
172
|
+
},
|
|
173
|
+
output: { type: "object", properties: { ok: { type: "boolean" } } },
|
|
174
|
+
},
|
|
175
|
+
create_connector: {
|
|
176
|
+
description: "Draws a connector (arrow) between two item ids.",
|
|
177
|
+
input: {
|
|
178
|
+
type: "object",
|
|
179
|
+
properties: {
|
|
180
|
+
startItemId: { type: "string" },
|
|
181
|
+
endItemId: { type: "string" },
|
|
182
|
+
label: { type: "string" },
|
|
183
|
+
shape: {
|
|
184
|
+
type: "string",
|
|
185
|
+
enum: ["straight", "elbowed", "curved"],
|
|
186
|
+
description: "Connector line style. Default elbowed.",
|
|
187
|
+
},
|
|
188
|
+
startCap: {
|
|
189
|
+
type: "string",
|
|
190
|
+
enum: ["none", "arrow", "filled_arrow", "circle", "filled_circle"],
|
|
191
|
+
description: "Start cap style. Default none.",
|
|
192
|
+
},
|
|
193
|
+
endCap: {
|
|
194
|
+
type: "string",
|
|
195
|
+
enum: ["none", "arrow", "filled_arrow", "circle", "filled_circle"],
|
|
196
|
+
description: "End cap style. Default filled_arrow.",
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
required: ["startItemId", "endItemId"],
|
|
200
|
+
},
|
|
201
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
202
|
+
},
|
|
203
|
+
add_tag: {
|
|
204
|
+
description: "Creates a colour-coded tag and attaches it to an item (typically a sticky note). Tags are a non-destructive categorisation layer — they don't modify item content. Use for status, priority, or theme labels.",
|
|
205
|
+
input: {
|
|
206
|
+
type: "object",
|
|
207
|
+
properties: {
|
|
208
|
+
title: { type: "string", description: "Tag label text" },
|
|
209
|
+
itemId: { type: "string", description: "ID of the item to attach the tag to" },
|
|
210
|
+
color: {
|
|
211
|
+
type: "string",
|
|
212
|
+
enum: ["red", "light_green", "cyan", "yellow", "magenta", "green", "blue", "gray", "violet", "orange", "pink"],
|
|
213
|
+
description: "Default yellow",
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
required: ["title", "itemId"],
|
|
217
|
+
},
|
|
218
|
+
output: { type: "object", properties: { ok: { type: "boolean" }, id: { type: "string" } } },
|
|
219
|
+
},
|
|
220
|
+
zoom_to: {
|
|
221
|
+
description: "Zooms the viewport to fit the specified items.",
|
|
222
|
+
input: {
|
|
223
|
+
type: "object",
|
|
224
|
+
properties: {
|
|
225
|
+
itemIds: { type: "array", items: { type: "string" } },
|
|
226
|
+
},
|
|
227
|
+
required: ["itemIds"],
|
|
228
|
+
},
|
|
229
|
+
output: { type: "object", properties: { ok: { type: "boolean" } } },
|
|
230
|
+
},
|
|
231
|
+
create_diagram: {
|
|
232
|
+
description: "Creates a flowchart diagram from a Mermaid DSL string. Automatically handles all node layout, sizing, shape types, colours, and connector routing. Use for any process flow, decision tree, or system diagram. Creates its own auto-sized frame unless parentId is supplied.\n\nSupported syntax:\n flowchart TD (top-down) or flowchart LR (left-right)\n A[label] rectangle / process\n B{label} diamond / decision\n C((label)) circle / terminator\n D[(label)] database cylinder\n E[/label/] parallelogram\n A --> B edge\n A -->|label| B edge with label\n\nMax 50 nodes. Recommended under 20 nodes for best performance.",
|
|
233
|
+
input: {
|
|
234
|
+
type: "object",
|
|
235
|
+
properties: {
|
|
236
|
+
dsl: {
|
|
237
|
+
type: "string",
|
|
238
|
+
description: "Mermaid flowchart string e.g. \"flowchart TD\\n A[Start] --> B{Valid?}\\n B -->|Yes| C[Done]\\n B -->|No| A\"",
|
|
239
|
+
},
|
|
240
|
+
parentId: {
|
|
241
|
+
type: "string",
|
|
242
|
+
description: "Optional frame id to place the diagram inside. If omitted, a new auto-sized frame is created.",
|
|
243
|
+
},
|
|
244
|
+
title: {
|
|
245
|
+
type: "string",
|
|
246
|
+
description: "Frame title when auto-creating a frame. Default 'Diagram'.",
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
required: ["dsl"],
|
|
250
|
+
},
|
|
251
|
+
output: {
|
|
252
|
+
type: "object",
|
|
253
|
+
properties: {
|
|
254
|
+
ok: { type: "boolean" },
|
|
255
|
+
itemIds: { type: "array", items: { type: "string" } },
|
|
256
|
+
parentId: { type: "string" },
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=mcpSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpSchema.js","sourceRoot":"","sources":["../../../src/MiroBridge/service/mcpSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BoardState } from "../util/types";
|
|
2
|
+
export declare function apiBoardState(accessToken: string, boardId: string): Promise<Omit<BoardState, "version" | "updatedAt">>;
|
|
3
|
+
export declare function apiCreateSticky(accessToken: string, boardId: string, params: any): Promise<{
|
|
4
|
+
id: string;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function apiCreateText(accessToken: string, boardId: string, params: any): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function apiCreateFrame(accessToken: string, boardId: string, params: any): Promise<{
|
|
10
|
+
id: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function apiCreateShape(accessToken: string, boardId: string, params: any): Promise<{
|
|
13
|
+
id: string;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function apiCreateCard(accessToken: string, boardId: string, params: any): Promise<{
|
|
16
|
+
id: string;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function apiCreateAppCard(accessToken: string, boardId: string, params: any): Promise<{
|
|
19
|
+
id: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function apiCreateImage(accessToken: string, boardId: string, params: any): Promise<{
|
|
22
|
+
id: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function apiCreateConnector(accessToken: string, boardId: string, params: any): Promise<{
|
|
25
|
+
id: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function apiCreateTag(accessToken: string, boardId: string, params: any): Promise<{
|
|
28
|
+
id: string;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function apiUpdateItem(accessToken: string, boardId: string, params: any): Promise<void>;
|
|
31
|
+
export declare function apiDeleteItem(accessToken: string, boardId: string, itemId: string, itemType?: string): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=miroApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miroApi.d.ts","sourceRoot":"","sources":["../../../src/MiroBridge/service/miroApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuC,UAAU,EAAgB,MAAM,eAAe,CAAC;AAyBnG,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC,CA4B5H;AAiBD,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAUhH;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9G;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ/G;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAU/G;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAY9G;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAcjH;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAS/G;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAanH;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAM7G;AAwBD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCpG;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1H"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.apiBoardState = apiBoardState;
|
|
4
|
+
exports.apiCreateSticky = apiCreateSticky;
|
|
5
|
+
exports.apiCreateText = apiCreateText;
|
|
6
|
+
exports.apiCreateFrame = apiCreateFrame;
|
|
7
|
+
exports.apiCreateShape = apiCreateShape;
|
|
8
|
+
exports.apiCreateCard = apiCreateCard;
|
|
9
|
+
exports.apiCreateAppCard = apiCreateAppCard;
|
|
10
|
+
exports.apiCreateImage = apiCreateImage;
|
|
11
|
+
exports.apiCreateConnector = apiCreateConnector;
|
|
12
|
+
exports.apiCreateTag = apiCreateTag;
|
|
13
|
+
exports.apiUpdateItem = apiUpdateItem;
|
|
14
|
+
exports.apiDeleteItem = apiDeleteItem;
|
|
15
|
+
const BASE = "https://api.miro.com/v2";
|
|
16
|
+
async function req(method, path, accessToken, body) {
|
|
17
|
+
console.log(`[MiroAPI] ${method} ${path} token=${accessToken?.slice(0, 20)}...${accessToken?.slice(-10)} len=${accessToken?.length}`);
|
|
18
|
+
const res = await fetch(`${BASE}${path}`, {
|
|
19
|
+
method,
|
|
20
|
+
headers: {
|
|
21
|
+
Authorization: `Bearer ${accessToken}`,
|
|
22
|
+
"Content-Type": "application/json",
|
|
23
|
+
Accept: "application/json",
|
|
24
|
+
},
|
|
25
|
+
...(body ? { body: JSON.stringify(body) } : {}),
|
|
26
|
+
});
|
|
27
|
+
if (!res.ok) {
|
|
28
|
+
const text = await res.text().catch(() => res.statusText);
|
|
29
|
+
throw new Error(`Miro API ${method} ${path} → ${res.status}: ${text}`);
|
|
30
|
+
}
|
|
31
|
+
if (res.status === 204)
|
|
32
|
+
return null;
|
|
33
|
+
return res.json();
|
|
34
|
+
}
|
|
35
|
+
// ---- Board state ----
|
|
36
|
+
async function apiBoardState(accessToken, boardId) {
|
|
37
|
+
const items = [];
|
|
38
|
+
const connectors = [];
|
|
39
|
+
const tags = [];
|
|
40
|
+
// Paginate all items
|
|
41
|
+
let cursor;
|
|
42
|
+
do {
|
|
43
|
+
const url = `/boards/${boardId}/items?limit=50${cursor ? `&cursor=${cursor}` : ""}`;
|
|
44
|
+
const page = await req("GET", url, accessToken);
|
|
45
|
+
for (const i of page.data ?? []) {
|
|
46
|
+
if (i.type === "connector") {
|
|
47
|
+
connectors.push({
|
|
48
|
+
id: i.id,
|
|
49
|
+
startItemId: i.startItem?.id,
|
|
50
|
+
endItemId: i.endItem?.id,
|
|
51
|
+
caption: i.captions?.[0]?.content,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else if (i.type === "tag") {
|
|
55
|
+
tags.push({ id: i.id, title: i.title, color: i.fillColor, itemIds: [] });
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
items.push(normalise(i));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
cursor = page.cursor;
|
|
62
|
+
} while (cursor);
|
|
63
|
+
return { items, connectors, tags };
|
|
64
|
+
}
|
|
65
|
+
function normalise(i) {
|
|
66
|
+
return {
|
|
67
|
+
id: i.id,
|
|
68
|
+
type: i.type,
|
|
69
|
+
content: i.data?.content ?? i.data?.title ?? "",
|
|
70
|
+
x: i.position?.x,
|
|
71
|
+
y: i.position?.y,
|
|
72
|
+
width: i.geometry?.width,
|
|
73
|
+
height: i.geometry?.height,
|
|
74
|
+
...(i.parent?.id ? { parentId: i.parent.id } : {}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// ---- Creates ----
|
|
78
|
+
async function apiCreateSticky(accessToken, boardId, params) {
|
|
79
|
+
const body = {
|
|
80
|
+
data: { content: params.content, shape: "square" },
|
|
81
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
82
|
+
geometry: { width: params.width ?? 300 },
|
|
83
|
+
style: { fillColor: stickyColor(params.style?.fillColor ?? "yellow") },
|
|
84
|
+
};
|
|
85
|
+
if (params.parentId)
|
|
86
|
+
body.parent = { id: params.parentId };
|
|
87
|
+
const res = await req("POST", `/boards/${boardId}/sticky_notes`, accessToken, body);
|
|
88
|
+
return { id: res.id };
|
|
89
|
+
}
|
|
90
|
+
async function apiCreateText(accessToken, boardId, params) {
|
|
91
|
+
const body = {
|
|
92
|
+
data: { content: params.content },
|
|
93
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
94
|
+
style: { fontSize: String(params.style?.fontSize ?? 14) },
|
|
95
|
+
};
|
|
96
|
+
if (params.parentId)
|
|
97
|
+
body.parent = { id: params.parentId };
|
|
98
|
+
const res = await req("POST", `/boards/${boardId}/texts`, accessToken, body);
|
|
99
|
+
return { id: res.id };
|
|
100
|
+
}
|
|
101
|
+
async function apiCreateFrame(accessToken, boardId, params) {
|
|
102
|
+
const body = {
|
|
103
|
+
data: { title: params.content, format: "custom", type: "freeform" },
|
|
104
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
105
|
+
geometry: { width: params.width ?? 1600, height: params.height ?? 900 },
|
|
106
|
+
};
|
|
107
|
+
const res = await req("POST", `/boards/${boardId}/frames`, accessToken, body);
|
|
108
|
+
return { id: res.id };
|
|
109
|
+
}
|
|
110
|
+
async function apiCreateShape(accessToken, boardId, params) {
|
|
111
|
+
const body = {
|
|
112
|
+
data: { content: params.content ?? "", shape: params.style?.shape ?? "rectangle" },
|
|
113
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
114
|
+
geometry: { width: params.width ?? 200, height: params.height ?? 100 },
|
|
115
|
+
style: { fillColor: params.style?.fillColor ?? "#ffffff" },
|
|
116
|
+
};
|
|
117
|
+
if (params.parentId)
|
|
118
|
+
body.parent = { id: params.parentId };
|
|
119
|
+
const res = await req("POST", `/boards/${boardId}/shapes`, accessToken, body);
|
|
120
|
+
return { id: res.id };
|
|
121
|
+
}
|
|
122
|
+
async function apiCreateCard(accessToken, boardId, params) {
|
|
123
|
+
const body = {
|
|
124
|
+
data: {
|
|
125
|
+
title: params.content,
|
|
126
|
+
description: params.style?.description ?? "",
|
|
127
|
+
...(params.style?.dueDate ? { dueDate: params.style.dueDate } : {}),
|
|
128
|
+
},
|
|
129
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
130
|
+
};
|
|
131
|
+
if (params.parentId)
|
|
132
|
+
body.parent = { id: params.parentId };
|
|
133
|
+
const res = await req("POST", `/boards/${boardId}/cards`, accessToken, body);
|
|
134
|
+
return { id: res.id };
|
|
135
|
+
}
|
|
136
|
+
async function apiCreateAppCard(accessToken, boardId, params) {
|
|
137
|
+
const fields = params.style?.fields ?? [];
|
|
138
|
+
const body = {
|
|
139
|
+
data: {
|
|
140
|
+
title: params.content,
|
|
141
|
+
description: params.style?.description ?? "",
|
|
142
|
+
status: params.style?.status ?? "connected",
|
|
143
|
+
fields: fields.slice(0, 20),
|
|
144
|
+
},
|
|
145
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
146
|
+
};
|
|
147
|
+
if (params.parentId)
|
|
148
|
+
body.parent = { id: params.parentId };
|
|
149
|
+
const res = await req("POST", `/boards/${boardId}/app_cards`, accessToken, body);
|
|
150
|
+
return { id: res.id };
|
|
151
|
+
}
|
|
152
|
+
async function apiCreateImage(accessToken, boardId, params) {
|
|
153
|
+
const body = {
|
|
154
|
+
data: { url: params.content },
|
|
155
|
+
position: { x: params.x ?? 0, y: params.y ?? 0, origin: "center" },
|
|
156
|
+
geometry: { width: params.width ?? 300 },
|
|
157
|
+
};
|
|
158
|
+
if (params.parentId)
|
|
159
|
+
body.parent = { id: params.parentId };
|
|
160
|
+
const res = await req("POST", `/boards/${boardId}/images`, accessToken, body);
|
|
161
|
+
return { id: res.id };
|
|
162
|
+
}
|
|
163
|
+
async function apiCreateConnector(accessToken, boardId, params) {
|
|
164
|
+
const body = {
|
|
165
|
+
startItem: { id: params.startItemId },
|
|
166
|
+
endItem: { id: params.endItemId },
|
|
167
|
+
style: {
|
|
168
|
+
strokeStyle: params.shape ?? "elbowed",
|
|
169
|
+
startStrokeCap: params.startCap ?? "none",
|
|
170
|
+
endStrokeCap: params.endCap ?? "filled_arrow",
|
|
171
|
+
},
|
|
172
|
+
...(params.label ? { captions: [{ content: params.label, position: "50%" }] } : {}),
|
|
173
|
+
};
|
|
174
|
+
const res = await req("POST", `/boards/${boardId}/connectors`, accessToken, body);
|
|
175
|
+
return { id: res.id };
|
|
176
|
+
}
|
|
177
|
+
async function apiCreateTag(accessToken, boardId, params) {
|
|
178
|
+
const body = { title: params.title, fillColor: params.color ?? "yellow" };
|
|
179
|
+
const res = await req("POST", `/boards/${boardId}/tags`, accessToken, body);
|
|
180
|
+
// Attach to item
|
|
181
|
+
await req("POST", `/boards/${boardId}/items/${params.itemId}/tags/${res.id}`, accessToken);
|
|
182
|
+
return { id: res.id };
|
|
183
|
+
}
|
|
184
|
+
// ---- Update / Delete ----
|
|
185
|
+
const TYPE_ENDPOINT_MAP = {
|
|
186
|
+
sticky_note: "sticky_notes",
|
|
187
|
+
text: "texts",
|
|
188
|
+
frame: "frames",
|
|
189
|
+
shape: "shapes",
|
|
190
|
+
card: "cards",
|
|
191
|
+
app_card: "app_cards",
|
|
192
|
+
image: "images",
|
|
193
|
+
connector: "connectors",
|
|
194
|
+
};
|
|
195
|
+
async function resolveEndpointAndType(accessToken, boardId, itemId, knownType) {
|
|
196
|
+
if (knownType && TYPE_ENDPOINT_MAP[knownType])
|
|
197
|
+
return [TYPE_ENDPOINT_MAP[knownType], knownType];
|
|
198
|
+
const item = await req("GET", `/boards/${boardId}/items/${itemId}`, accessToken);
|
|
199
|
+
const type = item?.type ?? "shape";
|
|
200
|
+
return [TYPE_ENDPOINT_MAP[type] ?? "shapes", type];
|
|
201
|
+
}
|
|
202
|
+
const TITLE_TYPES = new Set(["frame", "card", "app_card"]);
|
|
203
|
+
async function apiUpdateItem(accessToken, boardId, params) {
|
|
204
|
+
const [endpoint, resolvedType] = await resolveEndpointAndType(accessToken, boardId, params.id, params.itemType);
|
|
205
|
+
const body = {};
|
|
206
|
+
if (params.content !== undefined) {
|
|
207
|
+
body.data = TITLE_TYPES.has(resolvedType)
|
|
208
|
+
? { title: params.content }
|
|
209
|
+
: { content: params.content };
|
|
210
|
+
}
|
|
211
|
+
if (params.x !== undefined || params.y !== undefined) {
|
|
212
|
+
body.position = { x: params.x, y: params.y, origin: "center" };
|
|
213
|
+
}
|
|
214
|
+
if (params.width !== undefined || params.height !== undefined) {
|
|
215
|
+
body.geometry = { width: params.width, height: params.height };
|
|
216
|
+
}
|
|
217
|
+
if (params.style !== undefined)
|
|
218
|
+
body.style = params.style;
|
|
219
|
+
// App card: merge incoming fields onto existing ones rather than replacing the whole array
|
|
220
|
+
if (resolvedType === "app_card" && params.fields !== undefined) {
|
|
221
|
+
const existing = await req("GET", `/boards/${boardId}/${endpoint}/${params.id}`, accessToken);
|
|
222
|
+
const existingFields = existing?.data?.fields ?? [];
|
|
223
|
+
const incomingFields = params.fields ?? [];
|
|
224
|
+
// Merge by index — incoming fields overwrite positionally, extras are appended
|
|
225
|
+
const merged = [...existingFields];
|
|
226
|
+
incomingFields.forEach((f, i) => {
|
|
227
|
+
if (i < merged.length)
|
|
228
|
+
merged[i] = { ...merged[i], ...f };
|
|
229
|
+
else
|
|
230
|
+
merged.push(f);
|
|
231
|
+
});
|
|
232
|
+
body.data = { ...body.data, fields: merged.slice(0, 20) };
|
|
233
|
+
}
|
|
234
|
+
await req("PATCH", `/boards/${boardId}/${endpoint}/${params.id}`, accessToken, body);
|
|
235
|
+
}
|
|
236
|
+
async function apiDeleteItem(accessToken, boardId, itemId, itemType) {
|
|
237
|
+
const [endpoint] = await resolveEndpointAndType(accessToken, boardId, itemId, itemType);
|
|
238
|
+
await req("DELETE", `/boards/${boardId}/${endpoint}/${itemId}`, accessToken);
|
|
239
|
+
}
|
|
240
|
+
// ---- Helpers ----
|
|
241
|
+
const STICKY_COLOR_MAP = {
|
|
242
|
+
yellow: "yellow",
|
|
243
|
+
light_yellow: "light_yellow",
|
|
244
|
+
orange: "orange",
|
|
245
|
+
red: "red",
|
|
246
|
+
pink: "pink",
|
|
247
|
+
light_pink: "light_pink",
|
|
248
|
+
violet: "violet",
|
|
249
|
+
blue: "blue",
|
|
250
|
+
light_blue: "light_blue",
|
|
251
|
+
dark_blue: "dark_blue",
|
|
252
|
+
cyan: "cyan",
|
|
253
|
+
green: "green",
|
|
254
|
+
light_green: "light_green",
|
|
255
|
+
dark_green: "dark_green",
|
|
256
|
+
gray: "gray",
|
|
257
|
+
black: "black",
|
|
258
|
+
};
|
|
259
|
+
function stickyColor(name) {
|
|
260
|
+
return STICKY_COLOR_MAP[name] ?? "yellow";
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=miroApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miroApi.js","sourceRoot":"","sources":["../../../src/MiroBridge/service/miroApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalise.d.ts","sourceRoot":"","sources":["../../../src/MiroBridge/service/normalise.ts"],"names":[],"mappings":"AA+BA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAqBhF"}
|