rake-db 2.30.6 → 2.30.8

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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as pqb from 'pqb';
2
- import { SearchWeight, RecordOptionalString, AdapterBase, TableData, ColumnsShape, NoPrimaryKeyOption, MaybeArray, Column, RawSqlBase, RecordString, EnumColumn, EmptyObject, DbResult, DefaultColumnTypes, DefaultSchemaConfig, QueryLogObject, TableDataFn, TableDataItem, DbDomainArg, ColumnSchemaConfig, raw, Db, QuerySchema, MaybePromise, QueryLogOptions, QueryLogger, ColumnsByType, DbStructureDomainsMap } from 'pqb';
2
+ import { SearchWeight, RecordOptionalString, DefaultPrivileges, AdapterBase, TableData, ColumnsShape, NoPrimaryKeyOption, MaybeArray, Column, RawSqlBase, RecordString, EnumColumn, EmptyObject, DbResult, DefaultColumnTypes, DefaultSchemaConfig, QueryLogObject, TableDataFn, TableDataItem, DbDomainArg, ColumnSchemaConfig, raw, Db, QuerySchema, MaybePromise, QueryLogOptions, QueryLogger, ColumnsByType, DbStructureDomainsMap } from 'pqb';
3
3
 
4
4
  declare namespace DbStructure {
5
5
  interface TableNameAndSchemaName {
@@ -162,8 +162,23 @@ declare namespace DbStructure {
162
162
  bypassRls: boolean;
163
163
  config?: RecordOptionalString;
164
164
  }
165
+ interface DefaultPrivilegeConfig {
166
+ privilege: string;
167
+ isGrantable: boolean;
168
+ }
169
+ interface DefaultPrivilegeObjectConfig {
170
+ object: DefaultPrivileges.ObjectType;
171
+ privilegeConfigs: DefaultPrivilegeConfig[];
172
+ }
173
+ interface DefaultPrivilege {
174
+ owner?: string;
175
+ grantee: string;
176
+ schema?: string;
177
+ objectConfigs: DefaultPrivilegeObjectConfig[];
178
+ }
165
179
  }
166
180
  interface IntrospectedStructure {
181
+ version: number;
167
182
  schemas: string[];
168
183
  tables: DbStructure.Table[];
169
184
  views: DbStructure.View[];
@@ -176,18 +191,21 @@ interface IntrospectedStructure {
176
191
  domains: DbStructure.Domain[];
177
192
  collations: DbStructure.Collation[];
178
193
  roles?: DbStructure.Role[];
194
+ defaultPrivileges?: DbStructure.DefaultPrivilege[];
179
195
  managedRolesSql?: string;
180
196
  }
181
197
  interface IntrospectDbStructureParams {
182
198
  roles?: {
183
199
  whereSql?: string;
184
200
  };
201
+ loadDefaultPrivileges?: boolean;
185
202
  }
203
+ declare function getDbVersion(db: AdapterBase): Promise<number>;
186
204
  declare function introspectDbSchema(db: AdapterBase, params?: IntrospectDbStructureParams): Promise<IntrospectedStructure>;
187
205
 
188
- type RakeDbAst = RakeDbAst.Table | RakeDbAst.ChangeTable | RakeDbAst.RenameType | RakeDbAst.Schema | RakeDbAst.RenameSchema | RakeDbAst.Extension | RakeDbAst.Enum | RakeDbAst.EnumValues | RakeDbAst.RenameEnumValues | RakeDbAst.ChangeEnumValues | RakeDbAst.Domain | RakeDbAst.Collation | RakeDbAst.Constraint | RakeDbAst.RenameTableItem | RakeDbAst.View | RakeDbAst.Role | RakeDbAst.RenameRole | RakeDbAst.ChangeRole;
206
+ type RakeDbAst = RakeDbAst.Table | RakeDbAst.ChangeTable | RakeDbAst.RenameType | RakeDbAst.Schema | RakeDbAst.RenameSchema | RakeDbAst.Extension | RakeDbAst.Enum | RakeDbAst.EnumValues | RakeDbAst.RenameEnumValues | RakeDbAst.ChangeEnumValues | RakeDbAst.Domain | RakeDbAst.Collation | RakeDbAst.Constraint | RakeDbAst.RenameTableItem | RakeDbAst.View | RakeDbAst.Role | RakeDbAst.RenameRole | RakeDbAst.ChangeRole | RakeDbAst.DefaultPrivilege;
189
207
  declare namespace RakeDbAst {
190
- interface Table extends TableData {
208
+ export interface Table extends TableData {
191
209
  type: 'table';
192
210
  action: 'create' | 'drop';
193
211
  schema?: string;
@@ -199,7 +217,7 @@ declare namespace RakeDbAst {
199
217
  dropMode?: DropMode;
200
218
  comment?: string;
201
219
  }
202
- interface ChangeTable {
220
+ export interface ChangeTable {
203
221
  type: 'changeTable';
204
222
  schema?: string;
205
223
  name: string;
@@ -208,9 +226,9 @@ declare namespace RakeDbAst {
208
226
  add: TableData;
209
227
  drop: TableData;
210
228
  }
211
- type ChangeTableShape = Record<string, MaybeArray<ChangeTableItem>>;
212
- type ChangeTableItem = ChangeTableItem.Column | ChangeTableItem.Change | ChangeTableItem.Rename;
213
- namespace ChangeTableItem {
229
+ export type ChangeTableShape = Record<string, MaybeArray<ChangeTableItem>>;
230
+ export type ChangeTableItem = ChangeTableItem.Column | ChangeTableItem.Change | ChangeTableItem.Rename;
231
+ export namespace ChangeTableItem {
214
232
  interface Column {
215
233
  type: 'add' | 'drop';
216
234
  item: Column;
@@ -232,7 +250,7 @@ declare namespace RakeDbAst {
232
250
  name: string;
233
251
  }
234
252
  }
235
- interface ColumnChange {
253
+ export interface ColumnChange {
236
254
  column?: Column;
237
255
  type?: string;
238
256
  collate?: string;
@@ -247,7 +265,7 @@ declare namespace RakeDbAst {
247
265
  excludes?: TableData.ColumnExclude[];
248
266
  identity?: TableData.Identity;
249
267
  }
250
- interface RenameType {
268
+ export interface RenameType {
251
269
  type: 'renameType';
252
270
  kind: 'TABLE' | 'TYPE' | 'DOMAIN';
253
271
  fromSchema?: string;
@@ -255,29 +273,29 @@ declare namespace RakeDbAst {
255
273
  toSchema?: string;
256
274
  to: string;
257
275
  }
258
- interface Schema {
276
+ export interface Schema {
259
277
  type: 'schema';
260
278
  action: 'create' | 'drop';
261
279
  name: string;
262
280
  }
263
- interface RenameSchema {
281
+ export interface RenameSchema {
264
282
  type: 'renameSchema';
265
283
  from: string;
266
284
  to: string;
267
285
  }
268
- interface ExtensionArg {
286
+ export interface ExtensionArg {
269
287
  version?: string;
270
288
  cascade?: boolean;
271
289
  createIfNotExists?: boolean;
272
290
  dropIfExists?: boolean;
273
291
  }
274
- interface Extension extends ExtensionArg {
292
+ export interface Extension extends ExtensionArg {
275
293
  type: 'extension';
276
294
  action: 'create' | 'drop';
277
295
  schema?: string;
278
296
  name: string;
279
297
  }
280
- interface Enum {
298
+ export interface Enum {
281
299
  type: 'enum';
282
300
  action: 'create' | 'drop';
283
301
  schema?: string;
@@ -286,7 +304,7 @@ declare namespace RakeDbAst {
286
304
  cascade?: boolean;
287
305
  dropIfExists?: boolean;
288
306
  }
289
- interface EnumValues {
307
+ export interface EnumValues {
290
308
  type: 'enumValues';
291
309
  action: 'add' | 'drop';
292
310
  schema?: string;
@@ -296,27 +314,27 @@ declare namespace RakeDbAst {
296
314
  relativeTo?: string;
297
315
  ifNotExists?: boolean;
298
316
  }
299
- interface RenameEnumValues {
317
+ export interface RenameEnumValues {
300
318
  type: 'renameEnumValues';
301
319
  schema?: string;
302
320
  name: string;
303
321
  values: RecordString;
304
322
  }
305
- interface ChangeEnumValues {
323
+ export interface ChangeEnumValues {
306
324
  type: 'changeEnumValues';
307
325
  schema?: string;
308
326
  name: string;
309
327
  fromValues: string[];
310
328
  toValues: string[];
311
329
  }
312
- interface Domain {
330
+ export interface Domain {
313
331
  type: 'domain';
314
332
  action: 'create' | 'drop';
315
333
  schema?: string;
316
334
  name: string;
317
335
  baseType: Column;
318
336
  }
319
- interface Collation {
337
+ export interface Collation {
320
338
  type: 'collation';
321
339
  action: 'create' | 'drop';
322
340
  schema?: string;
@@ -332,17 +350,17 @@ declare namespace RakeDbAst {
332
350
  dropIfExists?: boolean;
333
351
  cascade?: boolean;
334
352
  }
335
- interface EnumOptions {
353
+ export interface EnumOptions {
336
354
  createIfNotExists?: boolean;
337
355
  dropIfExists?: boolean;
338
356
  }
339
- interface Constraint extends TableData.Constraint {
357
+ export interface Constraint extends TableData.Constraint {
340
358
  type: 'constraint';
341
359
  action: 'create' | 'drop';
342
360
  tableSchema?: string;
343
361
  tableName: string;
344
362
  }
345
- interface RenameTableItem {
363
+ export interface RenameTableItem {
346
364
  type: 'renameTableItem';
347
365
  kind: 'INDEX' | 'CONSTRAINT';
348
366
  tableSchema?: string;
@@ -350,7 +368,7 @@ declare namespace RakeDbAst {
350
368
  from: string;
351
369
  to: string;
352
370
  }
353
- interface View {
371
+ export interface View {
354
372
  type: 'view';
355
373
  action: 'create' | 'drop';
356
374
  schema?: string;
@@ -363,7 +381,7 @@ declare namespace RakeDbAst {
363
381
  name: string;
364
382
  }[];
365
383
  }
366
- interface ViewOptions {
384
+ export interface ViewOptions {
367
385
  createOrReplace?: boolean;
368
386
  dropIfExists?: boolean;
369
387
  dropMode?: DropMode;
@@ -376,21 +394,42 @@ declare namespace RakeDbAst {
376
394
  securityInvoker?: boolean;
377
395
  };
378
396
  }
379
- interface Role extends DbStructure.Role {
397
+ export interface Role extends DbStructure.Role {
380
398
  type: 'role';
381
399
  action: 'create' | 'drop';
382
400
  }
383
- interface RenameRole {
401
+ export interface RenameRole {
384
402
  type: 'renameRole';
385
403
  from: string;
386
404
  to: string;
387
405
  }
388
- interface ChangeRole {
406
+ export interface ChangeRole {
389
407
  type: 'changeRole';
390
408
  name: string;
391
409
  from: Partial<DbStructure.Role>;
392
410
  to: Partial<DbStructure.Role>;
393
411
  }
412
+ interface DefaultPrivilegeSetting {
413
+ privileges?: string[];
414
+ grantablePrivileges?: string[];
415
+ }
416
+ export interface DefaultPrivilegeObjectConfig {
417
+ tables?: DefaultPrivilegeSetting;
418
+ sequences?: DefaultPrivilegeSetting;
419
+ functions?: DefaultPrivilegeSetting;
420
+ types?: DefaultPrivilegeSetting;
421
+ schemas?: DefaultPrivilegeSetting;
422
+ largeObjects?: DefaultPrivilegeSetting;
423
+ }
424
+ export interface DefaultPrivilege {
425
+ type: 'defaultPrivilege';
426
+ owner?: string;
427
+ grantee: string;
428
+ schema?: string;
429
+ grant?: DefaultPrivilegeObjectConfig;
430
+ revoke?: DefaultPrivilegeObjectConfig;
431
+ }
432
+ export { };
394
433
  }
395
434
 
396
435
  declare function add(item: Column, options?: {
@@ -468,6 +507,28 @@ declare const tableChangeMethods: {
468
507
  type TableChanger<CT> = MigrationColumnTypes<CT> & TableChangeMethods;
469
508
  type TableChangeData = Record<string, RakeDbAst.ChangeTableItem.Column | RakeDbAst.ChangeTableItem.Rename | Change | SpecialChange | Column.Pick.Data>;
470
509
 
510
+ interface DefaultPrivilegeObjectSetting<T> {
511
+ privileges?: readonly T[];
512
+ grantablePrivileges?: readonly T[];
513
+ }
514
+ interface DefaultPrivilegeObjectConfig {
515
+ all?: boolean;
516
+ allGrantable?: boolean;
517
+ tables?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['Table']>;
518
+ sequences?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['Sequence']>;
519
+ functions?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['Function']>;
520
+ types?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['Type']>;
521
+ schemas?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['Schema']>;
522
+ largeObjects?: DefaultPrivilegeObjectSetting<DefaultPrivileges.Privilege['LargeObject']>;
523
+ }
524
+ interface ChangeDefaultPrivilegesArg {
525
+ owner?: string;
526
+ grantee: string;
527
+ schema?: string;
528
+ grant?: DefaultPrivilegeObjectConfig;
529
+ revoke?: DefaultPrivilegeObjectConfig;
530
+ }
531
+
471
532
  type DropMode = 'CASCADE' | 'RESTRICT';
472
533
  type TableOptions = {
473
534
  createIfNotExists?: boolean;
@@ -1416,6 +1477,7 @@ declare class Migration<CT = unknown> {
1416
1477
  from?: Partial<DbStructure.Role>;
1417
1478
  to: Partial<DbStructure.Role>;
1418
1479
  }): Promise<void>;
1480
+ changeDefaultPrivileges(params: ChangeDefaultPrivilegesArg): Promise<void>;
1419
1481
  }
1420
1482
  interface AddEnumValueOptions {
1421
1483
  ifNotExists?: boolean;
@@ -1891,4 +1953,4 @@ declare const dropTable: (db: DbParam, sql: string) => Promise<'done' | 'already
1891
1953
  declare class RakeDbError extends Error {
1892
1954
  }
1893
1955
 
1894
- export { type ChangeCallback, type DbMigration, DbStructure, type IntrospectedStructure, RakeDbAst, type RakeDbChangeFn, type RakeDbCliConfigInput, type RakeDbConfig, RakeDbError, type RakeDbFn, type SilentQueries, type StructureToAstCtx, type StructureToAstTableData, astToMigration, concatSchemaAndName, createDatabase, createMigrationInterface, createMigrationsSchemaAndTable, createSchema, createTable, dbColumnToAst, dropDatabase, dropSchema, dropTable, encodeColumnDefault, getConstraintName, getDbStructureTableData, getDbTableColumnsChecks, getExcludeName, getIndexName, getMigrationsSchemaAndTable, getSchemaAndTableFromName, incrementIntermediateCaller, instantiateDbColumn, introspectDbSchema, makeDomainsMap, makeFileVersion, makeRakeDbConfig, makeStructureToAstCtx, migrate, migrateAndClose, migrationConfigDefaults, promptSelect, rakeDbCliWithAdapter, rakeDbCommands, redo, rollback, runMigration, saveMigratedVersion, setRakeDbCliRunFn, structureToAst, tableToAst, writeMigrationFile };
1956
+ export { type ChangeCallback, type DbMigration, DbStructure, type IntrospectedStructure, RakeDbAst, type RakeDbChangeFn, type RakeDbCliConfigInput, type RakeDbConfig, RakeDbError, type RakeDbFn, type SilentQueries, type StructureToAstCtx, type StructureToAstTableData, astToMigration, concatSchemaAndName, createDatabase, createMigrationInterface, createMigrationsSchemaAndTable, createSchema, createTable, dbColumnToAst, dropDatabase, dropSchema, dropTable, encodeColumnDefault, getConstraintName, getDbStructureTableData, getDbTableColumnsChecks, getDbVersion, getExcludeName, getIndexName, getMigrationsSchemaAndTable, getSchemaAndTableFromName, incrementIntermediateCaller, instantiateDbColumn, introspectDbSchema, makeDomainsMap, makeFileVersion, makeRakeDbConfig, makeStructureToAstCtx, migrate, migrateAndClose, migrationConfigDefaults, promptSelect, rakeDbCliWithAdapter, rakeDbCommands, redo, rollback, runMigration, saveMigratedVersion, setRakeDbCliRunFn, structureToAst, tableToAst, writeMigrationFile };