admindb 1.2.0 → 2.0.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 (202) hide show
  1. package/README.md +250 -352
  2. package/dist/app.d.ts +25 -4
  3. package/dist/app.js +79 -15
  4. package/dist/app.js.map +1 -1
  5. package/dist/auth/config.d.ts +19 -0
  6. package/dist/auth/config.js +147 -0
  7. package/dist/auth/config.js.map +1 -0
  8. package/dist/auth/crypto.d.ts +27 -0
  9. package/dist/auth/crypto.js +133 -0
  10. package/dist/auth/crypto.js.map +1 -0
  11. package/dist/auth/index.d.ts +5 -0
  12. package/dist/auth/index.js +22 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/middleware.d.ts +14 -0
  15. package/dist/auth/middleware.js +100 -0
  16. package/dist/auth/middleware.js.map +1 -0
  17. package/dist/auth/routes.d.ts +7 -0
  18. package/dist/auth/routes.js +78 -0
  19. package/dist/auth/routes.js.map +1 -0
  20. package/dist/auth/types.d.ts +35 -0
  21. package/dist/auth/types.js +11 -0
  22. package/dist/auth/types.js.map +1 -0
  23. package/dist/cli/args.d.ts +45 -0
  24. package/dist/cli/args.js +328 -0
  25. package/dist/cli/args.js.map +1 -0
  26. package/dist/cli/config.d.ts +56 -0
  27. package/dist/cli/config.js +133 -0
  28. package/dist/cli/config.js.map +1 -0
  29. package/dist/cli/index.d.ts +4 -0
  30. package/dist/cli/index.js +21 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/cli/runner.d.ts +1 -0
  33. package/dist/cli/runner.js +222 -0
  34. package/dist/cli/runner.js.map +1 -0
  35. package/dist/cli.js +2 -127
  36. package/dist/cli.js.map +1 -1
  37. package/dist/data/datasets.d.ts +17 -0
  38. package/dist/data/datasets.js +133 -0
  39. package/dist/data/datasets.js.map +1 -0
  40. package/dist/data/detector.d.ts +30 -0
  41. package/dist/data/detector.js +472 -0
  42. package/dist/data/detector.js.map +1 -0
  43. package/dist/data/engine.d.ts +10 -0
  44. package/dist/data/engine.js +211 -0
  45. package/dist/data/engine.js.map +1 -0
  46. package/dist/data/index.d.ts +5 -0
  47. package/dist/data/index.js +22 -0
  48. package/dist/data/index.js.map +1 -0
  49. package/dist/data/strategies.d.ts +30 -0
  50. package/dist/data/strategies.js +343 -0
  51. package/dist/data/strategies.js.map +1 -0
  52. package/dist/data/types.d.ts +73 -0
  53. package/dist/data/types.js +8 -0
  54. package/dist/data/types.js.map +1 -0
  55. package/dist/db/database.d.ts +14 -142
  56. package/dist/db/database.js +209 -435
  57. package/dist/db/database.js.map +1 -1
  58. package/dist/db/export.d.ts +2 -2
  59. package/dist/db/export.js +7 -2
  60. package/dist/db/export.js.map +1 -1
  61. package/dist/db/filters.d.ts +22 -0
  62. package/dist/db/filters.js +158 -0
  63. package/dist/db/filters.js.map +1 -0
  64. package/dist/db/index.d.ts +8 -0
  65. package/dist/db/index.js +25 -0
  66. package/dist/db/index.js.map +1 -0
  67. package/dist/db/introspection.d.ts +6 -0
  68. package/dist/db/introspection.js +172 -0
  69. package/dist/db/introspection.js.map +1 -0
  70. package/dist/db/manager.d.ts +32 -19
  71. package/dist/db/manager.js +203 -44
  72. package/dist/db/manager.js.map +1 -1
  73. package/dist/db/migrations.d.ts +5 -0
  74. package/dist/db/migrations.js +110 -0
  75. package/dist/db/migrations.js.map +1 -0
  76. package/dist/db/postgres.d.ts +85 -0
  77. package/dist/db/postgres.js +745 -0
  78. package/dist/db/postgres.js.map +1 -0
  79. package/dist/db/types.d.ts +206 -0
  80. package/dist/db/types.js +7 -0
  81. package/dist/db/types.js.map +1 -0
  82. package/dist/index.d.ts +9 -2
  83. package/dist/index.js +46 -4
  84. package/dist/index.js.map +1 -1
  85. package/dist/public/css/app.css +1 -1
  86. package/dist/public/css/input.css +83 -13
  87. package/dist/public/js/app.js +142 -0
  88. package/dist/public/js/browse.js +591 -104
  89. package/dist/public/js/databases.js +105 -13
  90. package/dist/public/js/designer.js +40 -2
  91. package/dist/public/js/forms.js +610 -28
  92. package/dist/public/js/icons.js +51 -0
  93. package/dist/public/js/inspector.js +638 -0
  94. package/dist/public/js/query.js +93 -3
  95. package/dist/public/js/schema.js +170 -52
  96. package/dist/public/js/seed.js +1090 -0
  97. package/dist/routes/api/helpers.d.ts +42 -0
  98. package/dist/routes/api/helpers.js +133 -0
  99. package/dist/routes/api/helpers.js.map +1 -0
  100. package/dist/routes/api/import-export.d.ts +3 -0
  101. package/dist/routes/api/import-export.js +85 -0
  102. package/dist/routes/api/import-export.js.map +1 -0
  103. package/dist/routes/api/index.d.ts +4 -0
  104. package/dist/routes/api/index.js +37 -0
  105. package/dist/routes/api/index.js.map +1 -0
  106. package/dist/routes/api/query.d.ts +3 -0
  107. package/dist/routes/api/query.js +76 -0
  108. package/dist/routes/api/query.js.map +1 -0
  109. package/dist/routes/api/rows.d.ts +3 -0
  110. package/dist/routes/api/rows.js +373 -0
  111. package/dist/routes/api/rows.js.map +1 -0
  112. package/dist/routes/api/seed.d.ts +3 -0
  113. package/dist/routes/api/seed.js +82 -0
  114. package/dist/routes/api/seed.js.map +1 -0
  115. package/dist/routes/api/tables.d.ts +3 -0
  116. package/dist/routes/api/tables.js +160 -0
  117. package/dist/routes/api/tables.js.map +1 -0
  118. package/dist/routes/databases.d.ts +8 -11
  119. package/dist/routes/databases.js +100 -66
  120. package/dist/routes/databases.js.map +1 -1
  121. package/dist/routes/index.d.ts +3 -0
  122. package/dist/routes/index.js +20 -0
  123. package/dist/routes/index.js.map +1 -0
  124. package/dist/routes/pages.d.ts +3 -3
  125. package/dist/routes/pages.js +163 -54
  126. package/dist/routes/pages.js.map +1 -1
  127. package/dist/serverless.d.ts +40 -0
  128. package/dist/serverless.js +210 -0
  129. package/dist/serverless.js.map +1 -0
  130. package/dist/sql/generator.d.ts +4 -3
  131. package/dist/sql/generator.js +103 -6
  132. package/dist/sql/generator.js.map +1 -1
  133. package/dist/sql/index.d.ts +2 -0
  134. package/dist/sql/index.js +19 -0
  135. package/dist/sql/index.js.map +1 -0
  136. package/dist/types/api.d.ts +412 -0
  137. package/dist/types/api.js +9 -0
  138. package/dist/types/api.js.map +1 -0
  139. package/dist/utils/colors.d.ts +40 -0
  140. package/dist/utils/colors.js +64 -0
  141. package/dist/utils/colors.js.map +1 -0
  142. package/dist/{util.d.ts → utils/common.d.ts} +10 -6
  143. package/dist/{util.js → utils/common.js} +80 -13
  144. package/dist/utils/common.js.map +1 -0
  145. package/dist/utils/csv.js.map +1 -0
  146. package/dist/utils/datatype.d.ts +49 -0
  147. package/dist/utils/datatype.js +222 -0
  148. package/dist/utils/datatype.js.map +1 -0
  149. package/dist/utils/icons.d.ts +11 -0
  150. package/dist/utils/icons.js +72 -0
  151. package/dist/utils/icons.js.map +1 -0
  152. package/dist/utils/index.d.ts +4 -0
  153. package/dist/utils/index.js +21 -0
  154. package/dist/utils/index.js.map +1 -0
  155. package/dist/{logger.d.ts → utils/logger.d.ts} +1 -1
  156. package/dist/utils/logger.js +40 -0
  157. package/dist/utils/logger.js.map +1 -0
  158. package/dist/views/layouts/main.hbs +33 -11
  159. package/dist/views/pages/databases.hbs +182 -74
  160. package/dist/views/pages/designer.hbs +9 -6
  161. package/dist/views/pages/error.hbs +3 -3
  162. package/dist/views/pages/form.hbs +5 -3
  163. package/dist/views/pages/home.hbs +22 -13
  164. package/dist/views/pages/login.hbs +111 -0
  165. package/dist/views/pages/query.hbs +10 -8
  166. package/dist/views/pages/schema.hbs +41 -13
  167. package/dist/views/pages/seed.hbs +232 -0
  168. package/dist/views/pages/table.hbs +155 -70
  169. package/dist/views/partials/icon.hbs +2 -0
  170. package/dist/views/partials/navbar.hbs +70 -31
  171. package/dist/views/partials/sidebar.hbs +108 -99
  172. package/package.json +12 -5
  173. package/dist/args.d.ts +0 -28
  174. package/dist/args.js +0 -187
  175. package/dist/args.js.map +0 -1
  176. package/dist/config.d.ts +0 -17
  177. package/dist/config.js +0 -23
  178. package/dist/config.js.map +0 -1
  179. package/dist/csv.js.map +0 -1
  180. package/dist/logger.js +0 -25
  181. package/dist/logger.js.map +0 -1
  182. package/dist/routes/api.d.ts +0 -9
  183. package/dist/routes/api.js +0 -786
  184. package/dist/routes/api.js.map +0 -1
  185. package/dist/test/classifier.test.d.ts +0 -1
  186. package/dist/test/classifier.test.js +0 -44
  187. package/dist/test/classifier.test.js.map +0 -1
  188. package/dist/test/csv.test.d.ts +0 -1
  189. package/dist/test/csv.test.js +0 -64
  190. package/dist/test/csv.test.js.map +0 -1
  191. package/dist/test/database.test.d.ts +0 -1
  192. package/dist/test/database.test.js +0 -402
  193. package/dist/test/database.test.js.map +0 -1
  194. package/dist/test/generator.test.d.ts +0 -1
  195. package/dist/test/generator.test.js +0 -132
  196. package/dist/test/generator.test.js.map +0 -1
  197. package/dist/test/manager.test.d.ts +0 -1
  198. package/dist/test/manager.test.js +0 -146
  199. package/dist/test/manager.test.js.map +0 -1
  200. package/dist/util.js.map +0 -1
  201. /package/dist/{csv.d.ts → utils/csv.d.ts} +0 -0
  202. /package/dist/{csv.js → utils/csv.js} +0 -0
@@ -3,7 +3,7 @@
3
3
  * unit-test. Both the "run" and the "generate" (get-query) variants of every
4
4
  * mutating operation share these functions.
5
5
  */
6
- export declare const DESIGNER_TYPES: readonly ["TEXT", "INTEGER", "REAL", "BLOB", "BOOLEAN", "DATE", "DATETIME"];
6
+ export declare const DESIGNER_TYPES: readonly ["TEXT", "VARCHAR(255)", "INTEGER", "BIGINT", "SMALLINT", "SERIAL", "BIGSERIAL", "REAL", "DECIMAL(10,2)", "NUMERIC", "BOOLEAN", "DATE", "DATETIME", "TIMESTAMP", "TIMESTAMPTZ", "TIME", "INTERVAL", "JSON", "JSONB", "UUID", "BYTEA", "BLOB", "INET"];
7
7
  export type DesignerColumnType = (typeof DESIGNER_TYPES)[number];
8
8
  export interface ColumnDef {
9
9
  name: string;
@@ -34,15 +34,16 @@ export interface MappedType {
34
34
  defaultAuto?: string;
35
35
  }
36
36
  /**
37
- * Map a designer-friendly type to a real SQLite column type.
37
+ * Map a designer-friendly or custom SQL type to a real database column type.
38
38
  * DATE-style types map to a datetime column with a current-timestamp default.
39
- * Throws for unsupported types.
40
39
  */
41
40
  export declare function mapColumnType(type: string): MappedType;
42
41
  export interface RenderOptions {
43
42
  /** Constrain DDL to what `ALTER TABLE ADD COLUMN` supports. */
44
43
  forAddColumn?: boolean;
45
44
  }
45
+ /** Format a raw user-provided default value safely for SQL DDL. */
46
+ export declare function formatSqlDefault(raw: string, colType?: string): string;
46
47
  /**
47
48
  * Render a single column definition.
48
49
  * When `forAddColumn` is set, enforces SQLite's ADD COLUMN restrictions
@@ -10,6 +10,7 @@ exports.quoteIdentifier = quoteIdentifier;
10
10
  exports.escapeString = escapeString;
11
11
  exports.sqlValue = sqlValue;
12
12
  exports.mapColumnType = mapColumnType;
13
+ exports.formatSqlDefault = formatSqlDefault;
13
14
  exports.renderColumnDef = renderColumnDef;
14
15
  exports.generateCreateTable = generateCreateTable;
15
16
  exports.generateAddColumn = generateAddColumn;
@@ -21,7 +22,31 @@ exports.generateCreateIndex = generateCreateIndex;
21
22
  exports.generateDropIndex = generateDropIndex;
22
23
  exports.generateInsert = generateInsert;
23
24
  exports.generateUpdate = generateUpdate;
24
- exports.DESIGNER_TYPES = ['TEXT', 'INTEGER', 'REAL', 'BLOB', 'BOOLEAN', 'DATE', 'DATETIME'];
25
+ exports.DESIGNER_TYPES = [
26
+ 'TEXT',
27
+ 'VARCHAR(255)',
28
+ 'INTEGER',
29
+ 'BIGINT',
30
+ 'SMALLINT',
31
+ 'SERIAL',
32
+ 'BIGSERIAL',
33
+ 'REAL',
34
+ 'DECIMAL(10,2)',
35
+ 'NUMERIC',
36
+ 'BOOLEAN',
37
+ 'DATE',
38
+ 'DATETIME',
39
+ 'TIMESTAMP',
40
+ 'TIMESTAMPTZ',
41
+ 'TIME',
42
+ 'INTERVAL',
43
+ 'JSON',
44
+ 'JSONB',
45
+ 'UUID',
46
+ 'BYTEA',
47
+ 'BLOB',
48
+ 'INET',
49
+ ];
25
50
  const IDENTIFIER_RE = /^[A-Za-z_][A-Za-z0-9_$]*$/;
26
51
  /** Quote an SQL identifier (table/column name), escaping embedded double quotes. */
27
52
  function quoteIdentifier(identifier) {
@@ -48,29 +73,78 @@ function sqlValue(value) {
48
73
  return escapeString(String(value));
49
74
  }
50
75
  /**
51
- * Map a designer-friendly type to a real SQLite column type.
76
+ * Map a designer-friendly or custom SQL type to a real database column type.
52
77
  * DATE-style types map to a datetime column with a current-timestamp default.
53
- * Throws for unsupported types.
54
78
  */
55
79
  function mapColumnType(type) {
56
- const t = String(type).trim().toUpperCase();
80
+ const t = String(type ?? '').trim().toUpperCase();
81
+ if (!t)
82
+ return { sqlType: 'TEXT' };
57
83
  switch (t) {
58
84
  case 'INTEGER':
85
+ case 'INT':
86
+ case 'TINYINT':
59
87
  return { sqlType: 'INTEGER' };
88
+ case 'BIGINT':
89
+ case 'SMALLINT':
90
+ case 'SERIAL':
91
+ case 'BIGSERIAL':
92
+ case 'SMALLSERIAL':
93
+ return { sqlType: t };
60
94
  case 'TEXT':
95
+ case 'VARCHAR':
96
+ case 'CHAR':
97
+ case 'CLOB':
98
+ case 'STRING':
99
+ case 'CITEXT':
61
100
  return { sqlType: 'TEXT' };
62
101
  case 'REAL':
102
+ case 'FLOAT':
103
+ case 'DOUBLE':
104
+ case 'DECIMAL':
105
+ case 'NUMERIC':
106
+ case 'NUMBER':
107
+ case 'MONEY':
63
108
  return { sqlType: 'REAL' };
64
109
  case 'BLOB':
110
+ case 'BINARY':
111
+ case 'VARBINARY':
65
112
  return { sqlType: 'BLOB' };
113
+ case 'BYTEA':
114
+ return { sqlType: 'BYTEA' };
66
115
  case 'BOOLEAN':
116
+ case 'BOOL':
67
117
  return { sqlType: 'INTEGER' };
68
118
  case 'DATE':
69
119
  return { sqlType: 'DATETIME', defaultAuto: 'CURRENT_TIMESTAMP' };
70
120
  case 'DATETIME':
71
121
  return { sqlType: 'DATETIME' };
122
+ case 'TIMESTAMP':
123
+ case 'TIMESTAMPTZ':
124
+ case 'TIMESTAMP WITHOUT TIME ZONE':
125
+ case 'TIMESTAMP WITH TIME ZONE':
126
+ return { sqlType: t };
127
+ case 'TIME':
128
+ case 'TIMETZ':
129
+ case 'TIME WITHOUT TIME ZONE':
130
+ case 'TIME WITH TIME ZONE':
131
+ return { sqlType: t };
132
+ case 'INTERVAL':
133
+ case 'JSON':
134
+ case 'JSONB':
135
+ case 'UUID':
136
+ case 'INET':
137
+ case 'CIDR':
138
+ case 'MACADDR':
139
+ case 'SERIAL':
140
+ case 'BIGSERIAL':
141
+ case 'SMALLSERIAL':
142
+ return { sqlType: t };
72
143
  default:
73
- throw new Error(`Unsupported column type: "${type}". Supported types: ${exports.DESIGNER_TYPES.join(', ')}`);
144
+ if (/^[A-Za-z0-9_(),\s\[\]]+$/.test(t)) {
145
+ return { sqlType: t };
146
+ }
147
+ throw new Error(`Unsupported column type: "${type}". Supported types include: ${exports.DESIGNER_TYPES.join(', ')} or standard SQL types.`);
74
148
  }
75
149
  }
76
150
  function validateIdentifier(kind, name) {
@@ -82,6 +156,29 @@ function validateIdentifier(kind, name) {
82
156
  throw new Error(`Invalid ${label.toLowerCase()} name: "${trimmed}". Use letters, digits and underscores.`);
83
157
  }
84
158
  }
159
+ /** Format a raw user-provided default value safely for SQL DDL. */
160
+ function formatSqlDefault(raw, colType) {
161
+ const s = String(raw ?? '').trim().replace(/;/g, '');
162
+ if (!s)
163
+ return '';
164
+ if (/^null$/i.test(s))
165
+ return 'NULL';
166
+ if (/^[-+]?\d+(\.\d+)?$/.test(s))
167
+ return s;
168
+ if (/^(true|false)$/i.test(s))
169
+ return s.toUpperCase() === 'TRUE' ? '1' : '0';
170
+ if (/^'.*'$/s.test(s) || /^".*"$/s.test(s))
171
+ return s;
172
+ if (/^[a-zA-Z_]\w*\s*\(.*\)$/s.test(s))
173
+ return s;
174
+ if (/^CURRENT_TIMESTAMP|CURRENT_DATE|CURRENT_TIME$/i.test(s))
175
+ return s.toUpperCase();
176
+ const t = (colType || '').toUpperCase();
177
+ if (t.includes('TEXT') || t.includes('CHAR') || t.includes('CLOB') || t.includes('VARCHAR') || t.includes('STRING')) {
178
+ return escapeString(s);
179
+ }
180
+ return s;
181
+ }
85
182
  /**
86
183
  * Render a single column definition.
87
184
  * When `forAddColumn` is set, enforces SQLite's ADD COLUMN restrictions
@@ -106,7 +203,7 @@ function renderColumnDef(col, opts = {}) {
106
203
  def += ' NOT NULL';
107
204
  if (!opts.forAddColumn && col.unique)
108
205
  def += ' UNIQUE';
109
- const rawDefault = String(col.defaultValue ?? '').trim().replace(/;/g, '');
206
+ const rawDefault = formatSqlDefault(String(col.defaultValue ?? ''), col.type);
110
207
  const dflt = rawDefault || mapped.defaultAuto || '';
111
208
  if (dflt)
112
209
  def += ` DEFAULT ${dflt}`;
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/sql/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/sql/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './classifier';
2
+ export * from './generator';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./classifier"), exports);
18
+ __exportStar(require("./generator"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B"}
@@ -0,0 +1,412 @@
1
+ /**
2
+ * AdminDB — Strongly typed API request and response interfaces.
3
+ *
4
+ * Every REST API endpoint returns a standardized envelope:
5
+ * `{ success: true, data: T }` on success, or `{ success: false, error: string }` on failure.
6
+ */
7
+ import type { ColumnInfo, ForeignKeyInfo, IndexInfo, SavedQuery, SchemaInfo, TableInfoData, TableListItem, WhereClause, RowFilters } from '../db/database';
8
+ import type { DatabaseEntry } from '../db/manager';
9
+ import type { ColumnDef, IndexDef } from '../sql/generator';
10
+ import type { ColumnGeneratorConfig, ColumnPlan, GeneratorStrategyId, StrategyDescriptor, StrategyCategory } from '../data/index';
11
+ export type { ColumnInfo, ForeignKeyInfo, IndexInfo, SavedQuery, SchemaInfo, TableInfoData, TableListItem, WhereClause, RowFilters, ColumnDef, IndexDef, ColumnGeneratorConfig, ColumnPlan, GeneratorStrategyId, StrategyDescriptor, StrategyCategory, };
12
+ /** Successful API response container. */
13
+ export interface ApiSuccessResponse<T = unknown> {
14
+ success: true;
15
+ data: T;
16
+ }
17
+ /** Error API response container. */
18
+ export interface ApiErrorResponse<T = unknown> {
19
+ success: false;
20
+ error: string;
21
+ data?: T;
22
+ }
23
+ /** Discriminated union of all API responses. */
24
+ export type ApiResponse<T = unknown> = ApiSuccessResponse<T> | ApiErrorResponse<T>;
25
+ /** GET /api/tables */
26
+ export type ListTablesResponseData = TableListItem[];
27
+ export type ListTablesResponse = ApiResponse<ListTablesResponseData>;
28
+ /** GET /api/tables/:table/info */
29
+ export type TableInfoResponseData = TableInfoData;
30
+ export type TableInfoResponse = ApiResponse<TableInfoResponseData>;
31
+ /** GET /api/tables/:table/fk-options */
32
+ export type FkOptionsResponseData = Record<string, {
33
+ value: unknown;
34
+ label: string;
35
+ }[]>;
36
+ export type FkOptionsResponse = ApiResponse<FkOptionsResponseData>;
37
+ /** GET /api/tables/:table/rows */
38
+ export interface GetRowsResponseData {
39
+ rows: Record<string, unknown>[];
40
+ count: number;
41
+ page: number;
42
+ limit: number;
43
+ filters: RowFilters;
44
+ }
45
+ export type GetRowsResponse = ApiResponse<GetRowsResponseData>;
46
+ /** GET /api/tables/:table/row/:id */
47
+ export type GetRowResponseData = Record<string, unknown>;
48
+ export type GetRowResponse = ApiResponse<GetRowResponseData>;
49
+ /** GET /api/tables/:table/rows/:id/references */
50
+ export interface RowReferenceGroup {
51
+ table: string;
52
+ from: string;
53
+ to: string;
54
+ value: unknown;
55
+ count: number;
56
+ columns: string[];
57
+ rows: Record<string, unknown>[];
58
+ }
59
+ export interface GetRowReferencesResponseData {
60
+ references: RowReferenceGroup[];
61
+ }
62
+ export type GetRowReferencesResponse = ApiResponse<GetRowReferencesResponseData>;
63
+ /** POST /api/tables/:table/rows */
64
+ export interface InsertRowRequestBody {
65
+ values: Record<string, unknown>;
66
+ }
67
+ export interface InsertRowResponseData {
68
+ message: string;
69
+ rowId?: number | bigint;
70
+ sql: string;
71
+ }
72
+ export type InsertRowResponse = ApiResponse<InsertRowResponseData>;
73
+ /** POST /api/tables/:table/rows/generate */
74
+ export interface GenerateInsertRequestBody {
75
+ values: Record<string, unknown>;
76
+ }
77
+ export interface GenerateInsertResponseData {
78
+ sql: string;
79
+ }
80
+ export type GenerateInsertResponse = ApiResponse<GenerateInsertResponseData>;
81
+ /** POST /api/tables/:table/rows/import */
82
+ export interface ImportCsvRequestBody {
83
+ csv: string;
84
+ }
85
+ export interface ImportCsvResponseData {
86
+ message: string;
87
+ inserted?: number;
88
+ skipped?: number;
89
+ }
90
+ export type ImportCsvResponse = ApiResponse<ImportCsvResponseData>;
91
+ /** PUT /api/tables/:table/row/:id */
92
+ export interface UpdateRowRequestBody {
93
+ values: Record<string, unknown>;
94
+ nulls?: string[];
95
+ }
96
+ export interface UpdateRowResponseData {
97
+ message: string;
98
+ sql: string;
99
+ }
100
+ export type UpdateRowResponse = ApiResponse<UpdateRowResponseData>;
101
+ /** PUT /api/tables/:table/row/:id/generate */
102
+ export interface GenerateUpdateRequestBody {
103
+ values: Record<string, unknown>;
104
+ nulls?: string[];
105
+ }
106
+ export interface GenerateUpdateResponseData {
107
+ sql: string;
108
+ }
109
+ export type GenerateUpdateResponse = ApiResponse<GenerateUpdateResponseData>;
110
+ /** DELETE /api/tables/:table/row/:id */
111
+ export interface DeleteRowResponseData {
112
+ message: string;
113
+ }
114
+ export type DeleteRowResponse = ApiResponse<DeleteRowResponseData>;
115
+ /** GET /api/tables/:table/row/:id/blob/:column/meta */
116
+ export interface BlobMetaResponseData {
117
+ isNull: boolean;
118
+ mime?: string;
119
+ ext?: string;
120
+ isImage?: boolean;
121
+ isText?: boolean;
122
+ isPdf?: boolean;
123
+ isAudio?: boolean;
124
+ isVideo?: boolean;
125
+ size: number;
126
+ sizeFormatted: string;
127
+ hexDump?: {
128
+ lines: {
129
+ offset: string;
130
+ hex: string;
131
+ ascii: string;
132
+ }[];
133
+ totalBytes: number;
134
+ truncated: boolean;
135
+ };
136
+ textPreview?: string | null;
137
+ }
138
+ export type BlobMetaResponse = ApiResponse<BlobMetaResponseData>;
139
+ /** PUT /api/tables/:table/row/:id/blob/:column */
140
+ export interface UpdateBlobRequestBody {
141
+ data: string;
142
+ format?: 'base64' | 'hex' | 'text';
143
+ }
144
+ export interface UpdateBlobResponseData {
145
+ message: string;
146
+ size: number;
147
+ }
148
+ export type UpdateBlobResponse = ApiResponse<UpdateBlobResponseData>;
149
+ /** GET /api/tables/:table/ddl */
150
+ export interface TableDdlResponseData {
151
+ table: string;
152
+ ddl: string;
153
+ }
154
+ export type TableDdlResponse = ApiResponse<TableDdlResponseData>;
155
+ /** POST /api/tables/:table/rows/bulk-impact */
156
+ export interface BulkImpactRequestBody {
157
+ ids: (string | number)[];
158
+ }
159
+ export interface BulkImpactReference {
160
+ table: string;
161
+ from: string;
162
+ to: string;
163
+ count: number;
164
+ }
165
+ export interface BulkImpactResponseData {
166
+ selected: number;
167
+ references: BulkImpactReference[];
168
+ total: number;
169
+ }
170
+ export type BulkImpactResponse = ApiResponse<BulkImpactResponseData>;
171
+ /** POST /api/tables/:table/rows/bulk-delete */
172
+ export interface BulkDeleteRequestBody {
173
+ ids: (string | number)[];
174
+ confirmImpact?: boolean;
175
+ }
176
+ export interface BulkDeleteResponseData {
177
+ message: string;
178
+ deleted: number;
179
+ }
180
+ export type BulkDeleteResponse = ApiResponse<BulkDeleteResponseData>;
181
+ /** POST /api/tables/:table/rows/bulk-export */
182
+ export interface BulkExportRequestBody {
183
+ ids: (string | number)[];
184
+ format?: 'csv' | 'json';
185
+ }
186
+ export interface BulkExportResponseData {
187
+ format: string;
188
+ filename: string;
189
+ content: string;
190
+ rowCount: number;
191
+ }
192
+ export type BulkExportResponse = ApiResponse<BulkExportResponseData>;
193
+ /** POST /api/tables/:table/rows/bulk-update */
194
+ export interface BulkUpdateItem {
195
+ id: string | number;
196
+ values?: Record<string, unknown>;
197
+ nulls?: string[];
198
+ }
199
+ export interface BulkUpdateRequestBody {
200
+ updates: BulkUpdateItem[];
201
+ }
202
+ export interface BulkUpdateResponseData {
203
+ message: string;
204
+ updated: number;
205
+ }
206
+ export type BulkUpdateResponse = ApiResponse<BulkUpdateResponseData>;
207
+ /** GET /api/tables/:table/seed/config */
208
+ export interface SeedConfigResponseData {
209
+ table: string;
210
+ columns: ColumnGeneratorConfig[];
211
+ maxRows: number;
212
+ }
213
+ export type SeedConfigResponse = ApiResponse<SeedConfigResponseData>;
214
+ /** POST /api/tables/:table/seed/generate */
215
+ export interface SeedGenerateRequestBody {
216
+ count?: number;
217
+ plan?: Record<string, ColumnPlan>;
218
+ }
219
+ export interface SeedGenerateResponseData {
220
+ table: string;
221
+ count: number;
222
+ sql: string;
223
+ previewRows?: Record<string, unknown>[];
224
+ warnings: string[];
225
+ }
226
+ export type SeedGenerateResponse = ApiResponse<SeedGenerateResponseData>;
227
+ /** POST /api/tables/:table/seed */
228
+ export interface SeedInsertRequestBody {
229
+ count?: number;
230
+ plan?: Record<string, ColumnPlan>;
231
+ truncate?: boolean;
232
+ }
233
+ export interface SeedInsertResponseData {
234
+ message: string;
235
+ inserted: number;
236
+ skipped: number;
237
+ warnings: string[];
238
+ elapsedMs?: number;
239
+ }
240
+ export type SeedInsertResponse = ApiResponse<SeedInsertResponseData>;
241
+ /** POST /api/tables */
242
+ export interface CreateTableRequestBody {
243
+ name: string;
244
+ columns: ColumnDef[];
245
+ }
246
+ export interface CreateTableResponseData {
247
+ message: string;
248
+ sql: string;
249
+ }
250
+ export type CreateTableResponse = ApiResponse<CreateTableResponseData>;
251
+ /** POST /api/tables/generate */
252
+ export interface GenerateCreateTableRequestBody {
253
+ name: string;
254
+ columns: ColumnDef[];
255
+ }
256
+ export interface GenerateCreateTableResponseData {
257
+ sql: string;
258
+ }
259
+ export type GenerateCreateTableResponse = ApiResponse<GenerateCreateTableResponseData>;
260
+ /** GET /api/tables/:table/schema */
261
+ export type GetSchemaResponseData = SchemaInfo;
262
+ export type GetSchemaResponse = ApiResponse<GetSchemaResponseData>;
263
+ /** POST /api/tables/:table/rename */
264
+ export interface RenameTableRequestBody {
265
+ name: string;
266
+ }
267
+ export interface RenameTableResponseData {
268
+ message: string;
269
+ sql: string;
270
+ table: string;
271
+ }
272
+ export type RenameTableResponse = ApiResponse<RenameTableResponseData>;
273
+ /** POST /api/tables/:table/columns */
274
+ export interface AddColumnRequestBody {
275
+ column: ColumnDef;
276
+ }
277
+ export interface AddColumnResponseData {
278
+ message: string;
279
+ sql: string;
280
+ }
281
+ export type AddColumnResponse = ApiResponse<AddColumnResponseData>;
282
+ /** PUT /api/tables/:table/columns/:column */
283
+ export interface RenameColumnRequestBody {
284
+ name: string;
285
+ }
286
+ export interface RenameColumnResponseData {
287
+ message: string;
288
+ sql: string;
289
+ }
290
+ export type RenameColumnResponse = ApiResponse<RenameColumnResponseData>;
291
+ /** DELETE /api/tables/:table/columns/:column */
292
+ export interface DropColumnResponseData {
293
+ message: string;
294
+ sql: string;
295
+ }
296
+ export type DropColumnResponse = ApiResponse<DropColumnResponseData>;
297
+ /** DELETE /api/tables/:table */
298
+ export interface DropTableResponseData {
299
+ message: string;
300
+ sql: string;
301
+ }
302
+ export type DropTableResponse = ApiResponse<DropTableResponseData>;
303
+ /** POST /api/tables/:table/indexes */
304
+ export interface CreateIndexRequestBody {
305
+ name?: string;
306
+ columns: string[];
307
+ unique?: boolean;
308
+ }
309
+ export interface CreateIndexResponseData {
310
+ message: string;
311
+ sql: string;
312
+ }
313
+ export type CreateIndexResponse = ApiResponse<CreateIndexResponseData>;
314
+ /** DELETE /api/tables/:table/indexes/:index */
315
+ export interface DropIndexResponseData {
316
+ message: string;
317
+ sql: string;
318
+ }
319
+ export type DropIndexResponse = ApiResponse<DropIndexResponseData>;
320
+ /** POST /api/query request */
321
+ export interface ExecuteQueryRequestBody {
322
+ sql: string;
323
+ }
324
+ /** Result when SQL is classified as COUNT */
325
+ export interface QueryCountResult {
326
+ kind: 'count';
327
+ count: number;
328
+ message: string;
329
+ }
330
+ /** Result when SQL is classified as SELECT / READ */
331
+ export interface QuerySelectResult {
332
+ kind: 'select';
333
+ columns: string[];
334
+ rows: Record<string, unknown>[];
335
+ }
336
+ /** Result when SQL is a write statement (INSERT, UPDATE, DELETE, DDL, Script) */
337
+ export interface QueryWriteResult {
338
+ kind: 'write';
339
+ changes: number | null;
340
+ message: string;
341
+ }
342
+ /** Discriminated union of all query results */
343
+ export type ExecuteQueryResponseData = QueryCountResult | QuerySelectResult | QueryWriteResult;
344
+ export type ExecuteQueryResponse = ApiResponse<ExecuteQueryResponseData>;
345
+ /** POST /api/query/export */
346
+ export interface ExportQueryRequestBody {
347
+ sql: string;
348
+ format?: 'csv' | 'json';
349
+ }
350
+ /** GET /api/queries */
351
+ export type ListSavedQueriesResponseData = SavedQuery[];
352
+ export type ListSavedQueriesResponse = ApiResponse<ListSavedQueriesResponseData>;
353
+ /** POST /api/queries */
354
+ export interface SaveQueryRequestBody {
355
+ name: string;
356
+ sql: string;
357
+ }
358
+ export interface SaveQueryResponseData {
359
+ message: string;
360
+ }
361
+ export type SaveQueryResponse = ApiResponse<SaveQueryResponseData>;
362
+ /** DELETE /api/queries/:id */
363
+ export interface DeleteSavedQueryResponseData {
364
+ message: string;
365
+ }
366
+ export type DeleteSavedQueryResponse = ApiResponse<DeleteSavedQueryResponseData>;
367
+ export interface DatabaseRow extends DatabaseEntry {
368
+ sizeLabel: string;
369
+ modifiedLabel: string;
370
+ tables: number;
371
+ }
372
+ /** GET /api/databases */
373
+ export type ListDatabasesResponseData = DatabaseRow[];
374
+ export type ListDatabasesResponse = ApiResponse<ListDatabasesResponseData>;
375
+ /** POST /api/databases */
376
+ export interface CreateDatabaseRequestBody {
377
+ name: string;
378
+ }
379
+ export interface CreateDatabaseResponseData {
380
+ id: string;
381
+ message: string;
382
+ }
383
+ export type CreateDatabaseResponse = ApiResponse<CreateDatabaseResponseData>;
384
+ /** POST /api/databases/open */
385
+ export interface OpenDatabaseRequestBody {
386
+ path: string;
387
+ }
388
+ export interface OpenDatabaseResponseData {
389
+ id: string;
390
+ message: string;
391
+ }
392
+ export type OpenDatabaseResponse = ApiResponse<OpenDatabaseResponseData>;
393
+ /** DELETE /api/databases/:id */
394
+ export interface DeleteDatabaseResponseData {
395
+ message: string;
396
+ }
397
+ export type DeleteDatabaseResponse = ApiResponse<DeleteDatabaseResponseData>;
398
+ export interface FsEntry {
399
+ name: string;
400
+ path: string;
401
+ isDir: boolean;
402
+ isDb: boolean;
403
+ size: number;
404
+ }
405
+ /** GET /api/fs/list */
406
+ export interface ListFsResponseData {
407
+ path: string;
408
+ name: string;
409
+ parent: string | null;
410
+ entries: FsEntry[];
411
+ }
412
+ export type ListFsResponse = ApiResponse<ListFsResponseData>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * AdminDB — Strongly typed API request and response interfaces.
4
+ *
5
+ * Every REST API endpoint returns a standardized envelope:
6
+ * `{ success: true, data: T }` on success, or `{ success: false, error: string }` on failure.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}