@antelopejs/dms-database 0.0.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.
Files changed (164) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +53 -0
  3. package/dist/automation/index.d.ts +2 -0
  4. package/dist/automation/index.js +13 -0
  5. package/dist/automation/index.js.map +1 -0
  6. package/dist/automation/tableWatch.d.ts +17 -0
  7. package/dist/automation/tableWatch.js +189 -0
  8. package/dist/automation/tableWatch.js.map +1 -0
  9. package/dist/config.d.ts +7 -0
  10. package/dist/config.js +12 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/db/index.d.ts +2 -0
  13. package/dist/db/index.js +19 -0
  14. package/dist/db/index.js.map +1 -0
  15. package/dist/db/models/diagram_layouts.model.d.ts +25 -0
  16. package/dist/db/models/diagram_layouts.model.js +29 -0
  17. package/dist/db/models/diagram_layouts.model.js.map +1 -0
  18. package/dist/db/models/diagram_notes.model.d.ts +23 -0
  19. package/dist/db/models/diagram_notes.model.js +15 -0
  20. package/dist/db/models/diagram_notes.model.js.map +1 -0
  21. package/dist/db/models/index.d.ts +4 -0
  22. package/dist/db/models/index.js +21 -0
  23. package/dist/db/models/index.js.map +1 -0
  24. package/dist/db/models/query_history.model.d.ts +25 -0
  25. package/dist/db/models/query_history.model.js +33 -0
  26. package/dist/db/models/query_history.model.js.map +1 -0
  27. package/dist/db/models/saved_queries.model.d.ts +24 -0
  28. package/dist/db/models/saved_queries.model.js +21 -0
  29. package/dist/db/models/saved_queries.model.js.map +1 -0
  30. package/dist/db/tables/diagram_layouts.table.d.ts +7 -0
  31. package/dist/db/tables/diagram_layouts.table.js +35 -0
  32. package/dist/db/tables/diagram_layouts.table.js.map +1 -0
  33. package/dist/db/tables/diagram_notes.table.d.ts +13 -0
  34. package/dist/db/tables/diagram_notes.table.js +59 -0
  35. package/dist/db/tables/diagram_notes.table.js.map +1 -0
  36. package/dist/db/tables/index.d.ts +4 -0
  37. package/dist/db/tables/index.js +21 -0
  38. package/dist/db/tables/index.js.map +1 -0
  39. package/dist/db/tables/query_history.table.d.ts +11 -0
  40. package/dist/db/tables/query_history.table.js +54 -0
  41. package/dist/db/tables/query_history.table.js.map +1 -0
  42. package/dist/db/tables/saved_queries.table.d.ts +12 -0
  43. package/dist/db/tables/saved_queries.table.js +58 -0
  44. package/dist/db/tables/saved_queries.table.js.map +1 -0
  45. package/dist/index.d.ts +8 -0
  46. package/dist/index.js +56 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/pages/data.d.ts +9 -0
  49. package/dist/pages/data.js +29 -0
  50. package/dist/pages/data.js.map +1 -0
  51. package/dist/pages/index.d.ts +4 -0
  52. package/dist/pages/index.js +21 -0
  53. package/dist/pages/index.js.map +1 -0
  54. package/dist/pages/overview.d.ts +9 -0
  55. package/dist/pages/overview.js +29 -0
  56. package/dist/pages/overview.js.map +1 -0
  57. package/dist/pages/query.d.ts +9 -0
  58. package/dist/pages/query.js +29 -0
  59. package/dist/pages/query.js.map +1 -0
  60. package/dist/pages/schemas.d.ts +9 -0
  61. package/dist/pages/schemas.js +29 -0
  62. package/dist/pages/schemas.js.map +1 -0
  63. package/dist/routes/data.d.ts +25 -0
  64. package/dist/routes/data.js +324 -0
  65. package/dist/routes/data.js.map +1 -0
  66. package/dist/routes/diagram.d.ts +47 -0
  67. package/dist/routes/diagram.js +200 -0
  68. package/dist/routes/diagram.js.map +1 -0
  69. package/dist/routes/health.d.ts +6 -0
  70. package/dist/routes/health.js +35 -0
  71. package/dist/routes/health.js.map +1 -0
  72. package/dist/routes/index.d.ts +6 -0
  73. package/dist/routes/index.js +23 -0
  74. package/dist/routes/index.js.map +1 -0
  75. package/dist/routes/query.d.ts +26 -0
  76. package/dist/routes/query.js +245 -0
  77. package/dist/routes/query.js.map +1 -0
  78. package/dist/routes/schemas.d.ts +8 -0
  79. package/dist/routes/schemas.js +35 -0
  80. package/dist/routes/schemas.js.map +1 -0
  81. package/dist/routes/tables.d.ts +23 -0
  82. package/dist/routes/tables.js +94 -0
  83. package/dist/routes/tables.js.map +1 -0
  84. package/dist/service/fieldDescriptor.d.ts +66 -0
  85. package/dist/service/fieldDescriptor.js +156 -0
  86. package/dist/service/fieldDescriptor.js.map +1 -0
  87. package/dist/service/health.d.ts +20 -0
  88. package/dist/service/health.js +58 -0
  89. package/dist/service/health.js.map +1 -0
  90. package/dist/service/introspect.d.ts +6 -0
  91. package/dist/service/introspect.js +312 -0
  92. package/dist/service/introspect.js.map +1 -0
  93. package/dist/service/schemaLabels.d.ts +7 -0
  94. package/dist/service/schemaLabels.js +39 -0
  95. package/dist/service/schemaLabels.js.map +1 -0
  96. package/dist/service/schemaRegistry.d.ts +2 -0
  97. package/dist/service/schemaRegistry.js +8 -0
  98. package/dist/service/schemaRegistry.js.map +1 -0
  99. package/dist/service/stagedSerialization.d.ts +6 -0
  100. package/dist/service/stagedSerialization.js +54 -0
  101. package/dist/service/stagedSerialization.js.map +1 -0
  102. package/dist/service/types.d.ts +67 -0
  103. package/dist/service/types.js +3 -0
  104. package/dist/service/types.js.map +1 -0
  105. package/dist/types/constants.d.ts +3 -0
  106. package/dist/types/constants.js +7 -0
  107. package/dist/types/constants.js.map +1 -0
  108. package/dist/types/responses.d.ts +14 -0
  109. package/dist/types/responses.js +3 -0
  110. package/dist/types/responses.js.map +1 -0
  111. package/dist/utils/query.d.ts +17 -0
  112. package/dist/utils/query.js +116 -0
  113. package/dist/utils/query.js.map +1 -0
  114. package/dist/utils/requestValidation.d.ts +2 -0
  115. package/dist/utils/requestValidation.js +14 -0
  116. package/dist/utils/requestValidation.js.map +1 -0
  117. package/frontend-vue/.editorconfig +12 -0
  118. package/frontend-vue/.prettierrc +11 -0
  119. package/frontend-vue/app/components/DataBrowserSidebar.vue +254 -0
  120. package/frontend-vue/app/components/DataBrowserTabBar.vue +166 -0
  121. package/frontend-vue/app/components/DataGrid.vue +735 -0
  122. package/frontend-vue/app/components/DataGridCell.vue +147 -0
  123. package/frontend-vue/app/components/DataGridHeaderCell.vue +175 -0
  124. package/frontend-vue/app/components/DiagramNoteNode.vue +100 -0
  125. package/frontend-vue/app/components/DiagramRelationEdge.vue +62 -0
  126. package/frontend-vue/app/components/DiagramStubNode.vue +37 -0
  127. package/frontend-vue/app/components/DiagramTableNode.vue +94 -0
  128. package/frontend-vue/app/components/JsonCellPanel.vue +93 -0
  129. package/frontend-vue/app/components/QueryBuilderPanel.vue +501 -0
  130. package/frontend-vue/app/components/QueryFavoritesPanel.vue +127 -0
  131. package/frontend-vue/app/components/QueryHistoryPanel.vue +134 -0
  132. package/frontend-vue/app/components/QueryResultPanel.vue +204 -0
  133. package/frontend-vue/app/components/SchemaDiagram.vue +1150 -0
  134. package/frontend-vue/app/components/SchemaTableInspector.vue +278 -0
  135. package/frontend-vue/app/composables/useDataBrowserGrid.ts +162 -0
  136. package/frontend-vue/app/composables/useDataBrowserTabs.ts +255 -0
  137. package/frontend-vue/app/composables/useDatabaseHealth.ts +50 -0
  138. package/frontend-vue/app/composables/useDatabaseSchemas.ts +92 -0
  139. package/frontend-vue/app/composables/useDiagramPersistence.ts +99 -0
  140. package/frontend-vue/app/composables/useQueryRuntime.ts +118 -0
  141. package/frontend-vue/app/composables/useQueryStore.ts +117 -0
  142. package/frontend-vue/app/composables/useTableViewRowClick.ts +22 -0
  143. package/frontend-vue/app/custom-pages/database/data.vue +42 -0
  144. package/frontend-vue/app/custom-pages/database/overview.vue +367 -0
  145. package/frontend-vue/app/custom-pages/database/query.vue +432 -0
  146. package/frontend-vue/app/custom-pages/database/schemas.vue +216 -0
  147. package/frontend-vue/app/utils/databaseFieldModifiers.ts +33 -0
  148. package/frontend-vue/app/utils/databaseFieldTypeIcons.ts +224 -0
  149. package/frontend-vue/app/utils/dmsTableView.ts +83 -0
  150. package/frontend-vue/app/utils/relativeTime.ts +15 -0
  151. package/frontend-vue/app/utils/stagedSerialization.ts +91 -0
  152. package/frontend-vue/dms.frontend.ts +38 -0
  153. package/frontend-vue/eslint.config.mjs +16 -0
  154. package/frontend-vue/i18n/locales/database-en-GB.json +239 -0
  155. package/frontend-vue/i18n/locales/database-fr-FR.json +239 -0
  156. package/frontend-vue/package.json +42 -0
  157. package/frontend-vue/pnpm-lock.yaml +5819 -0
  158. package/frontend-vue/pnpm-workspace.yaml +2 -0
  159. package/frontend-vue/tests/persistence.test.ts +70 -0
  160. package/frontend-vue/tests/queryRuntime.test.ts +53 -0
  161. package/frontend-vue/tests/registration.test.ts +33 -0
  162. package/frontend-vue/tsconfig.json +13 -0
  163. package/frontend-vue/vitest.config.ts +5 -0
  164. package/package.json +78 -0
@@ -0,0 +1,239 @@
1
+ {
2
+ "dms_database": {
3
+ "title": "Database",
4
+ "description": "Inspect schemas, browse data, view the schema diagram, and check connection configuration.",
5
+ "overview": {
6
+ "title": "Overview",
7
+ "description": "Connection health, storage and recent activity across your database.",
8
+ "beta": {
9
+ "title": "This module is in beta",
10
+ "body": "Today the database console is read-only — it lets you explore schemas, browse table data and run queries. In an upcoming release you'll be able to **edit tables directly**, change their structure, **add or rename columns and adjust their types**, **create and manage indexes**, define relations and constraints — all **without writing a single migration**. Antelope is actively building this; it ships alongside the **Module Builder**, the upcoming way to configure the whole platform without writing code."
11
+ },
12
+ "actions": {
13
+ "schema": "Schema",
14
+ "openData": "Open Data Browser"
15
+ },
16
+ "health": {
17
+ "connection": "Connection",
18
+ "healthy": "Healthy",
19
+ "down": "Unavailable",
20
+ "driver": "Driver",
21
+ "latency": "Latency",
22
+ "pool": "Pool",
23
+ "collections": "Collections"
24
+ },
25
+ "kpis": {
26
+ "schemas": "Schemas",
27
+ "tables": "Tables",
28
+ "rows": "Total rows",
29
+ "indexes": "Indexes",
30
+ "size": "Stored elements"
31
+ },
32
+ "storage": {
33
+ "title": "Storage by table",
34
+ "subtitle": "Top tables by row count",
35
+ "viewSchema": "View schema",
36
+ "rowsUnit": "rows",
37
+ "empty": "No tables to display."
38
+ },
39
+ "recent": {
40
+ "title": "Recent queries",
41
+ "console": "Query Console",
42
+ "rowsUnit": "rows",
43
+ "justNow": "just now",
44
+ "empty": "No recent queries yet."
45
+ },
46
+ "tables": {
47
+ "title": "Tables",
48
+ "subtitle": "All collections in the active schema",
49
+ "empty": "No tables match the current filter.",
50
+ "cols": {
51
+ "table": "Table",
52
+ "rows": "Rows",
53
+ "columns": "Columns",
54
+ "indexes": "Indexes"
55
+ }
56
+ }
57
+ },
58
+ "schemas": {
59
+ "title": "Schemas",
60
+ "description": "Explore tables as a list or a visual map. Click a table to inspect its columns, indexes and relations.",
61
+ "tableCount": "{count} table | {count} tables",
62
+ "collections": "{count} collection | {count} collections",
63
+ "selectSchema": "Schema selection",
64
+ "searchSchemaPlaceholder": "Search a schema…",
65
+ "open": "Open",
66
+ "view": {
67
+ "list": "List",
68
+ "diagram": "Diagram"
69
+ },
70
+ "cols": {
71
+ "relations": "Relations"
72
+ },
73
+ "inspector": {
74
+ "columns": "Columns",
75
+ "indexes": "Indexes",
76
+ "preview": "Preview",
77
+ "close": "Close",
78
+ "colName": "Column",
79
+ "colType": "Type",
80
+ "colNullable": "Nullable",
81
+ "yes": "Yes",
82
+ "no": "No",
83
+ "multi": "multi",
84
+ "single": "single",
85
+ "noIndexes": "No indexes defined.",
86
+ "previewError": "Could not load a sample document.",
87
+ "previewEmpty": "This table has no rows to preview.",
88
+ "healthy": "Healthy"
89
+ },
90
+ "stats": {
91
+ "tables": "Tables",
92
+ "elements": "Elements",
93
+ "instances": "Instances"
94
+ },
95
+ "menu": {
96
+ "browseData": "Browse data",
97
+ "viewInDiagram": "View in diagram",
98
+ "copyId": "Copy schema ID",
99
+ "rename": "Rename",
100
+ "duplicate": "Duplicate",
101
+ "export": "Export",
102
+ "delete": "Delete",
103
+ "comingSoon": "Coming soon",
104
+ "copied": "Schema ID copied"
105
+ },
106
+ "browseData": "Browse data",
107
+ "viewDefinition": "View definition",
108
+ "columns": {
109
+ "name": "Name",
110
+ "elementCount": "Elements",
111
+ "columnCount": "Columns",
112
+ "indexCount": "Indexes"
113
+ }
114
+ },
115
+ "data": {
116
+ "title": "Data Browser",
117
+ "description": "Browse rows from a selected schema, instance, and table.",
118
+ "instanceDefault": "Default",
119
+ "instanceCross": "All instances (read-only)",
120
+ "schema": "Schema",
121
+ "openInQuery": "Open in Query Console",
122
+ "findTable": "Find a table…",
123
+ "colCount": "{count} column | {count} columns",
124
+ "crossInstanceNotice": "Reading across every instance of this schema. Writes are disabled.",
125
+ "noColumns": "No columns to display for this table.",
126
+ "pickPrompt": "Pick a schema and a table to browse its rows.",
127
+ "searchPlaceholder": "Search rows…",
128
+ "refresh": "Refresh",
129
+ "readOnly": "Read-only",
130
+ "filtersActive": "{count} filter active | {count} filters active",
131
+ "filterModeIs": "is exactly",
132
+ "filterModeContains": "contains",
133
+ "filterApply": "Apply",
134
+ "filterClear": "Clear",
135
+ "filterTitle": "Filter {column}",
136
+ "rowsTotal": "{count} row | {count} rows",
137
+ "noRows": "No rows match the current view.",
138
+ "prevPage": "Previous page",
139
+ "nextPage": "Next page",
140
+ "editError": "Failed to save the cell",
141
+ "rowVanished": "This row no longer exists — the view was refreshed.",
142
+ "jsonPanelTitle": "Edit {column}",
143
+ "jsonInvalid": "Invalid JSON",
144
+ "jsonNotStructured": "The value must be a JSON object or array.",
145
+ "save": "Save",
146
+ "cancel": "Cancel",
147
+ "closeTab": "Close tab",
148
+ "keepTab": "Keep tab open",
149
+ "previewTab": "{name} (preview tab)"
150
+ },
151
+ "diagram": {
152
+ "title": "Diagram",
153
+ "description": "Visualization of registered schemas and their tables.",
154
+ "recomputeLayout": "Recompute layout",
155
+ "tooManyTables": "Showing {shown} of {total} tables. Use the schema filter to narrow down.",
156
+ "toolbar": {
157
+ "autoLayout": "Auto layout",
158
+ "help": "Help",
159
+ "helpText": "Automatically rearranges the schema tables with a hierarchical layout (dagre) and refits the view.",
160
+ "undo": "Undo",
161
+ "redo": "Redo",
162
+ "cancel": "Cancel",
163
+ "apply": "Apply",
164
+ "pointer": "Select",
165
+ "hand": "Pan",
166
+ "zoomIn": "Zoom in",
167
+ "zoomOut": "Zoom out",
168
+ "resetZoom": "Reset zoom",
169
+ "fitView": "Fit view",
170
+ "notes": "Note"
171
+ },
172
+ "notes": {
173
+ "placeholder": "Double-click to edit",
174
+ "delete": "Delete note"
175
+ },
176
+ "unsavedConfirm": "You have unsaved diagram changes. Leave anyway?"
177
+ },
178
+ "query": {
179
+ "title": "Query Console",
180
+ "description": "Write, run and save queries against your database with live results.",
181
+ "builder": "Query builder",
182
+ "result": "Result",
183
+ "favorites": "Saved",
184
+ "history": "Last requests",
185
+ "format": "Format",
186
+ "save": "Save",
187
+ "saveAsFavorite": "Save as favorite",
188
+ "hint": "JavaScript query builder",
189
+ "builderHintLabel": "Builder",
190
+ "backToData": "Back to Data Browser",
191
+ "clear": "Clear",
192
+ "clearHistory": "Clear",
193
+ "execute": "Run",
194
+ "table": "Table",
195
+ "json": "JSON",
196
+ "chart": "Chart",
197
+ "chartUnavailable": "No numeric column to plot.",
198
+ "emptyResult": "Run a query to see the results",
199
+ "emptyFavorites": "No saved queries yet.",
200
+ "emptyHistory": "No history yet.",
201
+ "language": "Language",
202
+ "scopeMe": "Mine",
203
+ "scopeShared": "Team",
204
+ "sharedBadge": "Shared with team",
205
+ "previous": "Previous",
206
+ "next": "Next",
207
+ "rowCount": "{count} row | {count} rows",
208
+ "runtime": "{ms} ms",
209
+ "saveModal": {
210
+ "title": "Save query",
211
+ "name": "Name",
212
+ "namePlaceholder": "Untitled query",
213
+ "description": "Description",
214
+ "descriptionPlaceholder": "Optional notes about this query",
215
+ "share": "Share with team",
216
+ "shareDescription": "Team members will see this query under the Team tab.",
217
+ "save": "Save",
218
+ "cancel": "Cancel"
219
+ },
220
+ "editModal": {
221
+ "title": "Edit query",
222
+ "query": "Query"
223
+ },
224
+ "itemMenu": {
225
+ "load": "Load in editor",
226
+ "edit": "Edit",
227
+ "delete": "Delete"
228
+ },
229
+ "errorTitle": "Query failed",
230
+ "mutationModal": {
231
+ "title": "Run mutating query?",
232
+ "body": "This query will modify data (insert, update, replace or delete). Are you sure you want to run it?",
233
+ "dontRemind": "Don't ask me again",
234
+ "confirm": "Run query",
235
+ "cancel": "Cancel"
236
+ }
237
+ }
238
+ }
239
+ }
@@ -0,0 +1,239 @@
1
+ {
2
+ "dms_database": {
3
+ "title": "Base de données",
4
+ "description": "Inspecter les schémas, parcourir les données, visualiser le diagramme et vérifier la configuration de la connexion.",
5
+ "overview": {
6
+ "title": "Vue d'ensemble",
7
+ "description": "Santé de la connexion, stockage et activité récente de votre base de données.",
8
+ "beta": {
9
+ "title": "Ce module est en bêta",
10
+ "body": "Aujourd'hui la console de base de données est en lecture seule — elle permet d'explorer les schémas, de parcourir les données et d'exécuter des requêtes. Dans une prochaine version, vous pourrez **modifier les tables directement**, changer leur structure, **ajouter ou renommer des colonnes et ajuster leurs types**, **créer et gérer des index**, définir des relations et des contraintes — le tout **sans écrire la moindre migration**. Antelope développe activement cette fonctionnalité ; elle arrivera avec le **Module Builder**, la future façon de configurer toute la plateforme sans écrire de code."
11
+ },
12
+ "actions": {
13
+ "schema": "Schéma",
14
+ "openData": "Ouvrir l'explorateur"
15
+ },
16
+ "health": {
17
+ "connection": "Connexion",
18
+ "healthy": "En bonne santé",
19
+ "down": "Indisponible",
20
+ "driver": "Pilote",
21
+ "latency": "Latence",
22
+ "pool": "Pool",
23
+ "collections": "Collections"
24
+ },
25
+ "kpis": {
26
+ "schemas": "Schémas",
27
+ "tables": "Tables",
28
+ "rows": "Lignes totales",
29
+ "indexes": "Index",
30
+ "size": "Éléments stockés"
31
+ },
32
+ "storage": {
33
+ "title": "Stockage par table",
34
+ "subtitle": "Top des tables par nombre de lignes",
35
+ "viewSchema": "Voir le schéma",
36
+ "rowsUnit": "lignes",
37
+ "empty": "Aucune table à afficher."
38
+ },
39
+ "recent": {
40
+ "title": "Requêtes récentes",
41
+ "console": "Console de requêtes",
42
+ "rowsUnit": "lignes",
43
+ "justNow": "à l'instant",
44
+ "empty": "Aucune requête récente."
45
+ },
46
+ "tables": {
47
+ "title": "Tables",
48
+ "subtitle": "Toutes les collections du schéma actif",
49
+ "empty": "Aucune table ne correspond au filtre.",
50
+ "cols": {
51
+ "table": "Table",
52
+ "rows": "Lignes",
53
+ "columns": "Colonnes",
54
+ "indexes": "Index"
55
+ }
56
+ }
57
+ },
58
+ "schemas": {
59
+ "title": "Schémas",
60
+ "description": "Explorez les tables sous forme de liste ou de carte visuelle. Cliquez sur une table pour inspecter ses colonnes, index et relations.",
61
+ "tableCount": "{count} table | {count} tables",
62
+ "collections": "{count} collection | {count} collections",
63
+ "selectSchema": "Sélection du schéma",
64
+ "searchSchemaPlaceholder": "Rechercher un schéma…",
65
+ "open": "Ouvrir",
66
+ "view": {
67
+ "list": "Liste",
68
+ "diagram": "Diagramme"
69
+ },
70
+ "cols": {
71
+ "relations": "Relations"
72
+ },
73
+ "inspector": {
74
+ "columns": "Colonnes",
75
+ "indexes": "Index",
76
+ "preview": "Aperçu",
77
+ "close": "Fermer",
78
+ "colName": "Colonne",
79
+ "colType": "Type",
80
+ "colNullable": "Nullable",
81
+ "yes": "Oui",
82
+ "no": "Non",
83
+ "multi": "multi",
84
+ "single": "simple",
85
+ "noIndexes": "Aucun index défini.",
86
+ "previewError": "Impossible de charger un document exemple.",
87
+ "previewEmpty": "Cette table n'a aucune ligne à prévisualiser.",
88
+ "healthy": "En bonne santé"
89
+ },
90
+ "stats": {
91
+ "tables": "Tables",
92
+ "elements": "Éléments",
93
+ "instances": "Instances"
94
+ },
95
+ "menu": {
96
+ "browseData": "Parcourir les données",
97
+ "viewInDiagram": "Voir dans le diagramme",
98
+ "copyId": "Copier l'identifiant",
99
+ "rename": "Renommer",
100
+ "duplicate": "Dupliquer",
101
+ "export": "Exporter",
102
+ "delete": "Supprimer",
103
+ "comingSoon": "Bientôt disponible",
104
+ "copied": "Identifiant copié"
105
+ },
106
+ "browseData": "Parcourir les données",
107
+ "viewDefinition": "Voir la définition",
108
+ "columns": {
109
+ "name": "Nom",
110
+ "elementCount": "Éléments",
111
+ "columnCount": "Colonnes",
112
+ "indexCount": "Index"
113
+ }
114
+ },
115
+ "data": {
116
+ "title": "Explorateur de données",
117
+ "description": "Parcourir les lignes d'un schéma, d'une instance et d'une table sélectionnés.",
118
+ "instanceDefault": "Par défaut",
119
+ "instanceCross": "Toutes les instances (lecture seule)",
120
+ "schema": "Schéma",
121
+ "openInQuery": "Ouvrir dans la console",
122
+ "findTable": "Rechercher une table…",
123
+ "colCount": "{count} colonne | {count} colonnes",
124
+ "crossInstanceNotice": "Lecture sur toutes les instances de ce schéma. Les écritures sont désactivées.",
125
+ "noColumns": "Aucune colonne à afficher pour cette table.",
126
+ "pickPrompt": "Sélectionnez un schéma et une table pour parcourir ses lignes.",
127
+ "searchPlaceholder": "Rechercher dans les lignes…",
128
+ "refresh": "Rafraîchir",
129
+ "readOnly": "Lecture seule",
130
+ "filtersActive": "{count} filtre actif | {count} filtres actifs",
131
+ "filterModeIs": "est exactement",
132
+ "filterModeContains": "contient",
133
+ "filterApply": "Appliquer",
134
+ "filterClear": "Effacer",
135
+ "filterTitle": "Filtrer {column}",
136
+ "rowsTotal": "{count} ligne | {count} lignes",
137
+ "noRows": "Aucune ligne ne correspond à la vue actuelle.",
138
+ "prevPage": "Page précédente",
139
+ "nextPage": "Page suivante",
140
+ "editError": "Échec de l'enregistrement de la cellule",
141
+ "rowVanished": "Cette ligne n'existe plus — la vue a été rafraîchie.",
142
+ "jsonPanelTitle": "Modifier {column}",
143
+ "jsonInvalid": "JSON invalide",
144
+ "jsonNotStructured": "La valeur doit être un objet ou un tableau JSON.",
145
+ "save": "Enregistrer",
146
+ "cancel": "Annuler",
147
+ "closeTab": "Fermer l'onglet",
148
+ "keepTab": "Garder l'onglet ouvert",
149
+ "previewTab": "{name} (onglet d'aperçu)"
150
+ },
151
+ "diagram": {
152
+ "title": "Diagramme",
153
+ "description": "Visualisation des schémas enregistrés et de leurs tables.",
154
+ "recomputeLayout": "Recalculer la disposition",
155
+ "tooManyTables": "Affichage de {shown} sur {total} tables. Utilisez le filtre de schéma pour affiner.",
156
+ "toolbar": {
157
+ "autoLayout": "Auto layout",
158
+ "help": "Aide",
159
+ "helpText": "Réorganise automatiquement les tables du schéma avec un placement hiérarchique (dagre) et recadre la vue.",
160
+ "undo": "Annuler la dernière action",
161
+ "redo": "Refaire",
162
+ "cancel": "Annuler",
163
+ "apply": "Appliquer",
164
+ "pointer": "Sélection",
165
+ "hand": "Déplacer",
166
+ "zoomIn": "Zoom avant",
167
+ "zoomOut": "Zoom arrière",
168
+ "resetZoom": "Réinitialiser le zoom",
169
+ "fitView": "Ajuster",
170
+ "notes": "Note"
171
+ },
172
+ "notes": {
173
+ "placeholder": "Double-cliquez pour modifier",
174
+ "delete": "Supprimer la note"
175
+ },
176
+ "unsavedConfirm": "Des modifications du diagramme n'ont pas été enregistrées. Quitter quand même ?"
177
+ },
178
+ "query": {
179
+ "title": "Console de requêtes",
180
+ "description": "Écrivez, exécutez et sauvegardez des requêtes sur votre base de données avec des résultats en direct.",
181
+ "builder": "Constructeur de requête",
182
+ "result": "Résultat",
183
+ "favorites": "Sauvegardées",
184
+ "history": "Dernières requêtes",
185
+ "format": "Formater",
186
+ "save": "Sauvegarder",
187
+ "saveAsFavorite": "Sauvegarder en favori",
188
+ "hint": "Constructeur de requêtes JavaScript",
189
+ "builderHintLabel": "Constructeur",
190
+ "backToData": "Retour à l'explorateur",
191
+ "clear": "Effacer",
192
+ "clearHistory": "Effacer",
193
+ "execute": "Exécuter",
194
+ "table": "Tableau",
195
+ "json": "JSON",
196
+ "chart": "Graphique",
197
+ "chartUnavailable": "Aucune colonne numérique à tracer.",
198
+ "emptyResult": "Exécutez une requête pour voir les résultats",
199
+ "emptyFavorites": "Aucune requête sauvegardée.",
200
+ "emptyHistory": "Aucun historique.",
201
+ "language": "Langage",
202
+ "scopeMe": "Moi",
203
+ "scopeShared": "Équipe",
204
+ "sharedBadge": "Partagée avec l'équipe",
205
+ "previous": "Précédent",
206
+ "next": "Suivant",
207
+ "rowCount": "{count} ligne | {count} lignes",
208
+ "runtime": "{ms} ms",
209
+ "saveModal": {
210
+ "title": "Sauvegarder la requête",
211
+ "name": "Nom",
212
+ "namePlaceholder": "Requête sans titre",
213
+ "description": "Description",
214
+ "descriptionPlaceholder": "Notes optionnelles sur cette requête",
215
+ "share": "Partager avec l'équipe",
216
+ "shareDescription": "Les membres de l'équipe verront cette requête dans l'onglet Équipe.",
217
+ "save": "Sauvegarder",
218
+ "cancel": "Annuler"
219
+ },
220
+ "editModal": {
221
+ "title": "Modifier la requête",
222
+ "query": "Requête"
223
+ },
224
+ "itemMenu": {
225
+ "load": "Charger dans l'éditeur",
226
+ "edit": "Modifier",
227
+ "delete": "Supprimer"
228
+ },
229
+ "errorTitle": "Échec de la requête",
230
+ "mutationModal": {
231
+ "title": "Exécuter une requête modifiante ?",
232
+ "body": "Cette requête va modifier des données (insert, update, replace ou delete). Voulez-vous vraiment l'exécuter ?",
233
+ "dontRemind": "Ne plus me demander",
234
+ "confirm": "Exécuter",
235
+ "cancel": "Annuler"
236
+ }
237
+ }
238
+ }
239
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@antelopejs/dms-database-frontend-vue",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "./dms.frontend.ts",
7
+ "packageManager": "pnpm@10.6.5",
8
+ "scripts": {
9
+ "dev": "pnpm --dir ../playground frontend:dev",
10
+ "build": "pnpm --dir ../playground exec ajs-dms build",
11
+ "typecheck": "pnpm --dir \"${DMS_FRONTEND_WORKSPACE:?Set DMS_FRONTEND_WORKSPACE to the generated Inertia workspace}\" typecheck",
12
+ "format": "prettier --write .",
13
+ "lint": "eslint .",
14
+ "lint:fix": "eslint . --fix",
15
+ "test": "vitest run"
16
+ },
17
+ "dependencies": {
18
+ "@antelopejs/interface-core": ">=0.0.12 <1.0.0",
19
+ "@antelopejs/interface-database": ">=0.1.7 <1.0.0",
20
+ "@codemirror/autocomplete": "^6.18.6",
21
+ "@codemirror/commands": "^6.8.1",
22
+ "@codemirror/lang-javascript": "^6.2.4",
23
+ "@codemirror/language": "^6.11.0",
24
+ "@codemirror/state": "^6.5.2",
25
+ "@codemirror/theme-one-dark": "^6.1.3",
26
+ "@codemirror/view": "^6.38.1",
27
+ "@dagrejs/dagre": "^3.0.0",
28
+ "@vue-flow/core": "^1.48.2",
29
+ "@vueuse/core": "^13.0.0",
30
+ "vue": "^3.5.18"
31
+ },
32
+ "devDependencies": {
33
+ "@nuxt/ui": "4.10.0",
34
+ "@typescript-eslint/parser": "^8.0.0",
35
+ "eslint": "^9.0.0",
36
+ "eslint-plugin-vue": "^10.0.0",
37
+ "prettier": "^3.5.3",
38
+ "prettier-plugin-tailwindcss": "^0.6.11",
39
+ "typescript": "^5.8.2",
40
+ "vitest": "^3.2.4"
41
+ }
42
+ }