@openapi-studio/core 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/spec.html ADDED
@@ -0,0 +1,510 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark" data-beasties-container>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <link rel="icon" href="/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <title>OpenAPI Studio</title>
8
+
9
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
10
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
11
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
12
+ <link rel="manifest" href="/site.webmanifest" />
13
+ <script
14
+ type="module"
15
+ async
16
+ crossorigin
17
+ src="/assets/app-BgTLLqSw.js"
18
+ ></script>
19
+ <style>
20
+ @font-face {
21
+ font-family: Open Sans Variable;
22
+ font-style: normal;
23
+ font-display: swap;
24
+ font-weight: 300 800;
25
+ src: url(/assets/open-sans-cyrillic-ext-wght-normal-D8xHCTEw.woff2)
26
+ format("woff2-variations");
27
+ unicode-range:
28
+ U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F,
29
+ U+FE2E-FE2F;
30
+ }
31
+ @font-face {
32
+ font-family: Open Sans Variable;
33
+ font-style: normal;
34
+ font-display: swap;
35
+ font-weight: 300 800;
36
+ src: url(/assets/open-sans-cyrillic-wght-normal-bOs07Rf4.woff2)
37
+ format("woff2-variations");
38
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
39
+ }
40
+ @font-face {
41
+ font-family: Open Sans Variable;
42
+ font-style: normal;
43
+ font-display: swap;
44
+ font-weight: 300 800;
45
+ src: url(/assets/open-sans-greek-ext-wght-normal-Bm9CHu9r.woff2)
46
+ format("woff2-variations");
47
+ unicode-range: U+1F00-1FFF;
48
+ }
49
+ @font-face {
50
+ font-family: Open Sans Variable;
51
+ font-style: normal;
52
+ font-display: swap;
53
+ font-weight: 300 800;
54
+ src: url(/assets/open-sans-greek-wght-normal-8neIfJ3r.woff2)
55
+ format("woff2-variations");
56
+ unicode-range:
57
+ U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1,
58
+ U+03A3-03FF;
59
+ }
60
+ @font-face {
61
+ font-family: Open Sans Variable;
62
+ font-style: normal;
63
+ font-display: swap;
64
+ font-weight: 300 800;
65
+ src: url(/assets/open-sans-hebrew-wght-normal-BjjtG49P.woff2)
66
+ format("woff2-variations");
67
+ unicode-range:
68
+ U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
69
+ }
70
+ @font-face {
71
+ font-family: Open Sans Variable;
72
+ font-style: normal;
73
+ font-display: swap;
74
+ font-weight: 300 800;
75
+ src: url(/assets/open-sans-math-wght-normal-C1FvUlkR.woff2)
76
+ format("woff2-variations");
77
+ unicode-range:
78
+ U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A,
79
+ U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346,
80
+ U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6,
81
+ U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040,
82
+ U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E,
83
+ U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112,
84
+ U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE,
85
+ U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF,
86
+ U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395,
87
+ U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7,
88
+ U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF,
89
+ U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D,
90
+ U+1D400-1D7FF, U+1EE00-1EEFF;
91
+ }
92
+ @font-face {
93
+ font-family: Open Sans Variable;
94
+ font-style: normal;
95
+ font-display: swap;
96
+ font-weight: 300 800;
97
+ src: url(/assets/open-sans-symbols-wght-normal-BAf6-sld.woff2)
98
+ format("woff2-variations");
99
+ unicode-range:
100
+ U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4,
101
+ U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3,
102
+ U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A,
103
+ U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF,
104
+ U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E,
105
+ U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E,
106
+ U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD,
107
+ U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E,
108
+ U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F,
109
+ U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE,
110
+ U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408,
111
+ U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444,
112
+ U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3,
113
+ U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6,
114
+ U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7,
115
+ U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D,
116
+ U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F,
117
+ U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2,
118
+ U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA,
119
+ U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B,
120
+ U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD,
121
+ U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946,
122
+ U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C,
123
+ U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9,
124
+ U+1FAF0-1FAF8, U+1FB00-1FBFF;
125
+ }
126
+ @font-face {
127
+ font-family: Open Sans Variable;
128
+ font-style: normal;
129
+ font-display: swap;
130
+ font-weight: 300 800;
131
+ src: url(/assets/open-sans-vietnamese-wght-normal-UygKeDyW.woff2)
132
+ format("woff2-variations");
133
+ unicode-range:
134
+ U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
135
+ U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
136
+ U+1EA0-1EF9, U+20AB;
137
+ }
138
+ @font-face {
139
+ font-family: Open Sans Variable;
140
+ font-style: normal;
141
+ font-display: swap;
142
+ font-weight: 300 800;
143
+ src: url(/assets/open-sans-latin-ext-wght-normal-DPNHYqvY.woff2)
144
+ format("woff2-variations");
145
+ unicode-range:
146
+ U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
147
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
148
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
149
+ }
150
+ @font-face {
151
+ font-family: Open Sans Variable;
152
+ font-style: normal;
153
+ font-display: swap;
154
+ font-weight: 300 800;
155
+ src: url(/assets/open-sans-latin-wght-normal-CWNzRldh.woff2)
156
+ format("woff2-variations");
157
+ unicode-range:
158
+ U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
159
+ U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
160
+ U+2212, U+2215, U+FEFF, U+FFFD;
161
+ }
162
+ :root {
163
+ --background: 0 0% 3.9%;
164
+ --foreground: 0 0% 98%;
165
+ --card: 0 0% 7%;
166
+ --card-foreground: 0 0% 98%;
167
+ --popover: 0 0% 5%;
168
+ --popover-foreground: 0 0% 98%;
169
+ --primary: 0 0% 100%;
170
+ --primary-foreground: 0 0% 9%;
171
+ --secondary: 0 0% 14.9%;
172
+ --secondary-foreground: 0 0% 98%;
173
+ --muted: 0 0% 14.9%;
174
+ --muted-foreground: 0 0% 63.9%;
175
+ --accent: 0 0% 14.9%;
176
+ --accent-foreground: 0 0% 98%;
177
+ --destructive: 0 0% 50%;
178
+ --destructive-foreground: 0 0% 98%;
179
+ --border: 0 0% 14.9%;
180
+ --input: 0 0% 14.9%;
181
+ --ring: 0 0% 83.1%;
182
+ --radius: 0.5rem;
183
+ }
184
+ * {
185
+ margin: 0;
186
+ padding: 0;
187
+ box-sizing: border-box;
188
+ }
189
+ html,
190
+ body {
191
+ height: 100%;
192
+ margin: 0;
193
+ padding: 0;
194
+ overflow: hidden;
195
+ }
196
+ body {
197
+ font-family:
198
+ Open Sans Variable,
199
+ sans-serif;
200
+ background-color: hsl(var(--background));
201
+ color: hsl(var(--foreground));
202
+ line-height: 1.5;
203
+ }
204
+ button {
205
+ background-color: hsl(var(--background));
206
+ color: hsl(var(--foreground));
207
+ border-color: hsl(var(--border));
208
+ }
209
+ #app {
210
+ height: 100vh;
211
+ overflow: hidden;
212
+ display: flex;
213
+ flex-direction: column;
214
+ }
215
+ .spec-viewer[data-v-aa7d1028] {
216
+ height: 100vh;
217
+ display: flex;
218
+ flex-direction: column;
219
+ background: hsl(var(--background));
220
+ color: hsl(var(--foreground));
221
+ overflow: hidden;
222
+ }
223
+ .spec-viewer-header[data-v-aa7d1028] {
224
+ border-bottom: 1px solid hsl(var(--border));
225
+ background: hsl(var(--card));
226
+ flex-shrink: 0;
227
+ z-index: 100;
228
+ }
229
+ .header-content[data-v-aa7d1028] {
230
+ max-width: 100%;
231
+ margin: 0 auto;
232
+ padding: 1rem 2rem;
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 1rem;
236
+ }
237
+ .back-button[data-v-aa7d1028] {
238
+ display: flex;
239
+ align-items: center;
240
+ justify-content: center;
241
+ background: transparent;
242
+ border: 1px solid hsl(var(--border));
243
+ color: hsl(var(--foreground));
244
+ cursor: pointer;
245
+ padding: 0.5rem;
246
+ border-radius: calc(var(--radius) - 2px);
247
+ transition: all 0.2s;
248
+ flex-shrink: 0;
249
+ }
250
+ .back-button[data-v-aa7d1028]:hover {
251
+ background: hsl(var(--muted) / 0.3);
252
+ color: hsl(var(--primary));
253
+ }
254
+ .header-title-section[data-v-aa7d1028] {
255
+ display: flex;
256
+ align-items: center;
257
+ gap: 0.75rem;
258
+ flex: 1;
259
+ min-width: 0;
260
+ }
261
+ .header-title-section svg[data-v-aa7d1028] {
262
+ flex-shrink: 0;
263
+ color: hsl(var(--muted-foreground));
264
+ }
265
+ .title-row[data-v-aa7d1028] {
266
+ display: flex;
267
+ align-items: baseline;
268
+ gap: 0.75rem;
269
+ flex-wrap: wrap;
270
+ flex: 1;
271
+ min-width: 0;
272
+ }
273
+ .spec-title[data-v-aa7d1028] {
274
+ font-size: 1.25rem;
275
+ font-weight: 600;
276
+ margin: 0;
277
+ white-space: nowrap;
278
+ overflow: hidden;
279
+ text-overflow: ellipsis;
280
+ line-height: 1.2;
281
+ }
282
+ .download-button[data-v-aa7d1028] {
283
+ display: flex;
284
+ align-items: center;
285
+ gap: 0.5rem;
286
+ padding: 0.5rem 1rem;
287
+ background: hsl(var(--primary));
288
+ color: hsl(var(--primary-foreground));
289
+ border: none;
290
+ border-radius: calc(var(--radius) - 2px);
291
+ cursor: pointer;
292
+ font-weight: 500;
293
+ transition: opacity 0.2s;
294
+ flex-shrink: 0;
295
+ }
296
+ .download-button[data-v-aa7d1028]:hover:not(:disabled) {
297
+ opacity: 0.9;
298
+ }
299
+ .download-button[data-v-aa7d1028]:disabled {
300
+ opacity: 0.5;
301
+ cursor: not-allowed;
302
+ }
303
+ .spec-viewer-content[data-v-aa7d1028] {
304
+ flex: 1;
305
+ overflow-y: auto;
306
+ overflow-x: hidden;
307
+ display: flex;
308
+ flex-direction: column;
309
+ padding: 1rem;
310
+ min-height: 0;
311
+ }
312
+ .empty-state[data-v-aa7d1028] {
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ flex: 1;
317
+ padding: 2rem;
318
+ }
319
+ .empty-state p[data-v-aa7d1028] {
320
+ font-size: 1rem;
321
+ color: hsl(var(--muted-foreground));
322
+ }
323
+ </style>
324
+ <link
325
+ rel="preload"
326
+ crossorigin
327
+ href="/assets/app-DiS_moJx.css"
328
+ as="style"
329
+ />
330
+ <link
331
+ rel="modulepreload"
332
+ crossorigin
333
+ href="/assets/SpecViewer-DEejm153.js"
334
+ />
335
+ <link rel="preload" href="/assets/SpecViewer-RnrGXg8h.css" as="style" />
336
+ <link
337
+ rel="preload"
338
+ as="font"
339
+ crossorigin="anonymous"
340
+ href="/assets/open-sans-cyrillic-ext-wght-normal-D8xHCTEw.woff2"
341
+ />
342
+ <link
343
+ rel="preload"
344
+ as="font"
345
+ crossorigin="anonymous"
346
+ href="/assets/open-sans-cyrillic-wght-normal-bOs07Rf4.woff2"
347
+ />
348
+ <link
349
+ rel="preload"
350
+ as="font"
351
+ crossorigin="anonymous"
352
+ href="/assets/open-sans-greek-ext-wght-normal-Bm9CHu9r.woff2"
353
+ />
354
+ <link
355
+ rel="preload"
356
+ as="font"
357
+ crossorigin="anonymous"
358
+ href="/assets/open-sans-greek-wght-normal-8neIfJ3r.woff2"
359
+ />
360
+ <link
361
+ rel="preload"
362
+ as="font"
363
+ crossorigin="anonymous"
364
+ href="/assets/open-sans-hebrew-wght-normal-BjjtG49P.woff2"
365
+ />
366
+ <link
367
+ rel="preload"
368
+ as="font"
369
+ crossorigin="anonymous"
370
+ href="/assets/open-sans-math-wght-normal-C1FvUlkR.woff2"
371
+ />
372
+ <link
373
+ rel="preload"
374
+ as="font"
375
+ crossorigin="anonymous"
376
+ href="/assets/open-sans-symbols-wght-normal-BAf6-sld.woff2"
377
+ />
378
+ <link
379
+ rel="preload"
380
+ as="font"
381
+ crossorigin="anonymous"
382
+ href="/assets/open-sans-vietnamese-wght-normal-UygKeDyW.woff2"
383
+ />
384
+ <link
385
+ rel="preload"
386
+ as="font"
387
+ crossorigin="anonymous"
388
+ href="/assets/open-sans-latin-ext-wght-normal-DPNHYqvY.woff2"
389
+ />
390
+ <link
391
+ rel="preload"
392
+ as="font"
393
+ crossorigin="anonymous"
394
+ href="/assets/open-sans-latin-wght-normal-CWNzRldh.woff2"
395
+ />
396
+ <link
397
+ rel="preload"
398
+ as="font"
399
+ crossorigin="anonymous"
400
+ href="/assets/chivo-mono-vietnamese-wght-normal-CR-pvMd4.woff2"
401
+ />
402
+ <link
403
+ rel="preload"
404
+ as="font"
405
+ crossorigin="anonymous"
406
+ href="/assets/chivo-mono-latin-ext-wght-normal-Cnx6d2Yf.woff2"
407
+ />
408
+ <link
409
+ rel="preload"
410
+ as="font"
411
+ crossorigin="anonymous"
412
+ href="/assets/chivo-mono-latin-wght-normal-DXNvimoL.woff2"
413
+ />
414
+ </head>
415
+
416
+ <body>
417
+ <div id="app" data-server-rendered="true">
418
+ <div class="spec-viewer" data-v-aa7d1028>
419
+ <header class="spec-viewer-header" data-v-aa7d1028>
420
+ <div class="header-content" data-v-aa7d1028>
421
+ <button
422
+ class="back-button"
423
+ title="Back to main view"
424
+ data-v-aa7d1028
425
+ >
426
+ <svg
427
+ xmlns="http://www.w3.org/2000/svg"
428
+ width="20"
429
+ height="20"
430
+ viewBox="0 0 24 24"
431
+ fill="none"
432
+ stroke="currentColor"
433
+ stroke-width="2"
434
+ stroke-linecap="round"
435
+ stroke-linejoin="round"
436
+ class="lucide lucide-arrow-left-icon lucide-arrow-left"
437
+ data-v-aa7d1028=""
438
+ >
439
+ <path d="m12 19-7-7 7-7" />
440
+ <path d="M19 12H5" />
441
+ </svg>
442
+ </button>
443
+ <div class="header-title-section" data-v-aa7d1028>
444
+ <svg
445
+ xmlns="http://www.w3.org/2000/svg"
446
+ width="24"
447
+ height="24"
448
+ viewBox="0 0 24 24"
449
+ fill="none"
450
+ stroke="currentColor"
451
+ stroke-width="2"
452
+ stroke-linecap="round"
453
+ stroke-linejoin="round"
454
+ class="lucide lucide-file-text-icon lucide-file-text"
455
+ data-v-aa7d1028=""
456
+ >
457
+ <path
458
+ d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
459
+ />
460
+ <path d="M14 2v5a1 1 0 0 0 1 1h5" />
461
+ <path d="M10 9H8" />
462
+ <path d="M16 13H8" />
463
+ <path d="M16 17H8" />
464
+ </svg>
465
+ <div class="title-row" data-v-aa7d1028>
466
+ <h1 class="spec-title" data-v-aa7d1028>OpenAPI Studio</h1>
467
+ <!---->
468
+ </div>
469
+ </div>
470
+ <button
471
+ class="download-button"
472
+ disabled
473
+ title="Download OpenAPI Spec JSON"
474
+ data-v-aa7d1028
475
+ >
476
+ <svg
477
+ xmlns="http://www.w3.org/2000/svg"
478
+ width="20"
479
+ height="20"
480
+ viewBox="0 0 24 24"
481
+ fill="none"
482
+ stroke="currentColor"
483
+ stroke-width="2"
484
+ stroke-linecap="round"
485
+ stroke-linejoin="round"
486
+ class="lucide lucide-download-icon lucide-download"
487
+ data-v-aa7d1028=""
488
+ >
489
+ <path d="M12 15V3" />
490
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
491
+ <path d="m7 10 5 5 5-5" /></svg
492
+ ><span data-v-aa7d1028>Download</span>
493
+ </button>
494
+ </div>
495
+ </header>
496
+ <!---->
497
+ <main class="spec-viewer-content" data-v-aa7d1028>
498
+ <div class="empty-state" data-v-aa7d1028>
499
+ <p data-v-aa7d1028>No OpenAPI specification available.</p>
500
+ </div>
501
+ </main>
502
+ </div>
503
+ </div>
504
+
505
+ <link rel="stylesheet" crossorigin href="/assets/app-DiS_moJx.css" /><link
506
+ rel="stylesheet"
507
+ href="/assets/SpecViewer-RnrGXg8h.css"
508
+ />
509
+ </body>
510
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-studio/core",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": "^20.19.0 || >=22.12.0"