@antelopejs/dms-database 0.0.13 → 0.1.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.
Files changed (173) hide show
  1. package/README.md +30 -5
  2. package/dist/db/models/query_history.model.d.ts +1 -0
  3. package/dist/db/models/query_history.model.js +6 -0
  4. package/dist/db/models/query_history.model.js.map +1 -1
  5. package/dist/db/tables/query_history.table.d.ts +3 -0
  6. package/dist/db/tables/query_history.table.js +12 -0
  7. package/dist/db/tables/query_history.table.js.map +1 -1
  8. package/dist/db/tables/saved_queries.table.d.ts +1 -0
  9. package/dist/db/tables/saved_queries.table.js +4 -0
  10. package/dist/db/tables/saved_queries.table.js.map +1 -1
  11. package/dist/i18n/messages.d.ts +39 -0
  12. package/dist/i18n/messages.js +64 -0
  13. package/dist/i18n/messages.js.map +1 -0
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.js +1 -7
  16. package/dist/index.js.map +1 -1
  17. package/dist/module.d.ts +11 -0
  18. package/dist/module.js +55 -0
  19. package/dist/module.js.map +1 -0
  20. package/dist/pages/data.d.ts +1 -1
  21. package/dist/pages/data.js +9 -6
  22. package/dist/pages/data.js.map +1 -1
  23. package/dist/pages/diagram.d.ts +9 -0
  24. package/dist/pages/diagram.js +45 -0
  25. package/dist/pages/diagram.js.map +1 -0
  26. package/dist/pages/index.d.ts +1 -0
  27. package/dist/pages/index.js +1 -0
  28. package/dist/pages/index.js.map +1 -1
  29. package/dist/pages/overview.d.ts +4 -1
  30. package/dist/pages/overview.js +113 -6
  31. package/dist/pages/overview.js.map +1 -1
  32. package/dist/pages/query.d.ts +1 -1
  33. package/dist/pages/query.js +22 -6
  34. package/dist/pages/query.js.map +1 -1
  35. package/dist/pages/schemas.d.ts +2 -1
  36. package/dist/pages/schemas.js +143 -6
  37. package/dist/pages/schemas.js.map +1 -1
  38. package/dist/routes/data.d.ts +8 -0
  39. package/dist/routes/data.js +84 -21
  40. package/dist/routes/data.js.map +1 -1
  41. package/dist/routes/index.d.ts +1 -0
  42. package/dist/routes/index.js +1 -0
  43. package/dist/routes/index.js.map +1 -1
  44. package/dist/routes/overview.d.ts +12 -0
  45. package/dist/routes/overview.js +55 -0
  46. package/dist/routes/overview.js.map +1 -0
  47. package/dist/routes/query.d.ts +5 -1
  48. package/dist/routes/query.js +162 -27
  49. package/dist/routes/query.js.map +1 -1
  50. package/dist/routes/tables.d.ts +15 -12
  51. package/dist/routes/tables.js +95 -55
  52. package/dist/routes/tables.js.map +1 -1
  53. package/dist/service/catalog.d.ts +3 -0
  54. package/dist/service/catalog.js +26 -0
  55. package/dist/service/catalog.js.map +1 -0
  56. package/dist/service/health.d.ts +3 -3
  57. package/dist/service/health.js +17 -14
  58. package/dist/service/health.js.map +1 -1
  59. package/dist/service/introspect.d.ts +3 -1
  60. package/dist/service/introspect.js +131 -43
  61. package/dist/service/introspect.js.map +1 -1
  62. package/dist/service/overview.d.ts +9 -0
  63. package/dist/service/overview.js +113 -0
  64. package/dist/service/overview.js.map +1 -0
  65. package/dist/service/queryInspection.d.ts +15 -0
  66. package/dist/service/queryInspection.js +107 -0
  67. package/dist/service/queryInspection.js.map +1 -0
  68. package/dist/service/references.d.ts +9 -0
  69. package/dist/service/references.js +52 -0
  70. package/dist/service/references.js.map +1 -0
  71. package/dist/service/schemaFilters.d.ts +26 -0
  72. package/dist/service/schemaFilters.js +42 -0
  73. package/dist/service/schemaFilters.js.map +1 -0
  74. package/dist/service/stagedSerialization.d.ts +2 -0
  75. package/dist/service/stagedSerialization.js +38 -10
  76. package/dist/service/stagedSerialization.js.map +1 -1
  77. package/dist/service/types.d.ts +11 -1
  78. package/dist/types/constants.d.ts +2 -0
  79. package/dist/types/constants.js +3 -1
  80. package/dist/types/constants.js.map +1 -1
  81. package/dist/utils/query.d.ts +0 -2
  82. package/dist/utils/query.js +0 -20
  83. package/dist/utils/query.js.map +1 -1
  84. package/frontend-vue/app/{composables → build/composables}/useDataBrowserGrid.ts +65 -50
  85. package/frontend-vue/app/build/composables/useDataBrowserTabs.ts +366 -0
  86. package/frontend-vue/app/build/composables/useDatabaseHealth.ts +50 -0
  87. package/frontend-vue/app/build/composables/useDatabaseSchemas.ts +140 -0
  88. package/frontend-vue/app/{composables → build/composables}/useDiagramPersistence.ts +47 -39
  89. package/frontend-vue/app/build/composables/useQueryRuntime.ts +217 -0
  90. package/frontend-vue/app/build/composables/useQueryStore.ts +162 -0
  91. package/frontend-vue/app/build/data/cellValues.ts +132 -0
  92. package/frontend-vue/app/build/data/instanceOptions.ts +36 -0
  93. package/frontend-vue/app/build/data/pickerMenus.ts +175 -0
  94. package/frontend-vue/app/build/data/recentTables.ts +48 -0
  95. package/frontend-vue/app/build/data/stagedEdits.ts +117 -0
  96. package/frontend-vue/app/build/data/stagedWrites.ts +64 -0
  97. package/frontend-vue/app/build/data/useStagedSave.ts +298 -0
  98. package/frontend-vue/app/build/diagram/autosave.ts +72 -0
  99. package/frontend-vue/app/build/diagram/graph.ts +585 -0
  100. package/frontend-vue/app/build/diagram/history.ts +178 -0
  101. package/frontend-vue/app/build/diagram/shortcuts.ts +62 -0
  102. package/frontend-vue/app/build/diagram/sync.ts +137 -0
  103. package/frontend-vue/app/build/query/completion.ts +100 -0
  104. package/frontend-vue/app/build/query/csv.ts +32 -0
  105. package/frontend-vue/app/build/query/examples.ts +38 -0
  106. package/frontend-vue/app/build/query/runs.ts +168 -0
  107. package/frontend-vue/app/build/query/tableColumns.ts +35 -0
  108. package/frontend-vue/app/build/query/target.ts +143 -0
  109. package/frontend-vue/app/build/schemas/filterState.ts +128 -0
  110. package/frontend-vue/app/build/schemas/useSchemasListing.ts +62 -0
  111. package/frontend-vue/app/build/utils/databaseLinks.ts +98 -0
  112. package/frontend-vue/app/build/utils/fieldTypes.ts +198 -0
  113. package/frontend-vue/app/build/utils/relativeTime.ts +19 -0
  114. package/frontend-vue/app/{utils → build/utils}/stagedSerialization.ts +7 -1
  115. package/frontend-vue/app/components/ConnectionStatus.vue +122 -0
  116. package/frontend-vue/app/components/DataBrowser.vue +126 -0
  117. package/frontend-vue/app/components/DataBrowserSidebar.vue +293 -210
  118. package/frontend-vue/app/components/DataBrowserTabBar.vue +185 -93
  119. package/frontend-vue/app/components/DataFilterBar.vue +163 -0
  120. package/frontend-vue/app/components/DataGrid.vue +737 -499
  121. package/frontend-vue/app/components/DataGridCell.vue +125 -77
  122. package/frontend-vue/app/components/DataGridHeaderCell.vue +119 -81
  123. package/frontend-vue/app/components/DiagramNoteNode.vue +81 -63
  124. package/frontend-vue/app/components/DiagramRelationEdge.vue +57 -27
  125. package/frontend-vue/app/components/DiagramStubNode.vue +16 -17
  126. package/frontend-vue/app/components/DiagramTableNode.vue +106 -68
  127. package/frontend-vue/app/components/InstancePicker.vue +195 -0
  128. package/frontend-vue/app/components/JsonCellPanel.vue +30 -29
  129. package/frontend-vue/app/components/QueryBuilderPanel.vue +290 -238
  130. package/frontend-vue/app/components/QueryConsole.vue +726 -0
  131. package/frontend-vue/app/components/QueryLibrary.vue +314 -0
  132. package/frontend-vue/app/components/QueryResultPanel.vue +556 -126
  133. package/frontend-vue/app/components/RowDrawer.vue +520 -0
  134. package/frontend-vue/app/components/SchemaDiagram.vue +1016 -1051
  135. package/frontend-vue/app/components/SchemaPicker.vue +86 -0
  136. package/frontend-vue/app/components/SchemasFilterBar.vue +201 -0
  137. package/frontend-vue/app/components/TableInspector.vue +741 -0
  138. package/frontend-vue/app/config/shortcuts-registry.ts +65 -0
  139. package/frontend-vue/dms.frontend.ts +5 -14
  140. package/frontend-vue/i18n/locales/database-en-GB.json +526 -193
  141. package/frontend-vue/i18n/locales/database-fr-FR.json +528 -195
  142. package/frontend-vue/package.json +2 -1
  143. package/frontend-vue/pnpm-lock.yaml +2601 -858
  144. package/frontend-vue/pnpm-workspace.yaml +1 -1
  145. package/frontend-vue/tests/dataBrowser.test.ts +206 -0
  146. package/frontend-vue/tests/diagram.test.ts +516 -0
  147. package/frontend-vue/tests/helpers.test.ts +205 -0
  148. package/frontend-vue/tests/instanceOptions.test.ts +53 -0
  149. package/frontend-vue/tests/locales.test.ts +56 -0
  150. package/frontend-vue/tests/persistence.test.ts +106 -5
  151. package/frontend-vue/tests/pickerMenus.test.ts +254 -0
  152. package/frontend-vue/tests/queryConsole.test.ts +282 -0
  153. package/frontend-vue/tests/queryRuntime.test.ts +2 -2
  154. package/frontend-vue/tests/registration.test.ts +36 -25
  155. package/frontend-vue/tests/schemasFilters.test.ts +115 -0
  156. package/package.json +9 -6
  157. package/frontend-vue/app/components/QueryFavoritesPanel.vue +0 -127
  158. package/frontend-vue/app/components/QueryHistoryPanel.vue +0 -134
  159. package/frontend-vue/app/components/SchemaTableInspector.vue +0 -278
  160. package/frontend-vue/app/composables/useDataBrowserTabs.ts +0 -255
  161. package/frontend-vue/app/composables/useDatabaseHealth.ts +0 -50
  162. package/frontend-vue/app/composables/useDatabaseSchemas.ts +0 -92
  163. package/frontend-vue/app/composables/useQueryRuntime.ts +0 -118
  164. package/frontend-vue/app/composables/useQueryStore.ts +0 -117
  165. package/frontend-vue/app/composables/useTableViewRowClick.ts +0 -22
  166. package/frontend-vue/app/custom-pages/database/data.vue +0 -41
  167. package/frontend-vue/app/custom-pages/database/overview.vue +0 -367
  168. package/frontend-vue/app/custom-pages/database/query.vue +0 -436
  169. package/frontend-vue/app/custom-pages/database/schemas.vue +0 -218
  170. package/frontend-vue/app/utils/databaseFieldModifiers.ts +0 -33
  171. package/frontend-vue/app/utils/databaseFieldTypeIcons.ts +0 -224
  172. package/frontend-vue/app/utils/dmsTableView.ts +0 -83
  173. package/frontend-vue/app/utils/relativeTime.ts +0 -18
@@ -0,0 +1,12 @@
1
+ import type { User } from "@antelopejs/interface-dms/auth/db";
2
+ import type { ActivityFeedItem } from "@antelopejs/interface-dms/base/activity-feed";
3
+ import type { NavCardItem } from "@antelopejs/interface-dms/base/nav-card-grid";
4
+ import type { TopListItem } from "@antelopejs/interface-dms/base/top-list-card";
5
+ import type { ListResult } from "../types/responses";
6
+ declare const DatabaseOverviewController_base: import("@antelopejs/interface-api").ControllerClass<object>;
7
+ export declare class DatabaseOverviewController extends DatabaseOverviewController_base {
8
+ schemas(_user: User): Promise<ListResult<NavCardItem>>;
9
+ largest(_user: User): Promise<ListResult<TopListItem>>;
10
+ recentQueries(user: User): Promise<ListResult<ActivityFeedItem>>;
11
+ }
12
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DatabaseOverviewController = void 0;
16
+ const interface_api_1 = require("@antelopejs/interface-api");
17
+ const auth_1 = require("@antelopejs/interface-dms/auth");
18
+ const overview_1 = require("../service/overview");
19
+ let DatabaseOverviewController = class DatabaseOverviewController extends (0, interface_api_1.Controller)("/api/database/overview") {
20
+ async schemas(_user) {
21
+ return { items: await (0, overview_1.listSchemaCards)() };
22
+ }
23
+ async largest(_user) {
24
+ return { items: await (0, overview_1.listLargestTables)() };
25
+ }
26
+ async recentQueries(user) {
27
+ return { items: await (0, overview_1.listRecentQueries)(user._id) };
28
+ }
29
+ };
30
+ exports.DatabaseOverviewController = DatabaseOverviewController;
31
+ __decorate([
32
+ (0, interface_api_1.Get)("/schemas"),
33
+ __param(0, (0, auth_1.AuthRawUser)()),
34
+ __metadata("design:type", Function),
35
+ __metadata("design:paramtypes", [Function]),
36
+ __metadata("design:returntype", Promise)
37
+ ], DatabaseOverviewController.prototype, "schemas", null);
38
+ __decorate([
39
+ (0, interface_api_1.Get)("/largest"),
40
+ __param(0, (0, auth_1.AuthRawUser)()),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", [Function]),
43
+ __metadata("design:returntype", Promise)
44
+ ], DatabaseOverviewController.prototype, "largest", null);
45
+ __decorate([
46
+ (0, interface_api_1.Get)("/recent-queries"),
47
+ __param(0, (0, auth_1.AuthRawUser)()),
48
+ __metadata("design:type", Function),
49
+ __metadata("design:paramtypes", [Function]),
50
+ __metadata("design:returntype", Promise)
51
+ ], DatabaseOverviewController.prototype, "recentQueries", null);
52
+ exports.DatabaseOverviewController = DatabaseOverviewController = __decorate([
53
+ (0, auth_1.AuthOwnerOnly)()
54
+ ], DatabaseOverviewController);
55
+ //# sourceMappingURL=overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/routes/overview.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAA4D;AAC5D,yDAA4E;AAK5E,kDAI6B;AAKtB,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,IAAA,0BAAU,EACxD,wBAAwB,CACzB;IAEO,AAAN,KAAK,CAAC,OAAO,CAAgB,KAAW;QACtC,OAAO,EAAE,KAAK,EAAE,MAAM,IAAA,0BAAe,GAAE,EAAE,CAAC;IAC5C,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAgB,KAAW;QACtC,OAAO,EAAE,KAAK,EAAE,MAAM,IAAA,4BAAiB,GAAE,EAAE,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACF,IAAU;QAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,IAAA,4BAAiB,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,CAAC;CACF,CAAA;AAnBY,gEAA0B;AAI/B;IADL,IAAA,mBAAG,EAAC,UAAU,CAAC;IACD,WAAA,IAAA,kBAAW,GAAE,CAAA;;;;yDAE3B;AAGK;IADL,IAAA,mBAAG,EAAC,UAAU,CAAC;IACD,WAAA,IAAA,kBAAW,GAAE,CAAA;;;;yDAE3B;AAGK;IADL,IAAA,mBAAG,EAAC,iBAAiB,CAAC;IAEpB,WAAA,IAAA,kBAAW,GAAE,CAAA;;;;+DAGf;qCAlBU,0BAA0B;IADtC,IAAA,oBAAa,GAAE;GACH,0BAA0B,CAmBtC"}
@@ -1,4 +1,5 @@
1
- import type { User } from "@antelopejs/interface-dms/auth/db";
1
+ import { type User } from "@antelopejs/interface-dms/auth/db";
2
+ import { type DryRunResult } from "../service/queryInspection";
2
3
  import type { ExecuteResult, HistoryEntry, SavedQuery } from "../service/types";
3
4
  import type { ListResult, PaginatedResult, SuccessResponse } from "../types/responses";
4
5
  interface ExecuteBody {
@@ -17,10 +18,13 @@ interface SaveBody {
17
18
  declare const DatabaseQueryController_base: import("@antelopejs/interface-api").ControllerClass<object>;
18
19
  export declare class DatabaseQueryController extends DatabaseQueryController_base {
19
20
  execute(user: User, body: ExecuteBody): Promise<ExecuteResult>;
21
+ dryRun(_user: User, body: ExecuteBody): Promise<DryRunResult>;
20
22
  createSaved(user: User, body: SaveBody): Promise<SavedQuery>;
21
23
  updateSaved(user: User, id: unknown, body: SaveBody): Promise<SavedQuery>;
22
24
  listSaved(user: User, scope: unknown): Promise<ListResult<SavedQuery>>;
23
25
  deleteSaved(user: User, id: unknown): Promise<SuccessResponse>;
26
+ clearHistory(user: User): Promise<SuccessResponse>;
27
+ getHistoryEntry(user: User, id: unknown): Promise<HistoryEntry>;
24
28
  listHistory(user: User, limitRaw: unknown, offsetRaw: unknown): Promise<PaginatedResult<HistoryEntry>>;
25
29
  }
26
30
  export {};
@@ -18,12 +18,16 @@ const interface_api_util_1 = require("@antelopejs/interface-api-util");
18
18
  const interface_database_1 = require("@antelopejs/interface-database");
19
19
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
20
20
  const auth_1 = require("@antelopejs/interface-dms/auth");
21
- const db_1 = require("../db");
21
+ const db_1 = require("@antelopejs/interface-dms/auth/db");
22
+ const db_2 = require("../db");
23
+ const queryInspection_1 = require("../service/queryInspection");
22
24
  const stagedSerialization_1 = require("../service/stagedSerialization");
25
+ const constants_1 = require("../types/constants");
23
26
  const query_1 = require("../utils/query");
24
27
  const requestValidation_1 = require("../utils/requestValidation");
25
28
  const DEFAULT_HISTORY_LIMIT = 25;
26
- const MAX_HISTORY_LIMIT = 200;
29
+ const MAX_RESULT_ROWS = 1000;
30
+ const MAX_HISTORY_LIMIT = constants_1.MAX_HISTORY_PER_USER;
27
31
  const SUPPORTED_LANGUAGES = ["aql"];
28
32
  function asRecord(value) {
29
33
  (0, interface_api_util_1.assert)(typeof value === "object" && value !== null && !Array.isArray(value), 400, "Expected query to be an object");
@@ -43,9 +47,22 @@ function asSavedScope(value) {
43
47
  function asBoolean(value) {
44
48
  return value === true;
45
49
  }
50
+ function runFailure(message, durationMs) {
51
+ return new interface_api_1.HTTPResult(400, { message, durationMs });
52
+ }
46
53
  function decodeRunnable(query) {
47
- const root = (0, stagedSerialization_1.decodeStaged)(query);
48
- (0, interface_api_util_1.assert)(root instanceof interface_database_1.Query, 400, "Query must resolve to a runnable expression (Table/Selection/Stream/Datum/Query)");
54
+ let root;
55
+ try {
56
+ root = (0, stagedSerialization_1.decodeStaged)(query);
57
+ }
58
+ catch (error) {
59
+ if (error instanceof stagedSerialization_1.StagedDecodeError)
60
+ throw runFailure(error.message, 0);
61
+ throw error;
62
+ }
63
+ if (!(root instanceof interface_database_1.Query)) {
64
+ throw runFailure("Query must resolve to a runnable expression (Table/Selection/Stream/Datum/Query)", 0);
65
+ }
49
66
  return root;
50
67
  }
51
68
  function parseSaveBody(body) {
@@ -62,12 +79,17 @@ function parseSaveBody(body) {
62
79
  }
63
80
  async function getOwnedSavedQuery(id, userId) {
64
81
  const queryId = (0, requestValidation_1.asNonEmptyString)(id);
65
- const row = await (0, interface_database_decorators_1.GetModel)(db_1.SavedQueryModel).get(queryId);
82
+ const row = await (0, interface_database_decorators_1.GetModel)(db_2.SavedQueryModel).get(queryId);
66
83
  (0, interface_api_util_1.assert)(row !== undefined, 404, "Saved query not found");
67
84
  const owned = row;
68
85
  (0, interface_api_util_1.assert)(owned.userId === userId, 404, "Saved query not found");
69
86
  return owned;
70
87
  }
88
+ function toIso(value) {
89
+ return value instanceof Date
90
+ ? value.toISOString()
91
+ : new Date(value).toISOString();
92
+ }
71
93
  function toSavedWire(row) {
72
94
  return {
73
95
  id: row._id,
@@ -78,11 +100,24 @@ function toSavedWire(row) {
78
100
  source: row.source,
79
101
  language: row.language,
80
102
  shared: row.shared,
81
- createdAt: row.createdAt instanceof Date
82
- ? row.createdAt.toISOString()
83
- : new Date(row.createdAt).toISOString(),
103
+ createdAt: toIso(row.createdAt),
104
+ updatedAt: toIso(row.updatedAt ?? row.createdAt),
84
105
  };
85
106
  }
107
+ async function ownerNames(userIds) {
108
+ const users = (0, interface_database_decorators_1.GetModel)(db_1.UserModel);
109
+ const names = new Map();
110
+ for (const userId of new Set(userIds)) {
111
+ try {
112
+ const user = await users.get(userId);
113
+ if (user?.name)
114
+ names.set(userId, user.name);
115
+ }
116
+ catch {
117
+ }
118
+ }
119
+ return names;
120
+ }
86
121
  function normaliseRows(raw) {
87
122
  if (Array.isArray(raw)) {
88
123
  return raw.map((entry) => entry !== null && typeof entry === "object" && !Array.isArray(entry)
@@ -97,7 +132,7 @@ function normaliseRows(raw) {
97
132
  return [{ value: raw }];
98
133
  }
99
134
  function toHistoryWire(row) {
100
- return {
135
+ const entry = {
101
136
  id: row._id,
102
137
  userId: row.userId,
103
138
  query: row.query,
@@ -108,26 +143,60 @@ function toHistoryWire(row) {
108
143
  : new Date(row.executedAt).toISOString(),
109
144
  durationMs: row.durationMs,
110
145
  rowCount: row.rowCount,
146
+ status: row.status ?? "ok",
147
+ mutation: row.mutation ?? false,
148
+ };
149
+ if (row.error)
150
+ entry.error = row.error;
151
+ return entry;
152
+ }
153
+ function parseExecuteBody(body) {
154
+ const query = asRecord(body?.query);
155
+ return {
156
+ query,
157
+ source: (0, requestValidation_1.asNonEmptyString)(body?.source),
158
+ language: asLanguage(body?.language),
159
+ root: decodeRunnable(query),
111
160
  };
112
161
  }
162
+ function errorMessage(error) {
163
+ const message = error instanceof Error ? error.message : String(error);
164
+ return message || "Query execution failed";
165
+ }
113
166
  let DatabaseQueryController = class DatabaseQueryController extends (0, interface_api_1.Controller)("/api/database/query") {
114
167
  async execute(user, body) {
115
- const query = asRecord(body?.query);
116
- const source = (0, requestValidation_1.asNonEmptyString)(body?.source);
117
- const language = asLanguage(body?.language);
118
- const root = decodeRunnable(query);
168
+ const { query, source, language, root } = parseExecuteBody(body);
169
+ const mutation = (0, queryInspection_1.containsMutation)(root);
170
+ const historyModel = (0, interface_database_decorators_1.GetModel)(db_2.QueryHistoryModel);
119
171
  const executedAt = new Date();
120
172
  const startedAt = Date.now();
121
173
  let raw;
122
174
  try {
175
+ const unknownTarget = await (0, queryInspection_1.describeUnknownQueryTarget)((0, queryInspection_1.readQueryTarget)(root));
176
+ if (unknownTarget)
177
+ throw new Error(unknownTarget);
123
178
  raw = await root.run();
124
179
  }
125
- catch (err) {
126
- (0, interface_api_util_1.assert)(false, 400, err.message ?? "Query execution failed");
180
+ catch (error) {
181
+ const message = errorMessage(error);
182
+ const durationMs = Date.now() - startedAt;
183
+ await historyModel.addAndPrune({
184
+ userId: user._id,
185
+ query,
186
+ source,
187
+ language,
188
+ executedAt,
189
+ durationMs,
190
+ rowCount: 0,
191
+ status: "error",
192
+ mutation,
193
+ error: message,
194
+ });
195
+ throw runFailure(message, durationMs);
127
196
  }
128
197
  const durationMs = Date.now() - startedAt;
129
198
  const rows = normaliseRows(raw);
130
- const historyModel = (0, interface_database_decorators_1.GetModel)(db_1.QueryHistoryModel);
199
+ const rowCount = (0, queryInspection_1.affectedRows)(raw, rows.length, mutation);
131
200
  await historyModel.addAndPrune({
132
201
  userId: user._id,
133
202
  query,
@@ -135,21 +204,39 @@ let DatabaseQueryController = class DatabaseQueryController extends (0, interfac
135
204
  language,
136
205
  executedAt,
137
206
  durationMs,
138
- rowCount: rows.length,
207
+ rowCount,
208
+ status: "ok",
209
+ mutation,
139
210
  });
140
211
  return {
141
- rows,
212
+ rows: rows.slice(0, MAX_RESULT_ROWS),
213
+ rowCount,
214
+ truncated: rows.length > MAX_RESULT_ROWS,
215
+ mutation,
142
216
  executedAt: executedAt.toISOString(),
143
217
  durationMs,
144
218
  };
145
219
  }
220
+ async dryRun(_user, body) {
221
+ const root = decodeRunnable(asRecord(body?.query));
222
+ const unknownTarget = await (0, queryInspection_1.describeUnknownQueryTarget)((0, queryInspection_1.readQueryTarget)(root));
223
+ (0, interface_api_util_1.assert)(!unknownTarget, 400, unknownTarget ?? "");
224
+ try {
225
+ return await (0, queryInspection_1.dryRun)(root);
226
+ }
227
+ catch (error) {
228
+ (0, interface_api_util_1.assert)(false, 400, errorMessage(error));
229
+ }
230
+ }
146
231
  async createSaved(user, body) {
147
232
  const input = parseSaveBody(body);
148
- const savedModel = (0, interface_database_decorators_1.GetModel)(db_1.SavedQueryModel);
233
+ const savedModel = (0, interface_database_decorators_1.GetModel)(db_2.SavedQueryModel);
234
+ const now = new Date();
149
235
  const ids = await savedModel.insert({
150
236
  userId: user._id,
151
237
  ...input,
152
- createdAt: new Date(),
238
+ createdAt: now,
239
+ updatedAt: now,
153
240
  });
154
241
  const id = ids[0];
155
242
  (0, interface_api_util_1.assert)(id !== undefined, 500, "Failed to persist saved query");
@@ -160,27 +247,52 @@ let DatabaseQueryController = class DatabaseQueryController extends (0, interfac
160
247
  async updateSaved(user, id, body) {
161
248
  const input = parseSaveBody(body);
162
249
  const existing = await getOwnedSavedQuery(id, user._id);
163
- await (0, interface_database_decorators_1.GetModel)(db_1.SavedQueryModel).update(existing._id, input);
164
- return { ...toSavedWire(existing), ...input };
250
+ const updatedAt = new Date();
251
+ await (0, interface_database_decorators_1.GetModel)(db_2.SavedQueryModel).update(existing._id, {
252
+ ...input,
253
+ updatedAt,
254
+ });
255
+ return {
256
+ ...toSavedWire(existing),
257
+ ...input,
258
+ updatedAt: updatedAt.toISOString(),
259
+ };
165
260
  }
166
261
  async listSaved(user, scope) {
167
- const savedModel = (0, interface_database_decorators_1.GetModel)(db_1.SavedQueryModel);
168
- const rows = asSavedScope(scope) === "shared"
262
+ const savedModel = (0, interface_database_decorators_1.GetModel)(db_2.SavedQueryModel);
263
+ const shared = asSavedScope(scope) === "shared";
264
+ const rows = shared
169
265
  ? await savedModel.listShared()
170
266
  : await savedModel.listForUser(user._id);
267
+ const names = shared
268
+ ? await ownerNames(rows.map((row) => row.userId))
269
+ : new Map();
171
270
  return {
172
- items: rows.map((r) => toSavedWire(r)),
271
+ items: rows.map((row) => {
272
+ const wire = toSavedWire(row);
273
+ const ownerName = names.get(row.userId);
274
+ return ownerName ? { ...wire, ownerName } : wire;
275
+ }),
173
276
  };
174
277
  }
175
278
  async deleteSaved(user, id) {
176
279
  const existing = await getOwnedSavedQuery(id, user._id);
177
- await (0, interface_database_decorators_1.GetModel)(db_1.SavedQueryModel).delete(existing._id);
280
+ await (0, interface_database_decorators_1.GetModel)(db_2.SavedQueryModel).delete(existing._id);
281
+ return { success: true };
282
+ }
283
+ async clearHistory(user) {
284
+ await (0, interface_database_decorators_1.GetModel)(db_2.QueryHistoryModel).clearForUser(user._id);
178
285
  return { success: true };
179
286
  }
287
+ async getHistoryEntry(user, id) {
288
+ const row = await (0, interface_database_decorators_1.GetModel)(db_2.QueryHistoryModel).get((0, requestValidation_1.asNonEmptyString)(id));
289
+ (0, interface_api_util_1.assert)(row !== undefined && row.userId === user._id, 404, "History entry not found");
290
+ return toHistoryWire(row);
291
+ }
180
292
  async listHistory(user, limitRaw, offsetRaw) {
181
293
  const limit = (0, query_1.clamp)((0, query_1.parseInteger)(limitRaw, DEFAULT_HISTORY_LIMIT), 1, MAX_HISTORY_LIMIT);
182
294
  const offset = Math.max(0, (0, query_1.parseInteger)(offsetRaw, 0));
183
- const historyModel = (0, interface_database_decorators_1.GetModel)(db_1.QueryHistoryModel);
295
+ const historyModel = (0, interface_database_decorators_1.GetModel)(db_2.QueryHistoryModel);
184
296
  const { items, total } = await historyModel.listForUser(user._id, limit, offset);
185
297
  return {
186
298
  items: items.map((r) => toHistoryWire(r)),
@@ -197,6 +309,14 @@ __decorate([
197
309
  __metadata("design:paramtypes", [Function, Object]),
198
310
  __metadata("design:returntype", Promise)
199
311
  ], DatabaseQueryController.prototype, "execute", null);
312
+ __decorate([
313
+ (0, interface_api_1.Post)("/dry-run"),
314
+ __param(0, (0, auth_1.AuthRawUser)()),
315
+ __param(1, (0, interface_api_1.JSONBody)()),
316
+ __metadata("design:type", Function),
317
+ __metadata("design:paramtypes", [Function, Object]),
318
+ __metadata("design:returntype", Promise)
319
+ ], DatabaseQueryController.prototype, "dryRun", null);
200
320
  __decorate([
201
321
  (0, interface_api_1.Post)("/saved"),
202
322
  __param(0, (0, auth_1.AuthRawUser)()),
@@ -230,6 +350,21 @@ __decorate([
230
350
  __metadata("design:paramtypes", [Function, Object]),
231
351
  __metadata("design:returntype", Promise)
232
352
  ], DatabaseQueryController.prototype, "deleteSaved", null);
353
+ __decorate([
354
+ (0, interface_api_1.Delete)("/history"),
355
+ __param(0, (0, auth_1.AuthRawUser)()),
356
+ __metadata("design:type", Function),
357
+ __metadata("design:paramtypes", [Function]),
358
+ __metadata("design:returntype", Promise)
359
+ ], DatabaseQueryController.prototype, "clearHistory", null);
360
+ __decorate([
361
+ (0, interface_api_1.Get)("/history/:id"),
362
+ __param(0, (0, auth_1.AuthRawUser)()),
363
+ __param(1, (0, interface_api_1.Parameter)("id", "param")),
364
+ __metadata("design:type", Function),
365
+ __metadata("design:paramtypes", [Function, Object]),
366
+ __metadata("design:returntype", Promise)
367
+ ], DatabaseQueryController.prototype, "getHistoryEntry", null);
233
368
  __decorate([
234
369
  (0, interface_api_1.Get)("/history"),
235
370
  __param(0, (0, auth_1.AuthRawUser)()),
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/routes/query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAQmC;AACnC,uEAAwD;AACxD,uEAAuD;AACvD,6FAAqE;AACrE,yDAA4E;AAE5E,8BAKe;AACf,wEAA8D;AAY9D,0CAAqD;AACrD,kEAAwE;AAExE,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,mBAAmB,GAAoB,CAAC,KAAK,CAAC,CAAC;AAmBrD,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAA,2BAAM,EACJ,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpE,GAAG,EACH,gCAAgC,CACjC,CAAC;IACF,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,IAAI,GAAG,IAAA,4BAAQ,EAAC,KAAK,CAAC,CAAC;IAC7B,IAAA,2BAAM,EACJ,IAAI,KAAK,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAqB,CAAC,EACzE,GAAG,EACH,4BAA4B,CAC7B,CAAC;IACF,OAAO,IAAqB,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,GAAG,GAAG,IAAA,4BAAQ,EAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,MAAM,IAAI,GAAG,IAAA,kCAAY,EAAC,KAAK,CAAC,CAAC;IACjC,IAAA,2BAAM,EACJ,IAAI,YAAY,0BAAK,EACrB,GAAG,EACH,kFAAkF,CACnF,CAAC;IACF,OAAO,IAAsB,CAAC;AAChC,CAAC;AAYD,SAAS,aAAa,CAAC,IAAc;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO;QACL,IAAI,EAAE,IAAA,oCAAgB,EAAC,IAAI,EAAE,IAAI,CAAC;QAClC,WAAW,EAAE,IAAA,4BAAQ,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;QAC9C,KAAK;QACL,MAAM,EAAE,IAAA,oCAAgB,EAAC,IAAI,EAAE,MAAM,CAAC;QACtC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC;AAID,KAAK,UAAU,kBAAkB,CAC/B,EAAW,EACX,MAAc;IAEd,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,EAAE,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,IAAA,wCAAQ,EAAC,oBAAe,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,IAAA,2BAAM,EAAC,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,GAAsC,CAAC;IACrD,IAAA,2BAAM,EAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAoC;IACvD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,GAAG;QACX,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EACP,GAAG,CAAC,SAAS,YAAY,IAAI;YAC3B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;YAC7B,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAClE,CAAC,CAAE,KAAiC;YACpC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,GAA8B,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,GAAsC;IAC3D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,GAAG;QACX,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EACR,GAAG,CAAC,UAAU,YAAY,IAAI;YAC5B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;YAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QAC5C,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC;AACJ,CAAC;AAGM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,IAAA,0BAAU,EAAC,qBAAqB,CAAC;IAEtE,AAAN,KAAK,CAAC,OAAO,CACI,IAAU,EACb,IAAiB;QAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,2BAAM,EAAC,KAAK,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,IAAA,wCAAQ,EAAC,sBAAiB,CAAC,CAAC;QACjD,MAAM,YAAY,CAAC,WAAW,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,KAAK;YACL,MAAM;YACN,QAAQ;YACR,UAAU;YACV,UAAU;YACV,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;YACpC,UAAU;SACX,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACA,IAAU,EACb,IAAc;QAE1B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,IAAA,wCAAQ,EAAC,oBAAe,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;YAClC,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,GAAG,KAAK;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAA,2BAAM,EAAC,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAA,2BAAM,EAAC,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,GAAsC,CAAC,CAAC;IAC7D,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACA,IAAU,EACC,EAAW,EACzB,IAAc;QAE1B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,IAAA,wCAAQ,EAAC,oBAAe,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAM5D,OAAO,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAChD,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CACE,IAAU,EACI,KAAc;QAE3C,MAAM,UAAU,GAAG,IAAA,wCAAQ,EAAC,oBAAe,CAAC,CAAC;QAC7C,MAAM,IAAI,GACR,YAAY,CAAC,KAAK,CAAC,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE;YAC/B,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAoC,CAAC,CAAC;SAC1E,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACA,IAAU,EACC,EAAW;QAErC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,IAAA,wCAAQ,EAAC,oBAAe,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACA,IAAU,EACI,QAAiB,EAChB,SAAkB;QAEhD,MAAM,KAAK,GAAG,IAAA,aAAK,EACjB,IAAA,oBAAY,EAAC,QAAQ,EAAE,qBAAqB,CAAC,EAC7C,CAAC,EACD,iBAAiB,CAClB,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAA,oBAAY,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,IAAA,wCAAQ,EAAC,sBAAiB,CAAC,CAAC;QACjD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,CAAC,WAAW,CACrD,IAAI,CAAC,GAAG,EACR,KAAK,EACL,MAAM,CACP,CAAC;QACF,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,aAAa,CAAC,CAAsC,CAAC,CACtD;YACD,KAAK;SACN,CAAC;IACJ,CAAC;CACF,CAAA;AAhIY,0DAAuB;AAE5B;IADL,IAAA,oBAAI,EAAC,UAAU,CAAC;IAEd,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;sDAkCZ;AAGK;IADL,IAAA,oBAAI,EAAC,QAAQ,CAAC;IAEZ,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;0DAeZ;AAGK;IADL,IAAA,mBAAG,EAAC,YAAY,CAAC;IAEf,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,yBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;0DAWZ;AAGK;IADL,IAAA,mBAAG,EAAC,QAAQ,CAAC;IAEX,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,yBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;;;;wDAU7B;AAGK;IADL,IAAA,sBAAM,EAAC,YAAY,CAAC;IAElB,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,yBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;;;0DAK1B;AAGK;IADL,IAAA,mBAAG,EAAC,UAAU,CAAC;IAEb,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,yBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3B,WAAA,IAAA,yBAAS,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;;;;0DAqB9B;kCA/HU,uBAAuB;IADnC,IAAA,oBAAa,GAAE;GACH,uBAAuB,CAgInC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/routes/query.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,26 @@
1
1
  import type { User } from "@antelopejs/interface-dms/auth/db";
2
- interface TableRow {
2
+ export interface TableSourceRow {
3
3
  id: string;
4
4
  schema: string;
5
5
  name: string;
6
+ elementCount: number;
6
7
  columnCount: number;
7
8
  indexCount: number;
8
- relationCount: number;
9
- elementCount: number;
9
+ relations: string[];
10
+ modifiers: string[];
11
+ }
12
+ interface TableSourceResult {
13
+ results: TableSourceRow[];
14
+ total: number;
15
+ all: number;
16
+ }
17
+ interface InstancesResult {
18
+ instances: string[];
19
+ total: number;
10
20
  }
11
21
  declare const DatabaseTablesController_base: import("@antelopejs/interface-api").ControllerClass<object>;
12
22
  export declare class DatabaseTablesController extends DatabaseTablesController_base {
13
- list(_user: User, schemaFilter: unknown, instanceFilter: unknown, search: unknown, offsetRaw: unknown, limitRaw: unknown, sortKey: unknown, sortDirection: unknown): Promise<{
14
- results: TableRow[];
15
- total: number;
16
- offset: number;
17
- limit: number;
18
- }>;
19
- count(_user: User, schemaFilter: unknown, instanceFilter: unknown, search: unknown): Promise<{
20
- total: number;
21
- }>;
23
+ source(user: User, scope: unknown, instance: unknown, q: unknown, has: unknown): Promise<TableSourceResult>;
24
+ instances(schemaRaw: unknown, search: unknown, limitRaw: unknown): Promise<InstancesResult>;
22
25
  }
23
26
  export {};