fastapi-voyager 0.15.3__tar.gz → 0.15.4__tar.gz
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-0.15.3 → fastapi_voyager-0.15.4}/PKG-INFO +1 -1
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/docs/changelog.md +10 -1
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/server.py +4 -1
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/version.py +1 -1
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/graph-ui.js +38 -3
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/index.html +21 -9
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/store.js +26 -5
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/vue-main.js +2 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.githooks/README.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.githooks/pre-commit +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.github/workflows/publish.yml +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.gitignore +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.prettierignore +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.prettierrc +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/.python-version +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/CONTRIBUTING.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/LICENSE +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/README.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/docs/claude/0_REFACTORING_RENDER_NOTES.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/docs/idea.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/package-lock.json +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/pyproject.toml +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/release.md +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/setup-hooks.sh +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/__init__.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/cli.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/er_diagram.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/filter.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/module.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/pydantic_resolve_util.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/render.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/render_style.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/cluster.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/cluster_container.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/digraph.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/er_diagram.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/link.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/route_node.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/schema_node.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/tag_node.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/colored_text.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/pydantic_meta.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/schema_field_row.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/schema_header.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/schema_table.j2 +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/type.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/type_helper.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/voyager.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/component/demo.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/component/render-graph.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/component/route-code-display.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/component/schema-code-display.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/graphviz.svg.css +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/graphviz.svg.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/android-chrome-192x192.png +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/android-chrome-512x512.png +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/apple-touch-icon.png +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/favicon-16x16.png +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/favicon-32x32.png +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/favicon.ico +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/site.webmanifest +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/quasar.min.css +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/quasar.min.js +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/__init__.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/demo.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/demo_anno.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/programatic.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/service/__init__.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/service/schema/__init__.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/service/schema/base_entity.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/service/schema/extra.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/service/schema/schema.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_analysis.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_filter.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_generic.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_import.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_module.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_resolve_util_impl.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/tests/test_type_helper.py +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/uv.lock +0 -0
- {fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/voyager.jpg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-voyager
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.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
|
|
@@ -167,8 +167,17 @@
|
|
|
167
167
|
- [x] refactor vue-main.js, move methods to store
|
|
168
168
|
- [x] optimize search flow
|
|
169
169
|
- 0.15.4
|
|
170
|
-
- [
|
|
170
|
+
- [x] static files cache buster
|
|
171
|
+
- [x] store voyager/erd toggle value in url query string
|
|
172
|
+
- [x] set highlight style
|
|
173
|
+
|
|
174
|
+
## 0.16, enhance er diagram
|
|
175
|
+
- 0.16.0
|
|
176
|
+
- [ ] show loader name
|
|
177
|
+
- [ ] show relationship list when double click entity in er diagram
|
|
178
|
+
- [ ] highlight entity in use case
|
|
171
179
|
|
|
172
180
|
## 1.0, release
|
|
181
|
+
- [ ] add tests
|
|
173
182
|
|
|
174
183
|
|
|
@@ -19,6 +19,7 @@ WEB_DIR = Path(__file__).parent / "web"
|
|
|
19
19
|
WEB_DIR.mkdir(exist_ok=True)
|
|
20
20
|
|
|
21
21
|
GA_PLACEHOLDER = "<!-- GA_SNIPPET -->"
|
|
22
|
+
VERSION_PLACEHOLDER = "<!-- VERSION_PLACEHOLDER -->"
|
|
22
23
|
|
|
23
24
|
def _build_ga_snippet(ga_id: str | None) -> str:
|
|
24
25
|
if not ga_id:
|
|
@@ -197,7 +198,9 @@ def create_voyager(
|
|
|
197
198
|
index_file = WEB_DIR / "index.html"
|
|
198
199
|
if index_file.exists():
|
|
199
200
|
content = index_file.read_text(encoding="utf-8")
|
|
200
|
-
|
|
201
|
+
content = content.replace(GA_PLACEHOLDER, _build_ga_snippet(ga_id))
|
|
202
|
+
content = content.replace(VERSION_PLACEHOLDER, f"?v={__version__}")
|
|
203
|
+
return content
|
|
201
204
|
# fallback simple page if index.html missing
|
|
202
205
|
return """
|
|
203
206
|
<!doctype html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "0.15.
|
|
2
|
+
__version__ = "0.15.4"
|
|
@@ -69,10 +69,45 @@ export class GraphUI {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
highlightSchemaBanner(node) {
|
|
72
|
+
// Get all polygons in the node
|
|
72
73
|
const polygons = node.querySelectorAll("polygon")
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
|
|
75
|
+
// The first polygon is typically the outer frame of the entire node
|
|
76
|
+
const outerFrame = polygons[0]
|
|
77
|
+
// The second polygon is typically the title background
|
|
78
|
+
const titleBg = polygons[1]
|
|
79
|
+
|
|
80
|
+
if (outerFrame) {
|
|
81
|
+
// Save original attributes for potential restoration
|
|
82
|
+
if (!outerFrame.hasAttribute("data-original-stroke")) {
|
|
83
|
+
outerFrame.setAttribute("data-original-stroke", outerFrame.getAttribute("stroke") || "")
|
|
84
|
+
outerFrame.setAttribute(
|
|
85
|
+
"data-original-stroke-width",
|
|
86
|
+
outerFrame.getAttribute("stroke-width") || "1"
|
|
87
|
+
)
|
|
88
|
+
outerFrame.setAttribute("data-original-fill", outerFrame.getAttribute("fill") || "")
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Apply bold purple border to the outer frame
|
|
92
|
+
outerFrame.setAttribute("stroke", "#822dba")
|
|
93
|
+
outerFrame.setAttribute("stroke-width", "3.0")
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (titleBg) {
|
|
97
|
+
// Save original attributes
|
|
98
|
+
if (!titleBg.hasAttribute("data-original-stroke")) {
|
|
99
|
+
titleBg.setAttribute("data-original-stroke", titleBg.getAttribute("stroke") || "")
|
|
100
|
+
titleBg.setAttribute(
|
|
101
|
+
"data-original-stroke-width",
|
|
102
|
+
titleBg.getAttribute("stroke-width") || "1"
|
|
103
|
+
)
|
|
104
|
+
titleBg.setAttribute("data-original-fill", titleBg.getAttribute("fill") || "")
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Apply purple background to title
|
|
108
|
+
titleBg.setAttribute("fill", "#822dba")
|
|
109
|
+
// Also update the stroke to match
|
|
110
|
+
titleBg.setAttribute("stroke", "#822dba")
|
|
76
111
|
}
|
|
77
112
|
}
|
|
78
113
|
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
<head>
|
|
3
3
|
<title>FastAPI Voyager</title>
|
|
4
4
|
<meta name="theme-color" content="#ffffff" />
|
|
5
|
-
<link
|
|
6
|
-
|
|
5
|
+
<link
|
|
6
|
+
rel="stylesheet"
|
|
7
|
+
href="fastapi-voyager-static/graphviz.svg.css<!-- VERSION_PLACEHOLDER -->"
|
|
8
|
+
/>
|
|
9
|
+
<link
|
|
10
|
+
rel="stylesheet"
|
|
11
|
+
href="fastapi-voyager-static/quasar.min.css<!-- VERSION_PLACEHOLDER -->"
|
|
12
|
+
/>
|
|
7
13
|
<!-- App Icons / Favicons -->
|
|
8
14
|
<link
|
|
9
15
|
rel="apple-touch-icon"
|
|
@@ -111,8 +117,6 @@
|
|
|
111
117
|
border-radius: 50%;
|
|
112
118
|
background: #009485;
|
|
113
119
|
color: white;
|
|
114
|
-
border: 2px solid white;
|
|
115
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
116
120
|
cursor: pointer;
|
|
117
121
|
display: flex;
|
|
118
122
|
align-items: center;
|
|
@@ -284,10 +288,15 @@
|
|
|
284
288
|
aria-label="Help"
|
|
285
289
|
style="margin-right: 50px; margin-left: 20px"
|
|
286
290
|
>
|
|
287
|
-
<q-tooltip
|
|
291
|
+
<q-tooltip
|
|
292
|
+
anchor="bottom middle"
|
|
293
|
+
self="top middle"
|
|
294
|
+
:offset="[0,8]"
|
|
295
|
+
style="background-color: #f5f5f5; color: black; border: 1px solid #666"
|
|
296
|
+
>
|
|
288
297
|
<div
|
|
289
298
|
class="column items-start text-left"
|
|
290
|
-
style="line-height: 1.4; font-size:
|
|
299
|
+
style="line-height: 1.4; font-size: 14px"
|
|
291
300
|
>
|
|
292
301
|
<ul>
|
|
293
302
|
<li>scroll to zoom in/out</li>
|
|
@@ -571,7 +580,7 @@
|
|
|
571
580
|
</q-dialog>
|
|
572
581
|
</div>
|
|
573
582
|
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
|
|
574
|
-
<script src="fastapi-voyager-static/quasar.min.js"></script>
|
|
583
|
+
<script src="fastapi-voyager-static/quasar.min.js<!-- VERSION_PLACEHOLDER -->"></script>
|
|
575
584
|
<script
|
|
576
585
|
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"
|
|
577
586
|
integrity="sha512-egJ/Y+22P9NQ9aIyVCh0VCOsfydyn8eNmqBy+y2CnJG+fpRIxXMS6jbWP8tVKp0jp+NO5n8WtMUAnNnGoJKi4w=="
|
|
@@ -593,7 +602,7 @@
|
|
|
593
602
|
></script>
|
|
594
603
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
|
|
595
604
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-color/2.1.2/jquery.color.min.js"></script>
|
|
596
|
-
<script src="fastapi-voyager-static/graphviz.svg.js"></script>
|
|
605
|
+
<script src="fastapi-voyager-static/graphviz.svg.js<!-- VERSION_PLACEHOLDER -->"></script>
|
|
597
606
|
<!-- highlight.js minimal ES module load (python only) -->
|
|
598
607
|
<link
|
|
599
608
|
rel="stylesheet"
|
|
@@ -615,7 +624,10 @@
|
|
|
615
624
|
}
|
|
616
625
|
})
|
|
617
626
|
</script>
|
|
618
|
-
<script
|
|
627
|
+
<script
|
|
628
|
+
type="module"
|
|
629
|
+
src="fastapi-voyager-static/vue-main.js<!-- VERSION_PLACEHOLDER -->"
|
|
630
|
+
></script>
|
|
619
631
|
|
|
620
632
|
<!-- GA_SNIPPET -->
|
|
621
633
|
</body>
|
|
@@ -120,22 +120,23 @@ const getters = {
|
|
|
120
120
|
|
|
121
121
|
const actions = {
|
|
122
122
|
/**
|
|
123
|
-
* Read tag and
|
|
124
|
-
* @returns {{ tag: string|null, route: string|null }}
|
|
123
|
+
* Read tag, route and mode from URL query parameters
|
|
124
|
+
* @returns {{ tag: string|null, route: string|null, mode: string|null }}
|
|
125
125
|
*/
|
|
126
126
|
readQuerySelection() {
|
|
127
127
|
if (typeof window === "undefined") {
|
|
128
|
-
return { tag: null, route: null }
|
|
128
|
+
return { tag: null, route: null, mode: null }
|
|
129
129
|
}
|
|
130
130
|
const params = new URLSearchParams(window.location.search)
|
|
131
131
|
return {
|
|
132
132
|
tag: params.get("tag") || null,
|
|
133
133
|
route: params.get("route") || null,
|
|
134
|
+
mode: params.get("mode") || null,
|
|
134
135
|
}
|
|
135
136
|
},
|
|
136
137
|
|
|
137
138
|
/**
|
|
138
|
-
* Sync current tag and
|
|
139
|
+
* Sync current tag, route and mode selection to URL
|
|
139
140
|
* Updates browser URL without reloading the page
|
|
140
141
|
*/
|
|
141
142
|
syncSelectionToUrl() {
|
|
@@ -153,6 +154,12 @@ const actions = {
|
|
|
153
154
|
} else {
|
|
154
155
|
params.delete("route")
|
|
155
156
|
}
|
|
157
|
+
// Always sync mode to URL for consistency
|
|
158
|
+
if (state.mode) {
|
|
159
|
+
params.set("mode", state.mode)
|
|
160
|
+
} else {
|
|
161
|
+
params.delete("mode")
|
|
162
|
+
}
|
|
156
163
|
const hash = window.location.hash || ""
|
|
157
164
|
const search = params.toString()
|
|
158
165
|
const base = window.location.pathname
|
|
@@ -162,7 +169,7 @@ const actions = {
|
|
|
162
169
|
|
|
163
170
|
/**
|
|
164
171
|
* Apply selection from URL query parameters to state
|
|
165
|
-
* @param {{ tag: string|null, route: string|null }} selection
|
|
172
|
+
* @param {{ tag: string|null, route: string|null, mode: string|null }} selection
|
|
166
173
|
* @returns {boolean} - true if any selection was applied
|
|
167
174
|
*/
|
|
168
175
|
applySelectionFromQuery(selection) {
|
|
@@ -181,6 +188,11 @@ const actions = {
|
|
|
181
188
|
state.leftPanel._tag = inferredTag
|
|
182
189
|
}
|
|
183
190
|
}
|
|
191
|
+
// Apply mode from URL if it's valid
|
|
192
|
+
if (selection.mode === "voyager" || selection.mode === "er-diagram") {
|
|
193
|
+
state.mode = selection.mode
|
|
194
|
+
applied = true
|
|
195
|
+
}
|
|
184
196
|
return applied
|
|
185
197
|
},
|
|
186
198
|
|
|
@@ -304,6 +316,15 @@ const actions = {
|
|
|
304
316
|
return
|
|
305
317
|
} else {
|
|
306
318
|
state.config.initial_page_policy = data.initial_page_policy
|
|
319
|
+
// Check if mode was applied from URL even if tag/route wasn't
|
|
320
|
+
if (
|
|
321
|
+
querySelection.mode &&
|
|
322
|
+
(querySelection.mode === "voyager" || querySelection.mode === "er-diagram")
|
|
323
|
+
) {
|
|
324
|
+
this.syncSelectionToUrl()
|
|
325
|
+
onGenerate()
|
|
326
|
+
return
|
|
327
|
+
}
|
|
307
328
|
renderBasedOnInitialPolicy()
|
|
308
329
|
}
|
|
309
330
|
|
|
@@ -163,12 +163,14 @@ const app = createApp({
|
|
|
163
163
|
store.state.leftPanel.previousWidth = store.state.leftPanel.width
|
|
164
164
|
}
|
|
165
165
|
store.state.leftPanel.width = 0
|
|
166
|
+
store.actions.syncSelectionToUrl()
|
|
166
167
|
await renderErDiagram()
|
|
167
168
|
} else {
|
|
168
169
|
store.state.search.invisible = false
|
|
169
170
|
|
|
170
171
|
const fallbackWidth = store.state.leftPanel.previousWidth || 300
|
|
171
172
|
store.state.leftPanel.width = fallbackWidth
|
|
173
|
+
store.actions.syncSelectionToUrl()
|
|
172
174
|
await onGenerate()
|
|
173
175
|
}
|
|
174
176
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/pydantic_resolve_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/cluster.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/digraph.j2
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/er_diagram.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/route_node.j2
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/schema_node.j2
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/dot/tag_node.j2
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/colored_text.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/templates/html/schema_table.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/component/render-graph.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/apple-touch-icon.png
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/favicon-16x16.png
RENAMED
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/favicon-32x32.png
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_voyager-0.15.3 → fastapi_voyager-0.15.4}/src/fastapi_voyager/web/icon/site.webmanifest
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|