@nordsym/apiclaw 1.3.1 → 1.3.3
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/open-apis.d.ts.map +1 -1
- package/dist/open-apis.js +65 -34
- package/dist/open-apis.js.map +1 -1
- package/package.json +1 -1
- package/src/open-apis.ts +65 -36
package/dist/open-apis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-apis.d.ts","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"open-apis.d.ts","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0HlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqI7F;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAO3G"}
|
package/dist/open-apis.js
CHANGED
|
@@ -112,29 +112,15 @@ export const openAPIs = {
|
|
|
112
112
|
},
|
|
113
113
|
},
|
|
114
114
|
},
|
|
115
|
-
// Kroki - Diagrams as code
|
|
115
|
+
// Kroki - Diagrams as code
|
|
116
116
|
kroki: {
|
|
117
117
|
name: 'Kroki',
|
|
118
|
-
description: 'Generate
|
|
118
|
+
description: 'Generate diagrams from text. Supports: mermaid, d2, plantuml, graphviz, c4plantuml, blockdiag, bpmn. D2 is SVG-only.',
|
|
119
119
|
baseUrl: 'https://kroki.io',
|
|
120
120
|
actions: {
|
|
121
121
|
render: {
|
|
122
|
-
method: '
|
|
123
|
-
path: () => '', // Custom handling
|
|
124
|
-
transform: (_, params) => {
|
|
125
|
-
const type = params.type || 'mermaid';
|
|
126
|
-
const format = params.format || 'svg';
|
|
127
|
-
const diagram = params.diagram || '';
|
|
128
|
-
// Base64url encode the diagram
|
|
129
|
-
const encoded = Buffer.from(diagram).toString('base64url');
|
|
130
|
-
const url = `https://kroki.io/${type}/${format}/${encoded}`;
|
|
131
|
-
return {
|
|
132
|
-
url,
|
|
133
|
-
type,
|
|
134
|
-
format,
|
|
135
|
-
note: 'Open this URL to see/download the diagram',
|
|
136
|
-
};
|
|
137
|
-
},
|
|
122
|
+
method: 'POST',
|
|
123
|
+
path: () => '', // Custom handling below
|
|
138
124
|
},
|
|
139
125
|
},
|
|
140
126
|
},
|
|
@@ -174,10 +160,10 @@ export async function executeOpenAPI(providerId, action, params) {
|
|
|
174
160
|
};
|
|
175
161
|
}
|
|
176
162
|
try {
|
|
177
|
-
// Special handling for Kroki -
|
|
163
|
+
// Special handling for Kroki - use POST to get actual image data
|
|
178
164
|
if (providerId === 'kroki') {
|
|
179
165
|
const type = params.type || 'mermaid';
|
|
180
|
-
|
|
166
|
+
let format = params.format || 'svg';
|
|
181
167
|
const diagram = params.diagram || '';
|
|
182
168
|
if (!diagram) {
|
|
183
169
|
return {
|
|
@@ -187,20 +173,65 @@ export async function executeOpenAPI(providerId, action, params) {
|
|
|
187
173
|
error: 'Missing required param: diagram',
|
|
188
174
|
};
|
|
189
175
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
176
|
+
// D2 only supports SVG
|
|
177
|
+
if (type === 'd2' && format !== 'svg') {
|
|
178
|
+
format = 'svg';
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const response = await fetch(`https://kroki.io/${type}/${format}`, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
184
|
+
body: diagram,
|
|
185
|
+
});
|
|
186
|
+
if (!response.ok) {
|
|
187
|
+
const err = await response.text();
|
|
188
|
+
return {
|
|
189
|
+
success: false,
|
|
190
|
+
provider: providerId,
|
|
191
|
+
action,
|
|
192
|
+
error: `Kroki error: ${err}`,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// For SVG, return the content directly; for binary, return base64
|
|
196
|
+
if (format === 'svg') {
|
|
197
|
+
const svg = await response.text();
|
|
198
|
+
return {
|
|
199
|
+
success: true,
|
|
200
|
+
provider: providerId,
|
|
201
|
+
action,
|
|
202
|
+
data: {
|
|
203
|
+
type,
|
|
204
|
+
format: 'svg',
|
|
205
|
+
content: svg,
|
|
206
|
+
content_type: 'image/svg+xml',
|
|
207
|
+
supported_types: ['mermaid', 'd2', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn'],
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const buffer = await response.arrayBuffer();
|
|
213
|
+
const base64 = Buffer.from(buffer).toString('base64');
|
|
214
|
+
return {
|
|
215
|
+
success: true,
|
|
216
|
+
provider: providerId,
|
|
217
|
+
action,
|
|
218
|
+
data: {
|
|
219
|
+
type,
|
|
220
|
+
format,
|
|
221
|
+
content_base64: base64,
|
|
222
|
+
content_type: format === 'png' ? 'image/png' : 'application/pdf',
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (e) {
|
|
228
|
+
return {
|
|
229
|
+
success: false,
|
|
230
|
+
provider: providerId,
|
|
231
|
+
action,
|
|
232
|
+
error: e.message || 'Kroki request failed',
|
|
233
|
+
};
|
|
234
|
+
}
|
|
204
235
|
}
|
|
205
236
|
const url = config.baseUrl + actionConfig.path(params);
|
|
206
237
|
const response = await fetch(url, { method: actionConfig.method });
|
package/dist/open-apis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-apis.js","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"open-apis.js","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/open-apis.ts
CHANGED
|
@@ -129,31 +129,15 @@ export const openAPIs: Record<string, OpenAPIConfig> = {
|
|
|
129
129
|
},
|
|
130
130
|
},
|
|
131
131
|
|
|
132
|
-
// Kroki - Diagrams as code
|
|
132
|
+
// Kroki - Diagrams as code
|
|
133
133
|
kroki: {
|
|
134
134
|
name: 'Kroki',
|
|
135
|
-
description: 'Generate
|
|
135
|
+
description: 'Generate diagrams from text. Supports: mermaid, d2, plantuml, graphviz, c4plantuml, blockdiag, bpmn. D2 is SVG-only.',
|
|
136
136
|
baseUrl: 'https://kroki.io',
|
|
137
137
|
actions: {
|
|
138
138
|
render: {
|
|
139
|
-
method: '
|
|
140
|
-
path: () => '', // Custom handling
|
|
141
|
-
transform: (_, params) => {
|
|
142
|
-
const type = params.type || 'mermaid';
|
|
143
|
-
const format = params.format || 'svg';
|
|
144
|
-
const diagram = params.diagram || '';
|
|
145
|
-
|
|
146
|
-
// Base64url encode the diagram
|
|
147
|
-
const encoded = Buffer.from(diagram).toString('base64url');
|
|
148
|
-
const url = `https://kroki.io/${type}/${format}/${encoded}`;
|
|
149
|
-
|
|
150
|
-
return {
|
|
151
|
-
url,
|
|
152
|
-
type,
|
|
153
|
-
format,
|
|
154
|
-
note: 'Open this URL to see/download the diagram',
|
|
155
|
-
};
|
|
156
|
-
},
|
|
139
|
+
method: 'POST',
|
|
140
|
+
path: () => '', // Custom handling below
|
|
157
141
|
},
|
|
158
142
|
},
|
|
159
143
|
},
|
|
@@ -204,10 +188,10 @@ export async function executeOpenAPI(
|
|
|
204
188
|
}
|
|
205
189
|
|
|
206
190
|
try {
|
|
207
|
-
// Special handling for Kroki -
|
|
191
|
+
// Special handling for Kroki - use POST to get actual image data
|
|
208
192
|
if (providerId === 'kroki') {
|
|
209
193
|
const type = params.type || 'mermaid';
|
|
210
|
-
|
|
194
|
+
let format = params.format || 'svg';
|
|
211
195
|
const diagram = params.diagram || '';
|
|
212
196
|
|
|
213
197
|
if (!diagram) {
|
|
@@ -219,21 +203,66 @@ export async function executeOpenAPI(
|
|
|
219
203
|
};
|
|
220
204
|
}
|
|
221
205
|
|
|
222
|
-
|
|
223
|
-
|
|
206
|
+
// D2 only supports SVG
|
|
207
|
+
if (type === 'd2' && format !== 'svg') {
|
|
208
|
+
format = 'svg';
|
|
209
|
+
}
|
|
224
210
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
211
|
+
try {
|
|
212
|
+
const response = await fetch(`https://kroki.io/${type}/${format}`, {
|
|
213
|
+
method: 'POST',
|
|
214
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
215
|
+
body: diagram,
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
if (!response.ok) {
|
|
219
|
+
const err = await response.text();
|
|
220
|
+
return {
|
|
221
|
+
success: false,
|
|
222
|
+
provider: providerId,
|
|
223
|
+
action,
|
|
224
|
+
error: `Kroki error: ${err}`,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// For SVG, return the content directly; for binary, return base64
|
|
229
|
+
if (format === 'svg') {
|
|
230
|
+
const svg = await response.text();
|
|
231
|
+
return {
|
|
232
|
+
success: true,
|
|
233
|
+
provider: providerId,
|
|
234
|
+
action,
|
|
235
|
+
data: {
|
|
236
|
+
type,
|
|
237
|
+
format: 'svg',
|
|
238
|
+
content: svg,
|
|
239
|
+
content_type: 'image/svg+xml',
|
|
240
|
+
supported_types: ['mermaid', 'd2', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn'],
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
} else {
|
|
244
|
+
const buffer = await response.arrayBuffer();
|
|
245
|
+
const base64 = Buffer.from(buffer).toString('base64');
|
|
246
|
+
return {
|
|
247
|
+
success: true,
|
|
248
|
+
provider: providerId,
|
|
249
|
+
action,
|
|
250
|
+
data: {
|
|
251
|
+
type,
|
|
252
|
+
format,
|
|
253
|
+
content_base64: base64,
|
|
254
|
+
content_type: format === 'png' ? 'image/png' : 'application/pdf',
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
} catch (e: any) {
|
|
259
|
+
return {
|
|
260
|
+
success: false,
|
|
261
|
+
provider: providerId,
|
|
262
|
+
action,
|
|
263
|
+
error: e.message || 'Kroki request failed',
|
|
264
|
+
};
|
|
265
|
+
}
|
|
237
266
|
}
|
|
238
267
|
|
|
239
268
|
const url = config.baseUrl + actionConfig.path(params);
|