admindb 2.1.0 → 2.1.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 (178) hide show
  1. package/README.md +1 -1
  2. package/dist/app.d.ts +1 -69
  3. package/dist/app.js +1 -257
  4. package/dist/auth/config.d.ts +1 -19
  5. package/dist/auth/config.js +1 -147
  6. package/dist/auth/crypto.d.ts +1 -27
  7. package/dist/auth/crypto.js +1 -133
  8. package/dist/auth/index.d.ts +1 -5
  9. package/dist/auth/index.js +1 -22
  10. package/dist/auth/middleware.d.ts +1 -14
  11. package/dist/auth/middleware.js +1 -100
  12. package/dist/auth/routes.d.ts +1 -7
  13. package/dist/auth/routes.js +1 -78
  14. package/dist/auth/types.d.ts +1 -35
  15. package/dist/auth/types.js +1 -11
  16. package/dist/cli/args.d.ts +1 -45
  17. package/dist/cli/args.js +1 -328
  18. package/dist/cli/config.d.ts +1 -56
  19. package/dist/cli/config.js +1 -133
  20. package/dist/cli/index.d.ts +1 -4
  21. package/dist/cli/index.js +1 -21
  22. package/dist/cli/runner.d.ts +1 -1
  23. package/dist/cli/runner.js +1 -222
  24. package/dist/cli.d.ts +1 -2
  25. package/dist/cli.js +1 -5
  26. package/dist/data/datasets.d.ts +1 -17
  27. package/dist/data/datasets.js +1 -133
  28. package/dist/data/detector.d.ts +1 -30
  29. package/dist/data/detector.js +1 -472
  30. package/dist/data/engine.d.ts +1 -10
  31. package/dist/data/engine.js +1 -211
  32. package/dist/data/index.d.ts +1 -5
  33. package/dist/data/index.js +1 -22
  34. package/dist/data/strategies.d.ts +1 -30
  35. package/dist/data/strategies.js +1 -343
  36. package/dist/data/types.d.ts +1 -73
  37. package/dist/data/types.js +1 -8
  38. package/dist/db/database.d.ts +1 -119
  39. package/dist/db/database.js +1 -471
  40. package/dist/db/export.d.ts +1 -12
  41. package/dist/db/export.js +1 -42
  42. package/dist/db/filters.d.ts +1 -22
  43. package/dist/db/filters.js +1 -158
  44. package/dist/db/index.d.ts +1 -8
  45. package/dist/db/index.js +1 -25
  46. package/dist/db/introspection.d.ts +1 -6
  47. package/dist/db/introspection.js +1 -172
  48. package/dist/db/manager.d.ts +1 -81
  49. package/dist/db/manager.js +1 -397
  50. package/dist/db/migrations.d.ts +1 -5
  51. package/dist/db/migrations.js +1 -110
  52. package/dist/db/postgres.d.ts +1 -85
  53. package/dist/db/postgres.js +1 -745
  54. package/dist/db/types.d.ts +1 -206
  55. package/dist/db/types.js +1 -7
  56. package/dist/index.d.ts +1 -23
  57. package/dist/index.js +1 -66
  58. package/dist/public/js/api.js +1 -47
  59. package/dist/public/js/app.js +1 -262
  60. package/dist/public/js/browse.js +1 -1371
  61. package/dist/public/js/databases.js +1 -235
  62. package/dist/public/js/designer.js +1 -258
  63. package/dist/public/js/forms.js +1 -826
  64. package/dist/public/js/icons.js +1 -51
  65. package/dist/public/js/inspector.js +1 -638
  66. package/dist/public/js/query.js +1 -322
  67. package/dist/public/js/schema.js +1 -447
  68. package/dist/public/js/seed.js +1 -1090
  69. package/dist/routes/api/helpers.d.ts +1 -42
  70. package/dist/routes/api/helpers.js +1 -133
  71. package/dist/routes/api/import-export.d.ts +1 -3
  72. package/dist/routes/api/import-export.js +1 -85
  73. package/dist/routes/api/index.d.ts +1 -4
  74. package/dist/routes/api/index.js +1 -37
  75. package/dist/routes/api/query.d.ts +1 -3
  76. package/dist/routes/api/query.js +1 -76
  77. package/dist/routes/api/rows.d.ts +1 -3
  78. package/dist/routes/api/rows.js +1 -373
  79. package/dist/routes/api/seed.d.ts +1 -3
  80. package/dist/routes/api/seed.js +1 -82
  81. package/dist/routes/api/tables.d.ts +1 -3
  82. package/dist/routes/api/tables.js +1 -160
  83. package/dist/routes/databases.d.ts +1 -26
  84. package/dist/routes/databases.js +1 -230
  85. package/dist/routes/index.d.ts +1 -3
  86. package/dist/routes/index.js +1 -20
  87. package/dist/routes/pages.d.ts +1 -9
  88. package/dist/routes/pages.js +1 -390
  89. package/dist/serverless.d.ts +1 -40
  90. package/dist/serverless.js +1 -210
  91. package/dist/sql/classifier.d.ts +1 -19
  92. package/dist/sql/classifier.js +1 -37
  93. package/dist/sql/generator.d.ts +1 -81
  94. package/dist/sql/generator.js +1 -348
  95. package/dist/sql/index.d.ts +1 -2
  96. package/dist/sql/index.js +1 -19
  97. package/dist/types/api.d.ts +1 -412
  98. package/dist/types/api.js +1 -9
  99. package/dist/utils/colors.d.ts +1 -40
  100. package/dist/utils/colors.js +1 -64
  101. package/dist/utils/common.d.ts +1 -50
  102. package/dist/utils/common.js +1 -229
  103. package/dist/utils/csv.d.ts +1 -15
  104. package/dist/utils/csv.js +1 -80
  105. package/dist/utils/datatype.d.ts +1 -49
  106. package/dist/utils/datatype.js +1 -222
  107. package/dist/utils/icons.d.ts +1 -11
  108. package/dist/utils/icons.js +1 -72
  109. package/dist/utils/index.d.ts +1 -4
  110. package/dist/utils/index.js +1 -21
  111. package/dist/utils/logger.d.ts +1 -10
  112. package/dist/utils/logger.js +1 -40
  113. package/dist/views/layouts/main.hbs +0 -4
  114. package/dist/views/pages/databases.hbs +0 -18
  115. package/dist/views/pages/designer.hbs +0 -10
  116. package/dist/views/pages/error.hbs +0 -2
  117. package/dist/views/pages/form.hbs +0 -5
  118. package/dist/views/pages/home.hbs +0 -8
  119. package/dist/views/pages/login.hbs +0 -13
  120. package/dist/views/pages/query.hbs +0 -9
  121. package/dist/views/pages/schema.hbs +0 -20
  122. package/dist/views/pages/seed.hbs +0 -31
  123. package/dist/views/pages/table.hbs +0 -14
  124. package/dist/views/partials/icon.hbs +0 -1
  125. package/dist/views/partials/navbar.hbs +0 -6
  126. package/dist/views/partials/sidebar.hbs +0 -8
  127. package/package.json +3 -2
  128. package/dist/app.js.map +0 -1
  129. package/dist/auth/config.js.map +0 -1
  130. package/dist/auth/crypto.js.map +0 -1
  131. package/dist/auth/index.js.map +0 -1
  132. package/dist/auth/middleware.js.map +0 -1
  133. package/dist/auth/routes.js.map +0 -1
  134. package/dist/auth/types.js.map +0 -1
  135. package/dist/cli/args.js.map +0 -1
  136. package/dist/cli/config.js.map +0 -1
  137. package/dist/cli/index.js.map +0 -1
  138. package/dist/cli/runner.js.map +0 -1
  139. package/dist/cli.js.map +0 -1
  140. package/dist/data/datasets.js.map +0 -1
  141. package/dist/data/detector.js.map +0 -1
  142. package/dist/data/engine.js.map +0 -1
  143. package/dist/data/index.js.map +0 -1
  144. package/dist/data/strategies.js.map +0 -1
  145. package/dist/data/types.js.map +0 -1
  146. package/dist/db/database.js.map +0 -1
  147. package/dist/db/export.js.map +0 -1
  148. package/dist/db/filters.js.map +0 -1
  149. package/dist/db/index.js.map +0 -1
  150. package/dist/db/introspection.js.map +0 -1
  151. package/dist/db/manager.js.map +0 -1
  152. package/dist/db/migrations.js.map +0 -1
  153. package/dist/db/postgres.js.map +0 -1
  154. package/dist/db/types.js.map +0 -1
  155. package/dist/index.js.map +0 -1
  156. package/dist/public/css/input.css +0 -302
  157. package/dist/routes/api/helpers.js.map +0 -1
  158. package/dist/routes/api/import-export.js.map +0 -1
  159. package/dist/routes/api/index.js.map +0 -1
  160. package/dist/routes/api/query.js.map +0 -1
  161. package/dist/routes/api/rows.js.map +0 -1
  162. package/dist/routes/api/seed.js.map +0 -1
  163. package/dist/routes/api/tables.js.map +0 -1
  164. package/dist/routes/databases.js.map +0 -1
  165. package/dist/routes/index.js.map +0 -1
  166. package/dist/routes/pages.js.map +0 -1
  167. package/dist/serverless.js.map +0 -1
  168. package/dist/sql/classifier.js.map +0 -1
  169. package/dist/sql/generator.js.map +0 -1
  170. package/dist/sql/index.js.map +0 -1
  171. package/dist/types/api.js.map +0 -1
  172. package/dist/utils/colors.js.map +0 -1
  173. package/dist/utils/common.js.map +0 -1
  174. package/dist/utils/csv.js.map +0 -1
  175. package/dist/utils/datatype.js.map +0 -1
  176. package/dist/utils/icons.js.map +0 -1
  177. package/dist/utils/index.js.map +0 -1
  178. package/dist/utils/logger.js.map +0 -1
@@ -1,206 +1 @@
1
- import type { FilterValue } from '../utils/common';
2
- import type { ColumnDef, IndexDef } from '../sql/generator';
3
- /** Structured filter types are shared with the API layer. */
4
- export type { FilterCondition, FilterValue } from '../utils/common';
5
- export type DatabaseDialect = 'sqlite' | 'postgres';
6
- /** SQL bind value accepted by database drivers. */
7
- export type SQLInputValue = null | number | bigint | string | boolean | Uint8Array | Buffer | Date;
8
- export interface Result<T = unknown> {
9
- success: boolean;
10
- data?: T;
11
- error?: string;
12
- }
13
- export interface MutationResult {
14
- changes?: number;
15
- lastInsertRowid?: number | null;
16
- }
17
- export interface TableListItem {
18
- name: string;
19
- }
20
- export interface ColumnInfo {
21
- cid: number;
22
- name: string;
23
- type: string;
24
- notnull: number;
25
- dflt_value: string | null;
26
- pk: number;
27
- }
28
- export interface ForeignKeyInfo {
29
- id: number;
30
- seq: number;
31
- table: string;
32
- from: string;
33
- to: string | null;
34
- on_update: string;
35
- on_delete: string;
36
- }
37
- export interface TableInfoData {
38
- table: string;
39
- columns: ColumnInfo[];
40
- foreignKeys: ForeignKeyInfo[];
41
- primaryKey: string[];
42
- /** Indexes (including UNIQUE / JSON-expression indexes) — used by the data generator. */
43
- indexes: IndexInfo[];
44
- /** The table's `CREATE TABLE` statement (used to parse CHECK constraints). */
45
- sql: string | null;
46
- }
47
- export interface SavedQuery {
48
- id: number;
49
- name: string;
50
- sql: string;
51
- created_at: string;
52
- }
53
- export interface WhereClause {
54
- column: string;
55
- value: unknown;
56
- }
57
- export interface IndexInfo {
58
- name: string;
59
- unique: boolean;
60
- partial: number;
61
- /** Index origin: 'c' = explicit CREATE INDEX, 'pk'/'u' = automatic (primary key / unique). */
62
- origin: string;
63
- columns: string[];
64
- /** The `CREATE INDEX` statement, when available. */
65
- sql?: string | null;
66
- }
67
- export interface RowFilters {
68
- [column: string]: FilterValue;
69
- }
70
- export interface ColumnDetail extends ColumnInfo {
71
- unique: boolean;
72
- indexed: boolean;
73
- /** Foreign keys in OTHER tables whose referenced column is this column. */
74
- referencedBy: {
75
- table: string;
76
- from: string;
77
- }[];
78
- /** The foreign key this column participates in (as the child), if any. */
79
- fk: ForeignKeyInfo | null;
80
- canDrop: boolean;
81
- dropBlockers: string[];
82
- }
83
- export interface SchemaInfo {
84
- table: string;
85
- columns: ColumnDetail[];
86
- foreignKeys: ForeignKeyInfo[];
87
- indexes: IndexInfo[];
88
- /** Foreign keys in other tables that reference this table. */
89
- references: {
90
- table: string;
91
- from: string;
92
- to: string;
93
- }[];
94
- }
95
- export interface ReferencingTableInfo {
96
- table: string;
97
- /** FK columns in `table` that point at this table (`from` → `to`). */
98
- refs: {
99
- from: string;
100
- to: string;
101
- }[];
102
- /** Rows in `table` whose FK column(s) actually reference this table. */
103
- refCount: number;
104
- }
105
- export interface DbOpenOptions {
106
- /** Open the database read-only: every write is rejected. */
107
- readonly?: boolean;
108
- }
109
- export interface PostgresOptions extends DbOpenOptions {
110
- /** PostgreSQL connection string / URI. */
111
- connectionString?: string;
112
- /** PostgreSQL connection pool config. */
113
- host?: string;
114
- port?: number;
115
- database?: string;
116
- user?: string;
117
- password?: string;
118
- ssl?: boolean | object;
119
- max?: number;
120
- schema?: string;
121
- }
122
- export interface QueryOptions {
123
- page?: number;
124
- limit?: number;
125
- orderBy?: string;
126
- orderDir?: 'asc' | 'desc';
127
- filters?: RowFilters;
128
- }
129
- export declare const INTERNAL_TABLES: {
130
- readonly savedQueries: "_saved_queries";
131
- };
132
- /**
133
- * Common interface implemented by both SQLite and PostgreSQL database adapters.
134
- */
135
- export interface IDatabase {
136
- readonly path: string;
137
- readonly isReadOnly: boolean;
138
- readonly dialect: DatabaseDialect;
139
- close(): Promise<void> | void;
140
- all(sql: string, params?: SQLInputValue[]): Promise<Result<unknown[]>>;
141
- run(sql: string, params?: SQLInputValue[]): Promise<Result<MutationResult>>;
142
- execResult(sql: string): Promise<Result<{
143
- changes?: number;
144
- }>>;
145
- hasMultipleStatements(sql: string): boolean;
146
- runWrite(sql: string): Promise<Result<{
147
- changes?: number;
148
- }>>;
149
- listTables(): Promise<Result<TableListItem[]>>;
150
- getTableInfo(table: string): Promise<Result<TableInfoData>>;
151
- getRowCount(table: string, filters?: RowFilters): Promise<Result<number>>;
152
- getRows(table: string, opts?: QueryOptions): Promise<Result<Record<string, unknown>[]>>;
153
- getAllRows(table: string): Promise<Result<Record<string, unknown>[]>>;
154
- getRow(table: string, where: WhereClause[]): Promise<Result<Record<string, unknown> | null>>;
155
- insertRow(table: string, fields: WhereClause[]): Promise<Result<MutationResult>>;
156
- insertRows(table: string, rows: WhereClause[][]): Promise<Result<{
157
- inserted: number;
158
- skipped: number;
159
- }>>;
160
- updateRow(table: string, fields: WhereClause[], where: WhereClause[]): Promise<Result<MutationResult>>;
161
- updateRows(table: string, rows: {
162
- fields: WhereClause[];
163
- where: WhereClause[];
164
- }[]): Promise<Result<{
165
- updated: number;
166
- }>>;
167
- deleteRow(table: string, where: WhereClause[]): Promise<Result<MutationResult>>;
168
- deleteRows(table: string, rows: WhereClause[][]): Promise<Result<{
169
- deleted: number;
170
- }>>;
171
- getRowsByPks(table: string, pks: WhereClause[][]): Promise<Result<Record<string, unknown>[]>>;
172
- getRowsByFk(table: string, column: string, value: unknown, limit?: number): Promise<Result<{
173
- rows: Record<string, unknown>[];
174
- total: number;
175
- }>>;
176
- getCreateStatement(table: string): Promise<Result<string | null>>;
177
- listSavedQueries(): Promise<Result<SavedQuery[]>>;
178
- saveQuery(name: string, sql: string): Promise<Result<MutationResult>>;
179
- deleteSavedQuery(id: string | number): Promise<Result<MutationResult>>;
180
- getSchema(table: string): Promise<Result<SchemaInfo>>;
181
- getReferencingTables(table: string): Promise<Result<ReferencingTableInfo[]>>;
182
- renameTable(oldName: string, newName: string): Promise<Result<{
183
- changes?: number;
184
- }>>;
185
- addColumn(table: string, col: ColumnDef): Promise<Result<{
186
- changes?: number;
187
- }>>;
188
- modifyColumn(table: string, oldColName: string, newColDef: ColumnDef): Promise<Result<{
189
- changes?: number;
190
- }>>;
191
- renameColumn(table: string, oldName: string, newName: string): Promise<Result<{
192
- changes?: number;
193
- }>>;
194
- dropColumn(table: string, column: string): Promise<Result<{
195
- changes?: number;
196
- }>>;
197
- dropTable(table: string): Promise<Result<{
198
- changes?: number;
199
- }>>;
200
- createIndex(table: string, index: IndexDef): Promise<Result<{
201
- changes?: number;
202
- }>>;
203
- dropIndex(indexName: string): Promise<Result<{
204
- changes?: number;
205
- }>>;
206
- }
1
+ import type {FilterValue} from '../utils/common';import type {ColumnDef,IndexDef} from '../sql/generator';export type {FilterCondition,FilterValue} from '../utils/common';export type DatabaseDialect='sqlite'|'postgres';export type SQLInputValue=null|number|bigint|string|boolean|Uint8Array|Buffer|Date;export interface Result<T=unknown>{success:boolean;data?:T;error?:string;}export interface MutationResult{changes?:number;lastInsertRowid?:number|null;}export interface TableListItem{name:string;}export interface ColumnInfo{cid:number;name:string;type:string;notnull:number;dflt_value:string|null;pk:number;}export interface ForeignKeyInfo{id:number;seq:number;table:string; from :string;to:string|null;on_update:string;on_delete:string;}export interface TableInfoData{table:string;columns:ColumnInfo[];foreignKeys:ForeignKeyInfo[];primaryKey:string[];indexes:IndexInfo[];sql:string|null;}export interface SavedQuery{id:number;name:string;sql:string;created_at:string;}export interface WhereClause{column:string;value:unknown;}export interface IndexInfo{name:string;unique:boolean;partial:number;origin:string;columns:string[];sql?:string|null;}export interface RowFilters{[column:string]:FilterValue;}export interface ColumnDetail extends ColumnInfo{unique:boolean;indexed:boolean;referencedBy:{table:string; from :string;}[];fk:ForeignKeyInfo|null;canDrop:boolean;dropBlockers:string[];}export interface SchemaInfo{table:string;columns:ColumnDetail[];foreignKeys:ForeignKeyInfo[];indexes:IndexInfo[];references:{table:string; from :string;to:string;}[];}export interface ReferencingTableInfo{table:string;refs:{ from :string;to:string;}[];refCount:number;}export interface DbOpenOptions{readonly ?:boolean;}export interface PostgresOptions extends DbOpenOptions{connectionString?:string;host?:string;port?:number;database?:string;user?:string;password?:string;ssl?:boolean|object;max?:number;schema?:string;}export interface QueryOptions{page?:number;limit?:number;orderBy?:string;orderDir?:'asc'|'desc';filters?:RowFilters;}export declare const INTERNAL_TABLES:{readonly savedQueries:"_saved_queries";};export interface IDatabase{readonly path:string;readonly isReadOnly:boolean;readonly dialect:DatabaseDialect;close():Promise<void>|void;all(sql:string,params?:SQLInputValue[]):Promise<Result<unknown[]>>;run(sql:string,params?:SQLInputValue[]):Promise<Result<MutationResult>>;execResult(sql:string):Promise<Result<{changes?:number;}>>;hasMultipleStatements(sql:string):boolean;runWrite(sql:string):Promise<Result<{changes?:number;}>>;listTables():Promise<Result<TableListItem[]>>;getTableInfo(table:string):Promise<Result<TableInfoData>>;getRowCount(table:string,filters?:RowFilters):Promise<Result<number>>;getRows(table:string,opts?:QueryOptions):Promise<Result<Record<string,unknown>[]>>;getAllRows(table:string):Promise<Result<Record<string,unknown>[]>>;getRow(table:string,where:WhereClause[]):Promise<Result<Record<string,unknown>|null>>;insertRow(table:string,fields:WhereClause[]):Promise<Result<MutationResult>>;insertRows(table:string,rows:WhereClause[][]):Promise<Result<{inserted:number;skipped:number;}>>;updateRow(table:string,fields:WhereClause[],where:WhereClause[]):Promise<Result<MutationResult>>;updateRows(table:string,rows:{fields:WhereClause[];where:WhereClause[];}[]):Promise<Result<{updated:number;}>>;deleteRow(table:string,where:WhereClause[]):Promise<Result<MutationResult>>;deleteRows(table:string,rows:WhereClause[][]):Promise<Result<{deleted:number;}>>;getRowsByPks(table:string,pks:WhereClause[][]):Promise<Result<Record<string,unknown>[]>>;getRowsByFk(table:string,column:string,value:unknown,limit?:number):Promise<Result<{rows:Record<string,unknown>[];total:number;}>>;getCreateStatement(table:string):Promise<Result<string|null>>;listSavedQueries():Promise<Result<SavedQuery[]>>;saveQuery(name:string,sql:string):Promise<Result<MutationResult>>;deleteSavedQuery(id:string|number):Promise<Result<MutationResult>>;getSchema(table:string):Promise<Result<SchemaInfo>>;getReferencingTables(table:string):Promise<Result<ReferencingTableInfo[]>>;renameTable(oldName:string,newName:string):Promise<Result<{changes?:number;}>>;addColumn(table:string,col:ColumnDef):Promise<Result<{changes?:number;}>>;modifyColumn(table:string,oldColName:string,newColDef:ColumnDef):Promise<Result<{changes?:number;}>>;renameColumn(table:string,oldName:string,newName:string):Promise<Result<{changes?:number;}>>;dropColumn(table:string,column:string):Promise<Result<{changes?:number;}>>;dropTable(table:string):Promise<Result<{changes?:number;}>>;createIndex(table:string,index:IndexDef):Promise<Result<{changes?:number;}>>;dropIndex(indexName:string):Promise<Result<{changes?:number;}>>;}
package/dist/db/types.js CHANGED
@@ -1,7 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INTERNAL_TABLES = void 0;
4
- exports.INTERNAL_TABLES = {
5
- savedQueries: '_saved_queries',
6
- };
7
- //# sourceMappingURL=types.js.map
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.INTERNAL_TABLES=void 0,exports.INTERNAL_TABLES={savedQueries:"_saved_queries"};
package/dist/index.d.ts CHANGED
@@ -1,23 +1 @@
1
- /**
2
- * AdminDB — public library entry point.
3
- *
4
- * ```ts
5
- * import { createRouter, DbManager, createLogger } from 'admindb';
6
- * const app = express();
7
- * app.use('/admin', createRouter({ dbPath: './my.db', basePath: '/admin' }));
8
- * ```
9
- *
10
- * For the standalone CLI/server run `npm start` or `npx admindb` — see
11
- * `src/cli.ts`.
12
- */
13
- export { createRouter, type AppOptions } from './app';
14
- export { createLogger, type Logger, type LogLevel } from './utils/logger';
15
- export { c, supportsColor } from './utils/colors';
16
- export { SqliteDatabase, PostgresDatabase, type IDatabase, type DatabaseDialect, type PostgresOptions, type MutationResult, type QueryOptions, type Result, type TableInfoData, type ColumnInfo, type ForeignKeyInfo, type WhereClause, type IndexInfo, type SchemaInfo, type ColumnDetail, type SavedQuery, type RowFilters, type FilterCondition, type FilterValue, type SQLInputValue, } from './db/index';
17
- export { DbManager, type DbManagerOptions, type DatabaseEntry } from './db/manager';
18
- export { type ColumnDef, type IndexDef, } from './sql/generator';
19
- export { type ColumnPlan, type ColumnGeneratorConfig, type GeneratorStrategyId, type StrategyDescriptor, type GenerateResult, } from './data/index';
20
- export { type AuthConfig, type ResolvedAuthConfig, resolveAuthConfig, getOrCreatePersistentSecret, createSessionToken, verifySessionToken, parseCookies, constantTimeCompare, hashPassword, verifyPassword, DEFAULT_USERNAME, DEFAULT_PASSWORD_HASH, SESSION_COOKIE_NAME, } from './auth/index';
21
- export { isServerlessEnvironment, createServerlessHandler, createLambdaHandler, type LambdaProxyResult, } from './serverless';
22
- export { sniffMimeType, generateHexDump, analyzeBlob, isJsonString, formatJsonSafely, type MimeAnalysis, type HexDumpLine, type HexDumpResult, type BlobMetadata, } from './utils/datatype';
23
- export * from './types/api';
1
+ export{createRouter,type AppOptions} from './app';export{createLogger,type Logger,type LogLevel} from './utils/logger';export{c,supportsColor} from './utils/colors';export{SqliteDatabase,PostgresDatabase,type IDatabase,type DatabaseDialect,type PostgresOptions,type MutationResult,type QueryOptions,type Result,type TableInfoData,type ColumnInfo,type ForeignKeyInfo,type WhereClause,type IndexInfo,type SchemaInfo,type ColumnDetail,type SavedQuery,type RowFilters,type FilterCondition,type FilterValue,type SQLInputValue,} from './db/index';export{DbManager,type DbManagerOptions,type DatabaseEntry} from './db/manager';export{type ColumnDef,type IndexDef,} from './sql/generator';export{type ColumnPlan,type ColumnGeneratorConfig,type GeneratorStrategyId,type StrategyDescriptor,type GenerateResult,} from './data/index';export{type AuthConfig,type ResolvedAuthConfig,resolveAuthConfig,getOrCreatePersistentSecret,createSessionToken,verifySessionToken,parseCookies,constantTimeCompare,hashPassword,verifyPassword,DEFAULT_USERNAME,DEFAULT_PASSWORD_HASH,SESSION_COOKIE_NAME,} from './auth/index';export{isServerlessEnvironment,createServerlessHandler,createLambdaHandler,type LambdaProxyResult,} from './serverless';export{sniffMimeType,generateHexDump,analyzeBlob,isJsonString,formatJsonSafely,type MimeAnalysis,type HexDumpLine,type HexDumpResult,type BlobMetadata,} from './utils/datatype';export * from './types/api';
package/dist/index.js CHANGED
@@ -1,66 +1 @@
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
- exports.formatJsonSafely = exports.isJsonString = exports.analyzeBlob = exports.generateHexDump = exports.sniffMimeType = exports.createLambdaHandler = exports.createServerlessHandler = exports.isServerlessEnvironment = exports.SESSION_COOKIE_NAME = exports.DEFAULT_PASSWORD_HASH = exports.DEFAULT_USERNAME = exports.verifyPassword = exports.hashPassword = exports.constantTimeCompare = exports.parseCookies = exports.verifySessionToken = exports.createSessionToken = exports.getOrCreatePersistentSecret = exports.resolveAuthConfig = exports.DbManager = exports.PostgresDatabase = exports.SqliteDatabase = exports.supportsColor = exports.c = exports.createLogger = exports.createRouter = void 0;
18
- /**
19
- * AdminDB — public library entry point.
20
- *
21
- * ```ts
22
- * import { createRouter, DbManager, createLogger } from 'admindb';
23
- * const app = express();
24
- * app.use('/admin', createRouter({ dbPath: './my.db', basePath: '/admin' }));
25
- * ```
26
- *
27
- * For the standalone CLI/server run `npm start` or `npx admindb` — see
28
- * `src/cli.ts`.
29
- */
30
- var app_1 = require("./app");
31
- Object.defineProperty(exports, "createRouter", { enumerable: true, get: function () { return app_1.createRouter; } });
32
- var logger_1 = require("./utils/logger");
33
- Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
34
- var colors_1 = require("./utils/colors");
35
- Object.defineProperty(exports, "c", { enumerable: true, get: function () { return colors_1.c; } });
36
- Object.defineProperty(exports, "supportsColor", { enumerable: true, get: function () { return colors_1.supportsColor; } });
37
- var index_1 = require("./db/index");
38
- Object.defineProperty(exports, "SqliteDatabase", { enumerable: true, get: function () { return index_1.SqliteDatabase; } });
39
- Object.defineProperty(exports, "PostgresDatabase", { enumerable: true, get: function () { return index_1.PostgresDatabase; } });
40
- var manager_1 = require("./db/manager");
41
- Object.defineProperty(exports, "DbManager", { enumerable: true, get: function () { return manager_1.DbManager; } });
42
- var index_2 = require("./auth/index");
43
- Object.defineProperty(exports, "resolveAuthConfig", { enumerable: true, get: function () { return index_2.resolveAuthConfig; } });
44
- Object.defineProperty(exports, "getOrCreatePersistentSecret", { enumerable: true, get: function () { return index_2.getOrCreatePersistentSecret; } });
45
- Object.defineProperty(exports, "createSessionToken", { enumerable: true, get: function () { return index_2.createSessionToken; } });
46
- Object.defineProperty(exports, "verifySessionToken", { enumerable: true, get: function () { return index_2.verifySessionToken; } });
47
- Object.defineProperty(exports, "parseCookies", { enumerable: true, get: function () { return index_2.parseCookies; } });
48
- Object.defineProperty(exports, "constantTimeCompare", { enumerable: true, get: function () { return index_2.constantTimeCompare; } });
49
- Object.defineProperty(exports, "hashPassword", { enumerable: true, get: function () { return index_2.hashPassword; } });
50
- Object.defineProperty(exports, "verifyPassword", { enumerable: true, get: function () { return index_2.verifyPassword; } });
51
- Object.defineProperty(exports, "DEFAULT_USERNAME", { enumerable: true, get: function () { return index_2.DEFAULT_USERNAME; } });
52
- Object.defineProperty(exports, "DEFAULT_PASSWORD_HASH", { enumerable: true, get: function () { return index_2.DEFAULT_PASSWORD_HASH; } });
53
- Object.defineProperty(exports, "SESSION_COOKIE_NAME", { enumerable: true, get: function () { return index_2.SESSION_COOKIE_NAME; } });
54
- var serverless_1 = require("./serverless");
55
- Object.defineProperty(exports, "isServerlessEnvironment", { enumerable: true, get: function () { return serverless_1.isServerlessEnvironment; } });
56
- Object.defineProperty(exports, "createServerlessHandler", { enumerable: true, get: function () { return serverless_1.createServerlessHandler; } });
57
- Object.defineProperty(exports, "createLambdaHandler", { enumerable: true, get: function () { return serverless_1.createLambdaHandler; } });
58
- var datatype_1 = require("./utils/datatype");
59
- Object.defineProperty(exports, "sniffMimeType", { enumerable: true, get: function () { return datatype_1.sniffMimeType; } });
60
- Object.defineProperty(exports, "generateHexDump", { enumerable: true, get: function () { return datatype_1.generateHexDump; } });
61
- Object.defineProperty(exports, "analyzeBlob", { enumerable: true, get: function () { return datatype_1.analyzeBlob; } });
62
- Object.defineProperty(exports, "isJsonString", { enumerable: true, get: function () { return datatype_1.isJsonString; } });
63
- Object.defineProperty(exports, "formatJsonSafely", { enumerable: true, get: function () { return datatype_1.formatJsonSafely; } });
64
- // Export all published REST API response and request types
65
- __exportStar(require("./types/api"), exports);
66
- //# sourceMappingURL=index.js.map
1
+ var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatJsonSafely=exports.isJsonString=exports.analyzeBlob=exports.generateHexDump=exports.sniffMimeType=exports.createLambdaHandler=exports.createServerlessHandler=exports.isServerlessEnvironment=exports.SESSION_COOKIE_NAME=exports.DEFAULT_PASSWORD_HASH=exports.DEFAULT_USERNAME=exports.verifyPassword=exports.hashPassword=exports.constantTimeCompare=exports.parseCookies=exports.verifySessionToken=exports.createSessionToken=exports.getOrCreatePersistentSecret=exports.resolveAuthConfig=exports.DbManager=exports.PostgresDatabase=exports.SqliteDatabase=exports.supportsColor=exports.c=exports.createLogger=exports.createRouter=void 0;var app_1=require("./app");Object.defineProperty(exports,"createRouter",{enumerable:!0,get:function(){return app_1.createRouter}});var logger_1=require("./utils/logger");Object.defineProperty(exports,"createLogger",{enumerable:!0,get:function(){return logger_1.createLogger}});var colors_1=require("./utils/colors");Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return colors_1.c}}),Object.defineProperty(exports,"supportsColor",{enumerable:!0,get:function(){return colors_1.supportsColor}});var index_1=require("./db/index");Object.defineProperty(exports,"SqliteDatabase",{enumerable:!0,get:function(){return index_1.SqliteDatabase}}),Object.defineProperty(exports,"PostgresDatabase",{enumerable:!0,get:function(){return index_1.PostgresDatabase}});var manager_1=require("./db/manager");Object.defineProperty(exports,"DbManager",{enumerable:!0,get:function(){return manager_1.DbManager}});var index_2=require("./auth/index");Object.defineProperty(exports,"resolveAuthConfig",{enumerable:!0,get:function(){return index_2.resolveAuthConfig}}),Object.defineProperty(exports,"getOrCreatePersistentSecret",{enumerable:!0,get:function(){return index_2.getOrCreatePersistentSecret}}),Object.defineProperty(exports,"createSessionToken",{enumerable:!0,get:function(){return index_2.createSessionToken}}),Object.defineProperty(exports,"verifySessionToken",{enumerable:!0,get:function(){return index_2.verifySessionToken}}),Object.defineProperty(exports,"parseCookies",{enumerable:!0,get:function(){return index_2.parseCookies}}),Object.defineProperty(exports,"constantTimeCompare",{enumerable:!0,get:function(){return index_2.constantTimeCompare}}),Object.defineProperty(exports,"hashPassword",{enumerable:!0,get:function(){return index_2.hashPassword}}),Object.defineProperty(exports,"verifyPassword",{enumerable:!0,get:function(){return index_2.verifyPassword}}),Object.defineProperty(exports,"DEFAULT_USERNAME",{enumerable:!0,get:function(){return index_2.DEFAULT_USERNAME}}),Object.defineProperty(exports,"DEFAULT_PASSWORD_HASH",{enumerable:!0,get:function(){return index_2.DEFAULT_PASSWORD_HASH}}),Object.defineProperty(exports,"SESSION_COOKIE_NAME",{enumerable:!0,get:function(){return index_2.SESSION_COOKIE_NAME}});var serverless_1=require("./serverless");Object.defineProperty(exports,"isServerlessEnvironment",{enumerable:!0,get:function(){return serverless_1.isServerlessEnvironment}}),Object.defineProperty(exports,"createServerlessHandler",{enumerable:!0,get:function(){return serverless_1.createServerlessHandler}}),Object.defineProperty(exports,"createLambdaHandler",{enumerable:!0,get:function(){return serverless_1.createLambdaHandler}});var datatype_1=require("./utils/datatype");Object.defineProperty(exports,"sniffMimeType",{enumerable:!0,get:function(){return datatype_1.sniffMimeType}}),Object.defineProperty(exports,"generateHexDump",{enumerable:!0,get:function(){return datatype_1.generateHexDump}}),Object.defineProperty(exports,"analyzeBlob",{enumerable:!0,get:function(){return datatype_1.analyzeBlob}}),Object.defineProperty(exports,"isJsonString",{enumerable:!0,get:function(){return datatype_1.isJsonString}}),Object.defineProperty(exports,"formatJsonSafely",{enumerable:!0,get:function(){return datatype_1.formatJsonSafely}}),__exportStar(require("./types/api"),exports);
@@ -1,47 +1 @@
1
- /* Tiny JSON API client. Every request resolves to the `data` payload of the
2
- * consistent { success, data?, error? } envelope, or throws with the message. */
3
- (function () {
4
- 'use strict';
5
- const base = (window.APP && window.APP.basePath) || '';
6
-
7
- function url(path) {
8
- return base + path;
9
- }
10
-
11
- window.Api = {
12
- basePath: base,
13
- url: url,
14
-
15
- async request(method, path, body) {
16
- const opts = { method, headers: {} };
17
- if (body !== undefined) {
18
- opts.headers['Content-Type'] = 'application/json';
19
- opts.body = JSON.stringify(body);
20
- }
21
- let res;
22
- try {
23
- res = await fetch(url(path), opts);
24
- } catch (e) {
25
- throw new Error('Network error: ' + e.message);
26
- }
27
- let data = null;
28
- try {
29
- data = await res.json();
30
- } catch (e) {
31
- data = null;
32
- }
33
- if (!res.ok) {
34
- throw new Error((data && data.error) || 'Request failed (' + res.status + ')');
35
- }
36
- if (!data || data.success === false) {
37
- throw new Error((data && data.error) || 'Request failed');
38
- }
39
- return data.data;
40
- },
41
-
42
- get(path) { return this.request('GET', path); },
43
- post(path, body) { return this.request('POST', path, body); },
44
- put(path, body) { return this.request('PUT', path, body); },
45
- del(path) { return this.request('DELETE', path); },
46
- };
47
- })();
1
+ !function(){"use strict";const t=window.APP&&window.APP.basePath||"";function e(e){return t+e}window.Api={basePath:t,url:e,async request(t,r,s){const n={method:t,headers:{}};let o;void 0!==s&&(n.headers["Content-Type"]="application/json",n.body=JSON.stringify(s));try{o=await fetch(e(r),n)}catch(t){throw new Error("Network error: "+t.message)}let i=null;try{i=await o.json()}catch(t){i=null}if(!o.ok)throw new Error(i&&i.error||"Request failed ("+o.status+")");if(!i||!1===i.success)throw new Error(i&&i.error||"Request failed");return i.data},get(t){return this.request("GET",t)},post(t,e){return this.request("POST",t,e)},put(t,e){return this.request("PUT",t,e)},del(t){return this.request("DELETE",t)}}}();