fastapi-voyager 0.7.3__py3-none-any.whl → 0.7.4__py3-none-any.whl
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.
- fastapi_voyager/version.py +1 -1
- fastapi_voyager/web/index.html +191 -96
- fastapi_voyager/web/vue-main.js +52 -1
- {fastapi_voyager-0.7.3.dist-info → fastapi_voyager-0.7.4.dist-info}/METADATA +4 -1
- {fastapi_voyager-0.7.3.dist-info → fastapi_voyager-0.7.4.dist-info}/RECORD +8 -8
- {fastapi_voyager-0.7.3.dist-info → fastapi_voyager-0.7.4.dist-info}/WHEEL +0 -0
- {fastapi_voyager-0.7.3.dist-info → fastapi_voyager-0.7.4.dist-info}/entry_points.txt +0 -0
- {fastapi_voyager-0.7.3.dist-info → fastapi_voyager-0.7.4.dist-info}/licenses/LICENSE +0 -0
fastapi_voyager/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "0.7.
|
|
2
|
+
__version__ = "0.7.4"
|
fastapi_voyager/web/index.html
CHANGED
|
@@ -5,10 +5,28 @@
|
|
|
5
5
|
<link rel="stylesheet" href="fastapi-voyager-static/graphviz.svg.css" />
|
|
6
6
|
<link rel="stylesheet" href="fastapi-voyager-static/quasar.min.css" />
|
|
7
7
|
<!-- App Icons / Favicons -->
|
|
8
|
-
<link
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
<link
|
|
9
|
+
rel="apple-touch-icon"
|
|
10
|
+
sizes="180x180"
|
|
11
|
+
href="fastapi-voyager-static/icon/apple-touch-icon.png"
|
|
12
|
+
/>
|
|
13
|
+
<link
|
|
14
|
+
rel="icon"
|
|
15
|
+
type="image/png"
|
|
16
|
+
sizes="32x32"
|
|
17
|
+
href="fastapi-voyager-static/icon/favicon-32x32.png"
|
|
18
|
+
/>
|
|
19
|
+
<link
|
|
20
|
+
rel="icon"
|
|
21
|
+
type="image/png"
|
|
22
|
+
sizes="16x16"
|
|
23
|
+
href="fastapi-voyager-static/icon/favicon-16x16.png"
|
|
24
|
+
/>
|
|
25
|
+
<link
|
|
26
|
+
rel="icon"
|
|
27
|
+
href="fastapi-voyager-static/icon/favicon.ico"
|
|
28
|
+
sizes="any"
|
|
29
|
+
/>
|
|
12
30
|
<link rel="manifest" href="fastapi-voyager-static/icon/site.webmanifest" />
|
|
13
31
|
<link
|
|
14
32
|
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons"
|
|
@@ -40,62 +58,36 @@
|
|
|
40
58
|
</style>
|
|
41
59
|
<body>
|
|
42
60
|
<div id="q-app" class="column" style="height: 100%">
|
|
43
|
-
<div
|
|
44
|
-
|
|
61
|
+
<div
|
|
62
|
+
v-if="state.initializing"
|
|
63
|
+
style="
|
|
64
|
+
position: fixed;
|
|
65
|
+
inset: 0;
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
z-index: 2000;
|
|
70
|
+
background: rgba(255, 255, 255, 0.85);
|
|
71
|
+
font-size: 18px;
|
|
72
|
+
font-family: Roboto, sans-serif;
|
|
73
|
+
color: #444;
|
|
74
|
+
"
|
|
75
|
+
>
|
|
76
|
+
<div style="text-align: center">
|
|
45
77
|
<div class="q-mb-sm">Initializing...</div>
|
|
46
78
|
<q-spinner color="primary" size="32px" />
|
|
47
79
|
</div>
|
|
48
80
|
</div>
|
|
49
81
|
<div
|
|
50
82
|
style="
|
|
51
|
-
padding
|
|
52
|
-
padding-left: 8px;
|
|
53
|
-
padding-bottom: 8px;
|
|
54
|
-
position: absolute;
|
|
55
|
-
width: 100%;
|
|
56
|
-
top: 0;
|
|
83
|
+
padding: 8px;
|
|
57
84
|
background-color: #fff;
|
|
58
|
-
z-index: 1;
|
|
59
85
|
border-bottom: 1px solid #ccc;
|
|
60
86
|
color: #211d1d;
|
|
87
|
+
flex: 0 0 auto;
|
|
61
88
|
"
|
|
62
89
|
>
|
|
63
90
|
<div class="row items-center q-col-gutter-md">
|
|
64
|
-
<div class="col-auto">
|
|
65
|
-
<q-select
|
|
66
|
-
v-model="state.tag"
|
|
67
|
-
:options="state.tagOptions"
|
|
68
|
-
use-input
|
|
69
|
-
input-debounce="0"
|
|
70
|
-
behavior="menu"
|
|
71
|
-
dense
|
|
72
|
-
outlined
|
|
73
|
-
style="min-width: 320px"
|
|
74
|
-
popup-content-class="select-popup"
|
|
75
|
-
clearable
|
|
76
|
-
label="Tags"
|
|
77
|
-
@filter="onFilterTags"
|
|
78
|
-
/>
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
<div class="col-auto">
|
|
82
|
-
<q-select
|
|
83
|
-
v-model="state.routeId"
|
|
84
|
-
:options="state.routeOptions"
|
|
85
|
-
option-label="label"
|
|
86
|
-
option-value="value"
|
|
87
|
-
emit-value
|
|
88
|
-
map-options
|
|
89
|
-
dense
|
|
90
|
-
outlined
|
|
91
|
-
style="min-width: 320px"
|
|
92
|
-
popup-content-class="select-popup"
|
|
93
|
-
clearable
|
|
94
|
-
placeholder="All routes"
|
|
95
|
-
label="Routes"
|
|
96
|
-
/>
|
|
97
|
-
</div>
|
|
98
|
-
|
|
99
91
|
<div class="col-auto">
|
|
100
92
|
<div class="column">
|
|
101
93
|
<q-option-group
|
|
@@ -110,14 +102,10 @@
|
|
|
110
102
|
</div>
|
|
111
103
|
|
|
112
104
|
<div class="col-auto">
|
|
113
|
-
<q-
|
|
114
|
-
v-model="state.brief"
|
|
115
|
-
label="Brief"
|
|
116
|
-
dense
|
|
117
|
-
/>
|
|
105
|
+
<q-toggle v-model="state.brief" label="Brief" dense />
|
|
118
106
|
</div>
|
|
119
|
-
|
|
120
|
-
<div class="col-auto">
|
|
107
|
+
|
|
108
|
+
<!-- <div class="col-auto">
|
|
121
109
|
<q-btn-dropdown
|
|
122
110
|
class="q-ml-md"
|
|
123
111
|
split
|
|
@@ -135,17 +123,13 @@
|
|
|
135
123
|
</q-item>
|
|
136
124
|
</q-list>
|
|
137
125
|
</q-btn-dropdown>
|
|
126
|
+
</div> -->
|
|
127
|
+
|
|
128
|
+
<div class="col-auto q-ml-auto">
|
|
129
|
+
<q-btn outline @click="onReset" title="may be very slow" label="Show All" />
|
|
138
130
|
</div>
|
|
139
131
|
<div class="col-auto">
|
|
140
|
-
<q-btn
|
|
141
|
-
</div>
|
|
142
|
-
<div class="col-auto q-ml-auto">
|
|
143
|
-
<q-btn
|
|
144
|
-
outline
|
|
145
|
-
icon="search"
|
|
146
|
-
label="Search"
|
|
147
|
-
@click="showDialog()"
|
|
148
|
-
/>
|
|
132
|
+
<q-btn outline icon="search" label="Search" @click="showDialog()" />
|
|
149
133
|
</div>
|
|
150
134
|
<div class="col-auto">
|
|
151
135
|
<q-btn
|
|
@@ -183,6 +167,58 @@
|
|
|
183
167
|
</div>
|
|
184
168
|
</div>
|
|
185
169
|
</div>
|
|
170
|
+
<div class="row no-wrap" style="flex: 1 1 auto; min-height: 0">
|
|
171
|
+
<div
|
|
172
|
+
class="column no-wrap"
|
|
173
|
+
:style="{
|
|
174
|
+
minWidth: '300px',
|
|
175
|
+
width: '300px',
|
|
176
|
+
borderRight: '1px solid #e0e0e0',
|
|
177
|
+
backgroundColor: '#fff',
|
|
178
|
+
minHeight: 0,
|
|
179
|
+
}"
|
|
180
|
+
>
|
|
181
|
+
<q-scroll-area class="fit">
|
|
182
|
+
<q-list dense separator>
|
|
183
|
+
<q-expansion-item
|
|
184
|
+
v-for="tag in state.rawTags"
|
|
185
|
+
:key="tag.name"
|
|
186
|
+
expand-separator
|
|
187
|
+
switch-toggle-side
|
|
188
|
+
:model-value="state.tag === tag.name"
|
|
189
|
+
@update:model-value="(val) => toggleTag(tag.name, val)"
|
|
190
|
+
:header-class="state.tag === tag.name ? 'bg-primary text-white text-weight-medium' : 'text-weight-medium'"
|
|
191
|
+
content-class="q-pa-none"
|
|
192
|
+
>
|
|
193
|
+
<template #header>
|
|
194
|
+
<div class="row items-center no-wrap" style="width: 100%">
|
|
195
|
+
<div class="col text-body2">{{ tag.name }}</div>
|
|
196
|
+
</div>
|
|
197
|
+
</template>
|
|
198
|
+
|
|
199
|
+
<q-list separator>
|
|
200
|
+
<q-item
|
|
201
|
+
v-for="route in (tag.routes || [])"
|
|
202
|
+
:key="route.id"
|
|
203
|
+
clickable
|
|
204
|
+
v-ripple
|
|
205
|
+
:active="state.routeId === route.id"
|
|
206
|
+
active-class=""
|
|
207
|
+
@click="selectRoute(route.id)"
|
|
208
|
+
>
|
|
209
|
+
<q-item-section>{{ route.name }}</q-item-section>
|
|
210
|
+
</q-item>
|
|
211
|
+
<q-item v-if="!tag.routes || tag.routes.length === 0" dense>
|
|
212
|
+
<q-item-section class="text-grey-6">No routes</q-item-section>
|
|
213
|
+
</q-item>
|
|
214
|
+
</q-list>
|
|
215
|
+
</q-expansion-item>
|
|
216
|
+
</q-list>
|
|
217
|
+
</q-scroll-area>
|
|
218
|
+
</div>
|
|
219
|
+
<div id="graph"></div>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
186
222
|
<!-- Detail Dialog -->
|
|
187
223
|
<q-dialog v-model="showDetail" :persistent="true" :maximized="true">
|
|
188
224
|
<detail-dialog
|
|
@@ -199,88 +235,147 @@
|
|
|
199
235
|
:persistent="true"
|
|
200
236
|
:maximized="true"
|
|
201
237
|
>
|
|
202
|
-
<schema-field-filter
|
|
203
|
-
|
|
204
|
-
|
|
238
|
+
<schema-field-filter
|
|
239
|
+
:schemas="state.rawSchemasFull"
|
|
240
|
+
:schema-name="schemaFieldFilterSchema"
|
|
241
|
+
@close="showSchemaFieldFilter = false"
|
|
242
|
+
/>
|
|
205
243
|
</q-dialog>
|
|
206
244
|
|
|
207
245
|
<!-- Schema Source Code Dialog (Ctrl + Click) -->
|
|
208
|
-
<q-dialog
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
246
|
+
<q-dialog
|
|
247
|
+
v-model="showSchemaCode"
|
|
248
|
+
:maximized="true"
|
|
249
|
+
:persistent="false"
|
|
250
|
+
position="left"
|
|
251
|
+
:seamless="false"
|
|
252
|
+
>
|
|
253
|
+
<schema-code-display
|
|
254
|
+
:schema-name="schemaCodeName"
|
|
255
|
+
:model-value="showSchemaCode"
|
|
212
256
|
:schemas="state.rawSchemasFull"
|
|
213
|
-
@close="showSchemaCode = false"
|
|
257
|
+
@close="showSchemaCode = false"
|
|
258
|
+
/>
|
|
214
259
|
</q-dialog>
|
|
215
260
|
|
|
216
261
|
<!-- Route Source Code Dialog (Alt + Click on route) -->
|
|
217
|
-
<q-dialog
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
262
|
+
<q-dialog
|
|
263
|
+
v-model="showRouteCode"
|
|
264
|
+
:maximized="true"
|
|
265
|
+
:persistent="false"
|
|
266
|
+
position="right"
|
|
267
|
+
:seamless="false"
|
|
268
|
+
>
|
|
269
|
+
<route-code-display
|
|
270
|
+
:route-id="routeCodeId"
|
|
271
|
+
:model-value="showRouteCode"
|
|
221
272
|
:routes="state.routeItems"
|
|
222
|
-
@close="showRouteCode = false"
|
|
273
|
+
@close="showRouteCode = false"
|
|
274
|
+
/>
|
|
223
275
|
</q-dialog>
|
|
224
276
|
|
|
225
277
|
<!-- Dump Core Data Dialog -->
|
|
226
278
|
<q-dialog v-model="showDumpDialog" :maximized="true" :persistent="false">
|
|
227
|
-
<div style="height:100%; position:relative; background
|
|
279
|
+
<div style="height: 100%; position: relative; background: #fff">
|
|
228
280
|
<q-btn
|
|
229
|
-
flat
|
|
281
|
+
flat
|
|
282
|
+
dense
|
|
283
|
+
round
|
|
284
|
+
icon="content_copy"
|
|
230
285
|
aria-label="Copy"
|
|
231
286
|
@click="copyDumpJson"
|
|
232
|
-
style="
|
|
287
|
+
style="
|
|
288
|
+
position: absolute;
|
|
289
|
+
top: 6px;
|
|
290
|
+
right: 62px;
|
|
291
|
+
z-index: 11;
|
|
292
|
+
background: rgba(255, 255, 255, 0.85);
|
|
293
|
+
"
|
|
233
294
|
></q-btn>
|
|
234
295
|
<q-btn
|
|
235
|
-
flat
|
|
296
|
+
flat
|
|
297
|
+
dense
|
|
298
|
+
round
|
|
299
|
+
icon="close"
|
|
236
300
|
aria-label="Close"
|
|
237
301
|
@click="showDumpDialog = false"
|
|
238
|
-
style="
|
|
302
|
+
style="
|
|
303
|
+
position: absolute;
|
|
304
|
+
top: 6px;
|
|
305
|
+
right: 6px;
|
|
306
|
+
z-index: 11;
|
|
307
|
+
background: rgba(255, 255, 255, 0.85);
|
|
308
|
+
"
|
|
239
309
|
></q-btn>
|
|
240
310
|
<div>
|
|
241
|
-
<pre
|
|
311
|
+
<pre
|
|
312
|
+
style="padding: 20px; overflow: auto"
|
|
313
|
+
><code>{{ dumpJson }}</code></pre>
|
|
242
314
|
</div>
|
|
243
315
|
</div>
|
|
244
316
|
</q-dialog>
|
|
245
317
|
|
|
246
318
|
<!-- Import Core Data Dialog -->
|
|
247
319
|
<q-dialog v-model="showImportDialog" :persistent="true">
|
|
248
|
-
<q-card style="min-width:70vw; max-width:90vw
|
|
320
|
+
<q-card style="min-width: 70vw; max-width: 90vw">
|
|
249
321
|
<q-card-section class="text-h6">Import core data JSON</q-card-section>
|
|
250
|
-
<q-card-section
|
|
322
|
+
<q-card-section>
|
|
251
323
|
<q-btn color="primary" label="Render" @click="onImportConfirm" />
|
|
252
324
|
</q-card-section>
|
|
253
325
|
<q-card-section>
|
|
254
|
-
<q-input
|
|
326
|
+
<q-input
|
|
327
|
+
v-model="importJsonText"
|
|
328
|
+
type="textarea"
|
|
329
|
+
autogrow
|
|
330
|
+
filled
|
|
331
|
+
label="Paste JSON here"
|
|
332
|
+
/>
|
|
255
333
|
</q-card-section>
|
|
256
334
|
</q-card>
|
|
257
335
|
</q-dialog>
|
|
258
336
|
|
|
259
337
|
<!-- Render Graph Dialog (from imported core data) -->
|
|
260
338
|
<q-dialog v-model="showRenderGraph" :maximized="true" :persistent="false">
|
|
261
|
-
<render-graph
|
|
339
|
+
<render-graph
|
|
340
|
+
:core-data="renderCoreData"
|
|
341
|
+
@close="showRenderGraph = false"
|
|
342
|
+
/>
|
|
262
343
|
</q-dialog>
|
|
263
|
-
|
|
264
|
-
<div id="graph" style="width: 100%; flex: 1 1 auto; overflow: auto"></div>
|
|
265
344
|
</div>
|
|
266
345
|
|
|
267
|
-
<script
|
|
268
|
-
|
|
346
|
+
<script
|
|
347
|
+
type="text/javascript"
|
|
348
|
+
src="https://code.jquery.com/jquery-2.1.3.min.js"
|
|
349
|
+
></script>
|
|
350
|
+
<script
|
|
351
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js"
|
|
352
|
+
integrity="sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A=="
|
|
353
|
+
crossorigin="anonymous"
|
|
354
|
+
referrerpolicy="no-referrer"
|
|
355
|
+
></script>
|
|
269
356
|
<script src="https://unpkg.com/@hpcc-js/wasm@2.20.0/dist/graphviz.umd.js"></script>
|
|
270
357
|
<script src="https://unpkg.com/d3-graphviz@5.6.0/build/d3-graphviz.js"></script>
|
|
271
358
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
|
|
272
359
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-color/2.1.2/jquery.color.min.js"></script>
|
|
273
360
|
|
|
274
361
|
<!-- Add the following at the end of your body tag -->
|
|
275
|
-
<script
|
|
362
|
+
<script
|
|
363
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.5.22/vue.global.prod.min.js"
|
|
364
|
+
integrity="sha512-Y9sKU0AwzWRxKSLd2i35LuDpUdHY/E9tJrKG0mxw0qYQ75VVgGYazIUQPwKhFK9vGO3jIgAtxLiSq8GQ7PDfUg=="
|
|
365
|
+
crossorigin="anonymous"
|
|
366
|
+
referrerpolicy="no-referrer"
|
|
367
|
+
></script>
|
|
276
368
|
<script src="fastapi-voyager-static/quasar.min.js"></script>
|
|
277
369
|
<script src="fastapi-voyager-static/graphviz.svg.js"></script>
|
|
278
370
|
<!-- highlight.js minimal ES module load (python only) -->
|
|
279
|
-
<link
|
|
371
|
+
<link
|
|
372
|
+
rel="stylesheet"
|
|
373
|
+
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css"
|
|
374
|
+
/>
|
|
280
375
|
<script type="module">
|
|
281
|
-
import hljs from
|
|
282
|
-
import python from
|
|
283
|
-
hljs.registerLanguage(
|
|
376
|
+
import hljs from "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/highlight.min.js";
|
|
377
|
+
import python from "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/languages/python.min.js";
|
|
378
|
+
hljs.registerLanguage("python", python);
|
|
284
379
|
window.hljs = hljs;
|
|
285
380
|
</script>
|
|
286
381
|
<script type="module" src="fastapi-voyager-static/vue-main.js"></script>
|
fastapi_voyager/web/vue-main.js
CHANGED
|
@@ -51,6 +51,8 @@ const app = createApp({
|
|
|
51
51
|
showDetail.value = false;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
const skipNextRouteGenerate = ref(false);
|
|
55
|
+
|
|
54
56
|
function applyRoutesForTag(tagName) {
|
|
55
57
|
const tag = state.rawTags.find((t) => t.name === tagName);
|
|
56
58
|
state.routeOptions = [];
|
|
@@ -59,6 +61,7 @@ const app = createApp({
|
|
|
59
61
|
...tag.routes.map((r) => ({ label: r.name, value: r.id }))
|
|
60
62
|
);
|
|
61
63
|
}
|
|
64
|
+
skipNextRouteGenerate.value = true;
|
|
62
65
|
state.routeId = "";
|
|
63
66
|
}
|
|
64
67
|
|
|
@@ -242,7 +245,19 @@ const app = createApp({
|
|
|
242
245
|
state.schemaFullname = null;
|
|
243
246
|
state.showFields = "object";
|
|
244
247
|
state.brief = false;
|
|
245
|
-
|
|
248
|
+
onGenerate()
|
|
249
|
+
// await loadInitial();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function toggleTag(tagName, expanded = null) {
|
|
253
|
+
if (expanded === true) {
|
|
254
|
+
state.tag = tagName;
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function selectRoute(routeId) {
|
|
260
|
+
state.routeId = state.routeId === routeId ? "" : routeId;
|
|
246
261
|
}
|
|
247
262
|
|
|
248
263
|
// react to tag changes to rebuild routes
|
|
@@ -250,6 +265,40 @@ const app = createApp({
|
|
|
250
265
|
() => state.tag,
|
|
251
266
|
(val) => {
|
|
252
267
|
applyRoutesForTag(val);
|
|
268
|
+
if (!state.initializing) {
|
|
269
|
+
onGenerate();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
watch(
|
|
275
|
+
() => state.routeId,
|
|
276
|
+
() => {
|
|
277
|
+
if (skipNextRouteGenerate.value) {
|
|
278
|
+
skipNextRouteGenerate.value = false;
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (!state.initializing) {
|
|
282
|
+
onGenerate();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
);
|
|
286
|
+
|
|
287
|
+
watch(
|
|
288
|
+
() => state.showFields,
|
|
289
|
+
() => {
|
|
290
|
+
if (!state.initializing) {
|
|
291
|
+
onGenerate();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
watch(
|
|
297
|
+
() => state.brief,
|
|
298
|
+
() => {
|
|
299
|
+
if (!state.initializing) {
|
|
300
|
+
onGenerate();
|
|
301
|
+
}
|
|
253
302
|
}
|
|
254
303
|
);
|
|
255
304
|
|
|
@@ -259,6 +308,8 @@ const app = createApp({
|
|
|
259
308
|
|
|
260
309
|
return {
|
|
261
310
|
state,
|
|
311
|
+
toggleTag,
|
|
312
|
+
selectRoute,
|
|
262
313
|
onFilterTags,
|
|
263
314
|
onFilterSchemas,
|
|
264
315
|
onGenerate,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-voyager
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.4
|
|
4
4
|
Summary: Visualize FastAPI application's routing tree and dependencies
|
|
5
5
|
Project-URL: Homepage, https://github.com/allmonday/fastapi-voyager
|
|
6
6
|
Project-URL: Source, https://github.com/allmonday/fastapi-voyager
|
|
@@ -204,6 +204,9 @@ TODO: ...
|
|
|
204
204
|
## Changelog
|
|
205
205
|
|
|
206
206
|
- 0.7:
|
|
207
|
+
- 0.7.4
|
|
208
|
+
- optimize tag/route, move to left.
|
|
209
|
+
- fresh on change, no need to click generate any more.
|
|
207
210
|
- 0.7.3
|
|
208
211
|
- fix `module_color` failure
|
|
209
212
|
- 0.7.2
|
|
@@ -6,15 +6,15 @@ fastapi_voyager/render.py,sha256=rOJEKqiIAPowa3kZheRIgZMnbNzHQz9QoJM5aWUfXXs,774
|
|
|
6
6
|
fastapi_voyager/server.py,sha256=UT-fHggdqicIo5m3uUX86-XFhAVDLXpXBsBQwd1HdIg,4001
|
|
7
7
|
fastapi_voyager/type.py,sha256=nad4WNxTcZFi7Mskw6p2W7v2Gs4f0giVLNoFjZlKmbA,1778
|
|
8
8
|
fastapi_voyager/type_helper.py,sha256=f2Gy5r3Zi6a2wTkbqU9W-AkvcetajEYCfroACzcIcVY,9064
|
|
9
|
-
fastapi_voyager/version.py,sha256=
|
|
9
|
+
fastapi_voyager/version.py,sha256=NMCghBAPlnUlVUPlEosPZmDWT6Rj3IuAt-vBHqXn9BM,48
|
|
10
10
|
fastapi_voyager/voyager.py,sha256=uOQEzrs3o6UUUswvHGRKELNWYUH1ix0Z7SbzMHwm320,10709
|
|
11
11
|
fastapi_voyager/web/graph-ui.js,sha256=eEjDnJVMvk35LdRoxcqX_fZxLFS9_bUrGAZL6K2O5C0,4176
|
|
12
12
|
fastapi_voyager/web/graphviz.svg.css,sha256=zDCjjpT0Idufu5YOiZI76PL70-avP3vTyzGPh9M85Do,1563
|
|
13
13
|
fastapi_voyager/web/graphviz.svg.js,sha256=lvAdbjHc-lMSk4GQp-iqYA2PCFX4RKnW7dFaoe0LUHs,16005
|
|
14
|
-
fastapi_voyager/web/index.html,sha256=
|
|
14
|
+
fastapi_voyager/web/index.html,sha256=fHdHh0DrbWBFAiChAD2hbYKGPDupUnKFoGjSAZ5sPww,12315
|
|
15
15
|
fastapi_voyager/web/quasar.min.css,sha256=F5jQe7X2XT54VlvAaa2V3GsBFdVD-vxDZeaPLf6U9CU,203145
|
|
16
16
|
fastapi_voyager/web/quasar.min.js,sha256=h0ftyPMW_CRiyzeVfQqiup0vrVt4_QWojpqmpnpn07E,502974
|
|
17
|
-
fastapi_voyager/web/vue-main.js,sha256=
|
|
17
|
+
fastapi_voyager/web/vue-main.js,sha256=nnl5OgGdua9jysqwWXknBIjGeZV2GF2ICxxL47kpsR0,9900
|
|
18
18
|
fastapi_voyager/web/component/render-graph.js,sha256=e8Xgh2Kl-nYU0P1gstEmAepCgFnk2J6UdxW8TlMafGs,2322
|
|
19
19
|
fastapi_voyager/web/component/route-code-display.js,sha256=NECC1OGcPCdDfbghtRJEnmFM6HmH5J3win2ibapWPeA,2649
|
|
20
20
|
fastapi_voyager/web/component/schema-code-display.js,sha256=oOusgTvCaWGnoKb-NBwu0SXqJJf2PTUtp3lUczokTBM,5515
|
|
@@ -26,8 +26,8 @@ fastapi_voyager/web/icon/favicon-16x16.png,sha256=JC07jEzfIYxBIoQn_FHXvyHuxESdhW
|
|
|
26
26
|
fastapi_voyager/web/icon/favicon-32x32.png,sha256=C7v1h58cfWOsiLp9yOIZtlx-dLasBcq3NqpHVGRmpt4,1859
|
|
27
27
|
fastapi_voyager/web/icon/favicon.ico,sha256=tZolYIXkkBcFiYl1A8ksaXN2VjGamzcSdes838dLvNc,15406
|
|
28
28
|
fastapi_voyager/web/icon/site.webmanifest,sha256=ep4Hzh9zhmiZF2At3Fp1dQrYQuYF_3ZPZxc1KcGBvwQ,263
|
|
29
|
-
fastapi_voyager-0.7.
|
|
30
|
-
fastapi_voyager-0.7.
|
|
31
|
-
fastapi_voyager-0.7.
|
|
32
|
-
fastapi_voyager-0.7.
|
|
33
|
-
fastapi_voyager-0.7.
|
|
29
|
+
fastapi_voyager-0.7.4.dist-info/METADATA,sha256=y-Jzb7Z3Z2UHZT_2EMe049ZFmdkNlE-O9faqjvrcQus,7323
|
|
30
|
+
fastapi_voyager-0.7.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
31
|
+
fastapi_voyager-0.7.4.dist-info/entry_points.txt,sha256=pEIKoUnIDXEtdMBq8EmXm70m16vELIu1VPz9-TBUFWM,53
|
|
32
|
+
fastapi_voyager-0.7.4.dist-info/licenses/LICENSE,sha256=lNVRR3y_bFVoFKuK2JM8N4sFaj3m-7j29kvL3olFi5Y,1067
|
|
33
|
+
fastapi_voyager-0.7.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|