@zyno-io/dk-server-foundation 26.412.2137 → 26.601.2229

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 (124) hide show
  1. package/dist/resources/proto/generated/devconsole/devconsole.js +1 -1
  2. package/dist/src/app/config.d.ts +1 -0
  3. package/dist/src/app/config.d.ts.map +1 -1
  4. package/dist/src/app/config.js +1 -1
  5. package/dist/src/app/config.js.map +1 -1
  6. package/dist/src/database/common.d.ts +3 -0
  7. package/dist/src/database/common.d.ts.map +1 -1
  8. package/dist/src/database/common.js +46 -1
  9. package/dist/src/database/common.js.map +1 -1
  10. package/dist/src/database/factory.d.ts +17 -0
  11. package/dist/src/database/factory.d.ts.map +1 -0
  12. package/dist/src/database/factory.js +53 -0
  13. package/dist/src/database/factory.js.map +1 -0
  14. package/dist/src/database/index.d.ts +2 -0
  15. package/dist/src/database/index.d.ts.map +1 -1
  16. package/dist/src/database/index.js +2 -0
  17. package/dist/src/database/index.js.map +1 -1
  18. package/dist/src/database/migration/MigrationResetCommand.d.ts.map +1 -1
  19. package/dist/src/database/migration/MigrationResetCommand.js +6 -20
  20. package/dist/src/database/migration/MigrationResetCommand.js.map +1 -1
  21. package/dist/src/database/migration/MigrationRunCommand.d.ts.map +1 -1
  22. package/dist/src/database/migration/MigrationRunCommand.js +2 -0
  23. package/dist/src/database/migration/MigrationRunCommand.js.map +1 -1
  24. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts +2 -0
  25. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts.map +1 -1
  26. package/dist/src/database/migration/create/MigrationCreateCommand.js +36 -11
  27. package/dist/src/database/migration/create/MigrationCreateCommand.js.map +1 -1
  28. package/dist/src/database/migration/create/builder-regenerator.d.ts +12 -0
  29. package/dist/src/database/migration/create/builder-regenerator.d.ts.map +1 -0
  30. package/dist/src/database/migration/create/builder-regenerator.js +308 -0
  31. package/dist/src/database/migration/create/builder-regenerator.js.map +1 -0
  32. package/dist/src/database/migration/create/comparator.js +33 -4
  33. package/dist/src/database/migration/create/comparator.js.map +1 -1
  34. package/dist/src/database/migration/create/db-reader.js +63 -9
  35. package/dist/src/database/migration/create/db-reader.js.map +1 -1
  36. package/dist/src/database/migration/create/ddl-generator.d.ts.map +1 -1
  37. package/dist/src/database/migration/create/ddl-generator.js +44 -206
  38. package/dist/src/database/migration/create/ddl-generator.js.map +1 -1
  39. package/dist/src/database/migration/create/entity-reader.js +47 -5
  40. package/dist/src/database/migration/create/entity-reader.js.map +1 -1
  41. package/dist/src/database/migration/create/file-generator.d.ts +2 -0
  42. package/dist/src/database/migration/create/file-generator.d.ts.map +1 -1
  43. package/dist/src/database/migration/create/file-generator.js +7 -2
  44. package/dist/src/database/migration/create/file-generator.js.map +1 -1
  45. package/dist/src/database/migration/create/schema-model.d.ts +9 -0
  46. package/dist/src/database/migration/create/schema-model.d.ts.map +1 -1
  47. package/dist/src/database/migration/create/schema-model.js +3 -3
  48. package/dist/src/database/mysql.d.ts.map +1 -1
  49. package/dist/src/database/mysql.js +5 -11
  50. package/dist/src/database/mysql.js.map +1 -1
  51. package/dist/src/database/postgres.d.ts +1 -0
  52. package/dist/src/database/postgres.d.ts.map +1 -1
  53. package/dist/src/database/postgres.js +1 -13
  54. package/dist/src/database/postgres.js.map +1 -1
  55. package/dist/src/database/schema/AlterBlueprint.d.ts +50 -0
  56. package/dist/src/database/schema/AlterBlueprint.d.ts.map +1 -0
  57. package/dist/src/database/schema/AlterBlueprint.js +88 -0
  58. package/dist/src/database/schema/AlterBlueprint.js.map +1 -0
  59. package/dist/src/database/schema/Blueprint.d.ts +16 -0
  60. package/dist/src/database/schema/Blueprint.d.ts.map +1 -0
  61. package/dist/src/database/schema/Blueprint.js +51 -0
  62. package/dist/src/database/schema/Blueprint.js.map +1 -0
  63. package/dist/src/database/schema/BlueprintBase.d.ts +65 -0
  64. package/dist/src/database/schema/BlueprintBase.d.ts.map +1 -0
  65. package/dist/src/database/schema/BlueprintBase.js +385 -0
  66. package/dist/src/database/schema/BlueprintBase.js.map +1 -0
  67. package/dist/src/database/schema/ColumnDefinition.d.ts +43 -0
  68. package/dist/src/database/schema/ColumnDefinition.d.ts.map +1 -0
  69. package/dist/src/database/schema/ColumnDefinition.js +117 -0
  70. package/dist/src/database/schema/ColumnDefinition.js.map +1 -0
  71. package/dist/src/database/schema/Schema.d.ts +32 -0
  72. package/dist/src/database/schema/Schema.d.ts.map +1 -0
  73. package/dist/src/database/schema/Schema.js +151 -0
  74. package/dist/src/database/schema/Schema.js.map +1 -0
  75. package/dist/src/database/schema/grammar/Grammar.d.ts +35 -0
  76. package/dist/src/database/schema/grammar/Grammar.d.ts.map +1 -0
  77. package/dist/src/database/schema/grammar/Grammar.js +36 -0
  78. package/dist/src/database/schema/grammar/Grammar.js.map +1 -0
  79. package/dist/src/database/schema/grammar/MySQLGrammar.d.ts +29 -0
  80. package/dist/src/database/schema/grammar/MySQLGrammar.d.ts.map +1 -0
  81. package/dist/src/database/schema/grammar/MySQLGrammar.js +199 -0
  82. package/dist/src/database/schema/grammar/MySQLGrammar.js.map +1 -0
  83. package/dist/src/database/schema/grammar/PostgresGrammar.d.ts +29 -0
  84. package/dist/src/database/schema/grammar/PostgresGrammar.d.ts.map +1 -0
  85. package/dist/src/database/schema/grammar/PostgresGrammar.js +233 -0
  86. package/dist/src/database/schema/grammar/PostgresGrammar.js.map +1 -0
  87. package/dist/src/database/schema/index.d.ts +9 -0
  88. package/dist/src/database/schema/index.d.ts.map +1 -0
  89. package/dist/src/database/schema/index.js +12 -0
  90. package/dist/src/database/schema/index.js.map +1 -0
  91. package/dist/src/database/types.d.ts +8 -0
  92. package/dist/src/database/types.d.ts.map +1 -1
  93. package/dist/src/database/types.js +3 -1
  94. package/dist/src/database/types.js.map +1 -1
  95. package/docs/content/cli.md +4 -1
  96. package/docs/content/configuration.md +6 -0
  97. package/docs/content/database.md +137 -0
  98. package/package.json +1 -1
  99. package/src/app/config.ts +2 -0
  100. package/src/database/common.ts +51 -0
  101. package/src/database/factory.ts +59 -0
  102. package/src/database/index.ts +2 -0
  103. package/src/database/migration/MigrationResetCommand.ts +6 -22
  104. package/src/database/migration/MigrationRunCommand.ts +2 -0
  105. package/src/database/migration/create/MigrationCreateCommand.ts +42 -12
  106. package/src/database/migration/create/builder-regenerator.ts +294 -0
  107. package/src/database/migration/create/comparator.ts +34 -4
  108. package/src/database/migration/create/db-reader.ts +60 -9
  109. package/src/database/migration/create/ddl-generator.ts +45 -212
  110. package/src/database/migration/create/entity-reader.ts +46 -5
  111. package/src/database/migration/create/file-generator.ts +5 -1
  112. package/src/database/migration/create/schema-model.ts +6 -0
  113. package/src/database/mysql.ts +7 -15
  114. package/src/database/postgres.ts +3 -17
  115. package/src/database/schema/AlterBlueprint.ts +92 -0
  116. package/src/database/schema/Blueprint.ts +43 -0
  117. package/src/database/schema/BlueprintBase.ts +425 -0
  118. package/src/database/schema/ColumnDefinition.ts +131 -0
  119. package/src/database/schema/Schema.ts +167 -0
  120. package/src/database/schema/grammar/Grammar.ts +62 -0
  121. package/src/database/schema/grammar/MySQLGrammar.ts +206 -0
  122. package/src/database/schema/grammar/PostgresGrammar.ts +243 -0
  123. package/src/database/schema/index.ts +8 -0
  124. package/src/database/types.ts +6 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schema = void 0;
4
+ const common_1 = require("../common");
5
+ /*@ts-ignore*/
6
+ var { __ΩDialect } = require('../dialect');
7
+ const dialect_1 = require("../dialect");
8
+ /*@ts-ignore*/
9
+ var { __ΩForeignKeySchema } = require('../migration/create/schema-model');
10
+ const AlterBlueprint_1 = require("./AlterBlueprint");
11
+ const Blueprint_1 = require("./Blueprint");
12
+ const Grammar_1 = require("./grammar/Grammar");
13
+ class Schema {
14
+ constructor(db, grammar) {
15
+ this.db = db;
16
+ this.grammar = grammar;
17
+ this.enumTypeRegistry = (Set.Ω = [['&']], new Set());
18
+ this.pendingForeignKeys = [];
19
+ }
20
+ /** Create a new table. Inline FKs are deferred until flush() (auto-called at migration end). */
21
+ async create(name, fn) {
22
+ const blueprint = new Blueprint_1.Blueprint(name, this.grammar);
23
+ fn(blueprint);
24
+ const table = blueprint.build();
25
+ for (const col of table.columns) {
26
+ if (col.type === 'enum' && col.enumTypeName && col.enumValues) {
27
+ await this.ensureEnumType(col.enumTypeName, col.enumValues);
28
+ }
29
+ }
30
+ await this.db.rawExecute(this.grammar.createTable(table));
31
+ for (const idx of table.indexes) {
32
+ await this.db.rawExecute(this.grammar.createIndex(name, idx));
33
+ }
34
+ for (const fk of table.foreignKeys) {
35
+ this.pendingForeignKeys.push({ tableName: name, fk });
36
+ }
37
+ }
38
+ /** Modify an existing table — add/drop/rename/change columns, add/drop indexes & FKs, change PK. */
39
+ async alter(name, fn) {
40
+ const blueprint = new AlterBlueprint_1.AlterBlueprint(name, this.grammar);
41
+ fn(blueprint);
42
+ // Order: drops first (to free up names/refs), then renames, then PG enum prep, then adds/modifies.
43
+ for (const fkName of blueprint.droppedForeignKeys) {
44
+ await this.db.rawExecute(this.grammar.dropForeignKey(name, fkName));
45
+ }
46
+ for (const idxName of blueprint.droppedIndexes) {
47
+ await this.db.rawExecute(this.grammar.dropIndex(name, idxName));
48
+ }
49
+ for (const { from, to } of blueprint.renamedIndexes) {
50
+ await this.db.rawExecute(this.grammar.renameIndex(name, from, to));
51
+ }
52
+ if (blueprint.dropsPrimaryKey) {
53
+ await this.db.rawExecute(this.grammar.dropPrimaryKey(name));
54
+ }
55
+ for (const colName of blueprint.droppedColumns) {
56
+ await this.db.rawExecute(this.grammar.dropColumn(name, colName));
57
+ }
58
+ for (const { from, to } of blueprint.renamedColumns) {
59
+ await this.db.rawExecute(this.grammar.renameColumn(name, from, to));
60
+ }
61
+ // Pre-create PG enum types for any added/modified columns
62
+ for (const col of [...blueprint.addedColumns, ...blueprint.modifiedColumns]) {
63
+ if (col.type === 'enum' && col.enumTypeName && col.enumValues) {
64
+ await this.ensureEnumType(col.enumTypeName, col.enumValues);
65
+ }
66
+ }
67
+ for (const col of blueprint.addedColumns) {
68
+ await this.db.rawExecute(this.grammar.addColumn(name, col));
69
+ }
70
+ for (const col of blueprint.modifiedColumns) {
71
+ for (const stmt of this.grammar.modifyColumn(name, col)) {
72
+ await this.db.rawExecute(stmt);
73
+ }
74
+ }
75
+ if (blueprint.newPrimaryKey) {
76
+ await this.db.rawExecute(this.grammar.addPrimaryKey(name, blueprint.newPrimaryKey));
77
+ }
78
+ for (const idx of blueprint.addedIndexes) {
79
+ await this.db.rawExecute(this.grammar.createIndex(name, idx));
80
+ }
81
+ // Defer added FKs until flush() so cross-table refs can resolve
82
+ for (const fk of blueprint.addedForeignKeys) {
83
+ this.pendingForeignKeys.push({ tableName: name, fk });
84
+ }
85
+ }
86
+ async drop(name) {
87
+ await this.db.rawExecute(this.grammar.dropTable(name));
88
+ }
89
+ async dropIfExists(name) {
90
+ await this.db.rawExecute(this.grammar.dropTableIfExists(name));
91
+ }
92
+ async rename(from, to) {
93
+ await this.db.rawExecute(this.grammar.renameTable(from, to));
94
+ }
95
+ /** Explicitly create a (PG) enum type. Deduped per Schema instance. No-op on MySQL. */
96
+ async enumType(name, values) {
97
+ await this.ensureEnumType(name, values);
98
+ }
99
+ /** Execute raw SQL. Escape hatch for cases the builder does not cover. */
100
+ async raw(sql) {
101
+ await this.db.rawExecute(sql);
102
+ }
103
+ /** Run a block only when running against the given dialect. */
104
+ async onlyOn(dialect, fn) {
105
+ if (this.grammar.dialect === dialect)
106
+ await fn();
107
+ }
108
+ // --- Introspection (for conditional/idempotent migrations) ---
109
+ async hasTable(name) {
110
+ const sql = (0, dialect_1.tableExistsSql)(this.grammar.dialect, name, this.grammar.pgSchema);
111
+ const rows = await this.db.rawQuery(sql);
112
+ return rows.length > 0;
113
+ }
114
+ async hasColumn(table, column) {
115
+ const sql = this.grammar.dialect === 'mysql'
116
+ ? `SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '${escapeLiteral(table)}' AND COLUMN_NAME = '${escapeLiteral(column)}'`
117
+ : `SELECT 1 FROM information_schema.columns WHERE table_schema = '${escapeLiteral(this.grammar.pgSchema)}' AND table_name = '${escapeLiteral(table)}' AND column_name = '${escapeLiteral(column)}'`;
118
+ const rows = await this.db.rawQuery(sql);
119
+ return rows.length > 0;
120
+ }
121
+ async hasIndex(table, indexName) {
122
+ const sql = this.grammar.dialect === 'mysql'
123
+ ? `SELECT 1 FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '${escapeLiteral(table)}' AND INDEX_NAME = '${escapeLiteral(indexName)}' LIMIT 1`
124
+ : `SELECT 1 FROM pg_indexes WHERE schemaname = '${escapeLiteral(this.grammar.pgSchema)}' AND tablename = '${escapeLiteral(table)}' AND indexname = '${escapeLiteral(indexName)}'`;
125
+ const rows = await this.db.rawQuery(sql);
126
+ return rows.length > 0;
127
+ }
128
+ /** Apply deferred FKs and clear per-cycle state. Called automatically by the migration runner. */
129
+ async flush() {
130
+ for (const { tableName, fk } of this.pendingForeignKeys) {
131
+ await this.db.rawExecute(this.grammar.addForeignKey(tableName, fk));
132
+ }
133
+ this.pendingForeignKeys.length = 0;
134
+ this.enumTypeRegistry.clear();
135
+ }
136
+ async ensureEnumType(name, values) {
137
+ if (this.enumTypeRegistry.has(name))
138
+ return;
139
+ this.enumTypeRegistry.add(name);
140
+ for (const stmt of this.grammar.createEnumType(name, values)) {
141
+ await this.db.rawExecute(stmt);
142
+ }
143
+ }
144
+ }
145
+ exports.Schema = Schema;
146
+ Schema.__type = ['enumTypeRegistry', function () { return (Set.Ω = [['&']], new Set()); }, 'tableName', () => __ΩForeignKeySchema, 'fk', 'pendingForeignKeys', function () { return []; }, () => common_1.BaseDatabase, 'db', () => Grammar_1.Grammar, 'grammar', 'constructor', 'name', () => Blueprint_1.Blueprint, 't', '', 'fn', 'create', () => AlterBlueprint_1.AlterBlueprint, 'alter', 'drop', 'dropIfExists', 'from', 'to', 'rename', 'values', 'enumType', 'sql', 'raw', () => __ΩDialect, 'dialect', 'onlyOn', 'hasTable', 'table', 'column', 'hasColumn', 'indexName', 'hasIndex', 'flush', 'ensureEnumType', 'Schema', '!3!9;>"P&4#n$4%MF3&9;>\'PP7(2):9P7*2+:9"0,P&2-PP7.2/$/021$`02P&2-PP732/$/021$`04P&2-$`05P&2-$`06P&27&28$`09P&2-&F2:$`0;P&2<$`0=Pn>2?P$`/021$`0@P&2-)`0AP&2B&2C)`0DP&2B&2E)`0FP$`0GP&2-&F2:$`0H;5wI'];
147
+ function escapeLiteral(s) {
148
+ return s.replace(/'/g, "''");
149
+ }
150
+ escapeLiteral.__type = ['s', 'escapeLiteral', 'P&2!&/"'];
151
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../src/database/schema/Schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Dialect } from '../../dialect';
2
+ import { ColumnSchema, ForeignKeySchema, IndexSchema, TableSchema } from '../../migration/create/schema-model';
3
+ export declare abstract class Grammar {
4
+ readonly pgSchema: string;
5
+ abstract readonly dialect: Dialect;
6
+ constructor(pgSchema?: string);
7
+ abstract quote(name: string): string;
8
+ abstract qualifiedTable(name: string): string;
9
+ abstract createTable(table: TableSchema): string;
10
+ abstract createIndex(tableName: string, idx: IndexSchema): string;
11
+ abstract addForeignKey(tableName: string, fk: ForeignKeySchema): string;
12
+ /** Emits any per-enum-type DDL (PG: CREATE TYPE + CREATE CAST). MySQL returns []. */
13
+ abstract createEnumType(typeName: string, values: string[]): string[];
14
+ abstract dropTable(name: string): string;
15
+ abstract dropTableIfExists(name: string): string;
16
+ abstract renameTable(from: string, to: string): string;
17
+ /** Render one column line for use inside CREATE TABLE. */
18
+ abstract columnDef(col: ColumnSchema): string;
19
+ /** Render just the type portion (e.g. `VARCHAR(255)`, `BOOLEAN`, `BIGINT`) without modifiers. */
20
+ abstract columnType(col: ColumnSchema): string;
21
+ abstract addColumn(tableName: string, col: ColumnSchema): string;
22
+ abstract dropColumn(tableName: string, columnName: string): string;
23
+ /** Modify an existing column. PG may emit multiple statements (one per attribute change). */
24
+ abstract modifyColumn(tableName: string, col: ColumnSchema): string[];
25
+ abstract renameColumn(tableName: string, from: string, to: string): string;
26
+ abstract dropIndex(tableName: string, indexName: string): string;
27
+ abstract renameIndex(tableName: string, from: string, to: string): string;
28
+ abstract dropForeignKey(tableName: string, constraintName: string): string;
29
+ abstract addPrimaryKey(tableName: string, columns: string[]): string;
30
+ /** Drop the existing primary key. PG needs the constraint name; defaults to `${table}_pkey`. */
31
+ abstract dropPrimaryKey(tableName: string, constraintName?: string): string;
32
+ }
33
+ export declare function validateFkAction(action: string, dialect: Dialect): string;
34
+ export declare function escapeStr(s: string, dialect?: Dialect): string;
35
+ //# sourceMappingURL=Grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.d.ts","sourceRoot":"","sources":["../../../../../src/database/schema/grammar/Grammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAE/G,8BAAsB,OAAO;aAGG,QAAQ,EAAE,MAAM;IAF5C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEP,QAAQ,GAAE,MAAiB;IAEvD,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IACpC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE7C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAChD,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IACjE,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM;IAEvE,qFAAqF;IACrF,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAErE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IACxC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAChD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAEtD,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAE7C,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAI9C,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM;IAChE,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAClE,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;IACrE,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAC1E,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAChE,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IACzE,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAC1E,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IACpE,gGAAgG;IAChG,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;CAC9E;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CASzE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAK9D"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Grammar = void 0;
4
+ exports.validateFkAction = validateFkAction;
5
+ exports.escapeStr = escapeStr;
6
+ /*@ts-ignore*/
7
+ var { __ΩDialect } = require('../../dialect');
8
+ /*@ts-ignore*/
9
+ var { __ΩTableSchema, __ΩIndexSchema, __ΩForeignKeySchema, __ΩColumnSchema } = require('../../migration/create/schema-model');
10
+ class Grammar {
11
+ constructor(pgSchema = 'public') {
12
+ this.pgSchema = pgSchema;
13
+ }
14
+ }
15
+ exports.Grammar = Grammar;
16
+ Grammar.__type = [() => __ΩDialect, 'dialect', 'pgSchema', () => "public", 'constructor', 'name', 'quote', 'qualifiedTable', () => __ΩTableSchema, 'table', 'createTable', 'tableName', () => __ΩIndexSchema, 'idx', 'createIndex', () => __ΩForeignKeySchema, 'fk', 'addForeignKey', 'typeName', 'values', 'createEnumType', 'dropTable', 'dropTableIfExists', 'from', 'to', 'renameTable', () => __ΩColumnSchema, 'col', 'columnDef', () => __ΩColumnSchema, 'columnType', () => __ΩColumnSchema, 'addColumn', 'columnName', 'dropColumn', () => __ΩColumnSchema, 'modifyColumn', 'renameColumn', 'indexName', 'dropIndex', 'renameIndex', 'constraintName', 'dropForeignKey', 'columns', 'addPrimaryKey', 'dropPrimaryKey', 'Grammar', 'n!3"9=P&2#:9>$"0%P&2&&0\'=P&2&&0(=Pn)2*&0+=P&2,n-2.&0/=P&2,n021&02=P&23&F24&F05=P&2&&06=P&2&&07=P&28&29&0:=Pn;2<&0==Pn>2<&0?=P&2,n@2<&0A=P&2,&2B&0C=P&2,nD2<&F0E=P&2,&28&29&0F=P&2,&2G&0H=P&2,&28&29&0I=P&2,&2J&0K=P&2,&F2L&0M=P&2,&2J8&0N=5wO'];
17
+ const VALID_FK_ACTIONS = new Set(['RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT', 'NO ACTION']);
18
+ function validateFkAction(action, dialect) {
19
+ const upper = action.toUpperCase();
20
+ if (!VALID_FK_ACTIONS.has(upper)) {
21
+ throw new Error(`Invalid foreign key action: '${action}'`);
22
+ }
23
+ if (upper === 'SET DEFAULT' && dialect === 'mysql') {
24
+ throw new Error(`Foreign key action 'SET DEFAULT' is not supported by MySQL/InnoDB`);
25
+ }
26
+ return upper;
27
+ }
28
+ validateFkAction.__type = ['action', () => __ΩDialect, 'dialect', 'validateFkAction', 'P&2!n"2#&/$'];
29
+ function escapeStr(s, dialect) {
30
+ if (dialect === 'mysql') {
31
+ s = s.replace(/\\/g, '\\\\');
32
+ }
33
+ return s.replace(/'/g, "''");
34
+ }
35
+ escapeStr.__type = ['s', () => __ΩDialect, 'dialect', 'escapeStr', 'P&2!n"2#8&/$'];
36
+ //# sourceMappingURL=Grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../../../../src/database/schema/grammar/Grammar.ts"],"names":[],"mappings":";;;AA6CA,4CASC;AAED,8BAKC;;6BA7DuB,eAAe;;uFACkC,qCAAqC;AAE9G,MAAsB,OAAO;IAGzB,YAA4B,WAAmB,QAAQ;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;;AAH/D,0BAsCC;;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAElG,SAAgB,gBAAgB,CAAC,MAAc,EAAE,OAAgB;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,KAAK,aAAa,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;;AAED,SAAgB,SAAS,CAAC,CAAS,EAAE,OAAiB;IAClD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACtB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Dialect } from '../../dialect';
2
+ import { ColumnSchema, ForeignKeySchema, IndexSchema, TableSchema } from '../../migration/create/schema-model';
3
+ import { Grammar } from './Grammar';
4
+ export declare class MySQLGrammar extends Grammar {
5
+ readonly dialect: Dialect;
6
+ quote(name: string): string;
7
+ qualifiedTable(name: string): string;
8
+ createTable(table: TableSchema): string;
9
+ createIndex(tableName: string, idx: IndexSchema): string;
10
+ addForeignKey(tableName: string, fk: ForeignKeySchema): string;
11
+ createEnumType(_typeName: string, _values: string[]): string[];
12
+ dropTable(name: string): string;
13
+ dropTableIfExists(name: string): string;
14
+ renameTable(from: string, to: string): string;
15
+ addColumn(tableName: string, col: ColumnSchema): string;
16
+ private positionClause;
17
+ dropColumn(tableName: string, columnName: string): string;
18
+ modifyColumn(tableName: string, col: ColumnSchema): string[];
19
+ renameColumn(tableName: string, from: string, to: string): string;
20
+ dropIndex(tableName: string, indexName: string): string;
21
+ renameIndex(tableName: string, from: string, to: string): string;
22
+ dropForeignKey(tableName: string, constraintName: string): string;
23
+ addPrimaryKey(tableName: string, columns: string[]): string;
24
+ dropPrimaryKey(tableName: string, _constraintName?: string): string;
25
+ columnDef(col: ColumnSchema): string;
26
+ columnType(col: ColumnSchema): string;
27
+ private typeDef;
28
+ }
29
+ //# sourceMappingURL=MySQLGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MySQLGrammar.d.ts","sourceRoot":"","sources":["../../../../../src/database/schema/grammar/MySQLGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC/G,OAAO,EAAa,OAAO,EAAoB,MAAM,WAAW,CAAC;AAEjE,qBAAa,YAAa,SAAQ,OAAO;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAW;IAEpC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAgBvC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IAOxD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM;IAa9D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAI9D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM;IAIvD,OAAO,CAAC,cAAc;IAMtB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAIzD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;IAI5D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIjE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIvD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIhE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAIjE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAM3D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM;IAInE,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAoBpC,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAIrC,OAAO,CAAC,OAAO;CAuDlB"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MySQLGrammar = void 0;
4
+ function __assignType(fn, args) {
5
+ fn.__type = args;
6
+ return fn;
7
+ }
8
+ /*@ts-ignore*/
9
+ var { __ΩDialect } = require('../../dialect');
10
+ const dialect_1 = require("../../dialect");
11
+ /*@ts-ignore*/
12
+ var { __ΩTableSchema, __ΩIndexSchema, __ΩForeignKeySchema, __ΩColumnSchema } = require('../../migration/create/schema-model');
13
+ const Grammar_1 = require("./Grammar");
14
+ class MySQLGrammar extends Grammar_1.Grammar {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.dialect = 'mysql';
18
+ }
19
+ quote(name) {
20
+ return (0, dialect_1.quoteId)('mysql', name);
21
+ }
22
+ qualifiedTable(name) {
23
+ return this.quote(name);
24
+ }
25
+ createTable(table) {
26
+ const lines = [];
27
+ const pkCols = table.columns.filter(__assignType(c => c.isPrimaryKey, ['c', '', 'P"2!"/"'])).map(__assignType(c => c.name, ['c', '', 'P"2!"/"']));
28
+ for (const col of table.columns) {
29
+ lines.push(` ${this.columnDef(col)}`);
30
+ }
31
+ if (pkCols.length > 0) {
32
+ const quoted = pkCols.map(__assignType(c => this.quote(c), ['c', '', 'P"2!"/"'])).join(', ');
33
+ lines.push(` PRIMARY KEY (${quoted})`);
34
+ }
35
+ return `CREATE TABLE ${this.qualifiedTable(table.name)} (\n${lines.join(',\n')}\n)`;
36
+ }
37
+ createIndex(tableName, idx) {
38
+ const unique = idx.unique ? 'UNIQUE ' : '';
39
+ const spatial = idx.spatial ? 'SPATIAL ' : '';
40
+ const cols = idx.columns.map(__assignType(c => this.quote(c), ['c', '', 'P"2!"/"'])).join(', ');
41
+ return `CREATE ${spatial}${unique}INDEX ${this.quote(idx.name)} ON ${this.qualifiedTable(tableName)} (${cols})`;
42
+ }
43
+ addForeignKey(tableName, fk) {
44
+ const cols = fk.columns.map(__assignType(c => this.quote(c), ['c', '', 'P"2!"/"'])).join(', ');
45
+ const refCols = fk.referencedColumns.map(__assignType(c => this.quote(c), ['c', '', 'P"2!"/"'])).join(', ');
46
+ const onDelete = (0, Grammar_1.validateFkAction)(fk.onDelete, this.dialect);
47
+ const onUpdate = (0, Grammar_1.validateFkAction)(fk.onUpdate, this.dialect);
48
+ return (`ALTER TABLE ${this.qualifiedTable(tableName)} ADD CONSTRAINT ${this.quote(fk.name)} ` +
49
+ `FOREIGN KEY (${cols}) REFERENCES ${this.qualifiedTable(fk.referencedTable)} (${refCols}) ` +
50
+ `ON DELETE ${onDelete} ON UPDATE ${onUpdate}`);
51
+ }
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
53
+ createEnumType(_typeName, _values) {
54
+ return [];
55
+ }
56
+ dropTable(name) {
57
+ return `DROP TABLE ${this.qualifiedTable(name)}`;
58
+ }
59
+ dropTableIfExists(name) {
60
+ return `DROP TABLE IF EXISTS ${this.qualifiedTable(name)}`;
61
+ }
62
+ renameTable(from, to) {
63
+ return `RENAME TABLE ${this.qualifiedTable(from)} TO ${this.qualifiedTable(to)}`;
64
+ }
65
+ addColumn(tableName, col) {
66
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} ADD COLUMN ${this.columnDef(col)}${this.positionClause(col)}`;
67
+ }
68
+ positionClause(col) {
69
+ if (col.afterColumn === null)
70
+ return ' FIRST';
71
+ if (typeof col.afterColumn === 'string')
72
+ return ` AFTER ${this.quote(col.afterColumn)}`;
73
+ return '';
74
+ }
75
+ dropColumn(tableName, columnName) {
76
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} DROP COLUMN ${this.quote(columnName)}`;
77
+ }
78
+ modifyColumn(tableName, col) {
79
+ return [`ALTER TABLE ${this.qualifiedTable(tableName)} MODIFY COLUMN ${this.columnDef(col)}`];
80
+ }
81
+ renameColumn(tableName, from, to) {
82
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} RENAME COLUMN ${this.quote(from)} TO ${this.quote(to)}`;
83
+ }
84
+ dropIndex(tableName, indexName) {
85
+ return `DROP INDEX ${this.quote(indexName)} ON ${this.qualifiedTable(tableName)}`;
86
+ }
87
+ renameIndex(tableName, from, to) {
88
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} RENAME INDEX ${this.quote(from)} TO ${this.quote(to)}`;
89
+ }
90
+ dropForeignKey(tableName, constraintName) {
91
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} DROP FOREIGN KEY ${this.quote(constraintName)}`;
92
+ }
93
+ addPrimaryKey(tableName, columns) {
94
+ const cols = columns.map(__assignType(c => this.quote(c), ['c', '', 'P"2!"/"'])).join(', ');
95
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} ADD PRIMARY KEY (${cols})`;
96
+ }
97
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
98
+ dropPrimaryKey(tableName, _constraintName) {
99
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} DROP PRIMARY KEY`;
100
+ }
101
+ columnDef(col) {
102
+ let def = `${this.quote(col.name)} ${this.typeDef(col)}`;
103
+ if (col.unsigned)
104
+ def += ' UNSIGNED';
105
+ if (!col.nullable)
106
+ def += ' NOT NULL';
107
+ if (col.autoIncrement)
108
+ def += ' AUTO_INCREMENT';
109
+ if (col.defaultExpression) {
110
+ def += ` DEFAULT ${col.defaultExpression}`;
111
+ }
112
+ else if (col.defaultValue !== undefined) {
113
+ def += ` DEFAULT ${renderMysqlDefault(col)}`;
114
+ }
115
+ if (col.onUpdateExpression) {
116
+ def += ` ON UPDATE ${col.onUpdateExpression}`;
117
+ }
118
+ return def;
119
+ }
120
+ columnType(col) {
121
+ return this.typeDef(col);
122
+ }
123
+ typeDef(col) {
124
+ switch (col.type) {
125
+ case 'varchar':
126
+ return `VARCHAR(${col.size || 255})`;
127
+ case 'char':
128
+ return `CHAR(${col.size || 1})`;
129
+ case 'tinyint':
130
+ return col.size === 1 ? 'TINYINT(1)' : 'TINYINT';
131
+ case 'smallint':
132
+ return 'SMALLINT';
133
+ case 'int':
134
+ return 'INT';
135
+ case 'bigint':
136
+ return 'BIGINT';
137
+ case 'float':
138
+ return 'FLOAT';
139
+ case 'double':
140
+ return 'DOUBLE';
141
+ case 'decimal':
142
+ if (col.size === undefined)
143
+ return 'DECIMAL';
144
+ return col.scale !== undefined ? `DECIMAL(${col.size},${col.scale})` : `DECIMAL(${col.size})`;
145
+ case 'boolean':
146
+ return 'TINYINT(1)';
147
+ case 'date':
148
+ return 'DATE';
149
+ case 'datetime':
150
+ return 'DATETIME';
151
+ case 'timestamp':
152
+ return 'TIMESTAMP';
153
+ case 'text':
154
+ return 'TEXT';
155
+ case 'tinytext':
156
+ return 'TINYTEXT';
157
+ case 'mediumtext':
158
+ return 'MEDIUMTEXT';
159
+ case 'longtext':
160
+ return 'LONGTEXT';
161
+ case 'binary':
162
+ return `BINARY(${col.size || 16})`;
163
+ case 'blob':
164
+ return 'BLOB';
165
+ case 'json':
166
+ return 'JSON';
167
+ case 'point':
168
+ return 'POINT';
169
+ case 'enum':
170
+ if (col.enumValues) {
171
+ const vals = col.enumValues.map(__assignType(v => `'${(0, Grammar_1.escapeStr)(v, 'mysql')}'`, ['v', '', 'P"2!"/"'])).join(',');
172
+ return `ENUM(${vals})`;
173
+ }
174
+ return 'VARCHAR(255)';
175
+ default:
176
+ return col.type.toUpperCase();
177
+ }
178
+ }
179
+ }
180
+ exports.MySQLGrammar = MySQLGrammar;
181
+ MySQLGrammar.__type = [() => Grammar_1.Grammar, () => __ΩDialect, 'dialect', function () { return 'mysql'; }, 'name', 'quote', 'qualifiedTable', () => __ΩTableSchema, 'table', 'createTable', 'tableName', () => __ΩIndexSchema, 'idx', 'createIndex', () => __ΩForeignKeySchema, 'fk', 'addForeignKey', '_typeName', '_values', 'createEnumType', 'dropTable', 'dropTableIfExists', 'from', 'to', 'renameTable', () => __ΩColumnSchema, 'col', 'addColumn', () => __ΩColumnSchema, 'positionClause', 'columnName', 'dropColumn', () => __ΩColumnSchema, 'modifyColumn', 'renameColumn', 'indexName', 'dropIndex', 'renameIndex', 'constraintName', 'dropForeignKey', 'columns', 'addPrimaryKey', '_constraintName', 'dropPrimaryKey', () => __ΩColumnSchema, 'columnDef', () => __ΩColumnSchema, 'columnType', () => __ΩColumnSchema, 'typeDef', 'MySQLGrammar', 'P7!n"3#9>$P&2%&0&P&2%&0\'Pn(2)&0*P&2+n,2-&0.P&2+n/20&01P&22&F23&F04P&2%&05P&2%&06P&27&28&09P&2+n:2;&0<Pn=2;&0>;P&2+&2?&0@P&2+nA2;&F0BP&2+&27&28&0CP&2+&2D&0EP&2+&27&28&0FP&2+&2G&0HP&2+&F2I&0JP&2+&2K8&0LPnM2;&0NPnO2;&0PPnQ2;&0R;5wS'];
182
+ const NUMERIC_TYPES = new Set(['tinyint', 'smallint', 'int', 'integer', 'bigint', 'float', 'double', 'decimal', 'numeric']);
183
+ function renderMysqlDefault(col) {
184
+ const v = col.defaultValue;
185
+ if (v === null)
186
+ return 'NULL';
187
+ if (typeof v === 'boolean')
188
+ return v ? '1' : '0';
189
+ // tinyint(1)/boolean — entity-reader may pre-format as '1'/'0'/'true'/'false'
190
+ if (col.type === 'boolean' || (col.type === 'tinyint' && col.size === 1)) {
191
+ const s = String(v).toLowerCase();
192
+ return s === 'true' || s === '1' ? '1' : '0';
193
+ }
194
+ if (typeof v === 'number' || NUMERIC_TYPES.has(col.type))
195
+ return String(v);
196
+ return `'${(0, Grammar_1.escapeStr)(String(v), 'mysql')}'`;
197
+ }
198
+ renderMysqlDefault.__type = [() => __ΩColumnSchema, 'col', 'renderMysqlDefault', 'Pn!2"&/#'];
199
+ //# sourceMappingURL=MySQLGrammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MySQLGrammar.js","sourceRoot":"","sources":["../../../../../src/database/schema/grammar/MySQLGrammar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Dialect } from '../../dialect';
2
+ import { ColumnSchema, ForeignKeySchema, IndexSchema, TableSchema } from '../../migration/create/schema-model';
3
+ import { Grammar } from './Grammar';
4
+ export declare class PostgresGrammar extends Grammar {
5
+ readonly dialect: Dialect;
6
+ quote(name: string): string;
7
+ qualifiedTable(name: string): string;
8
+ qualifiedType(typeName: string): string;
9
+ createTable(table: TableSchema): string;
10
+ createIndex(tableName: string, idx: IndexSchema): string;
11
+ addForeignKey(tableName: string, fk: ForeignKeySchema): string;
12
+ createEnumType(typeName: string, values: string[]): string[];
13
+ dropTable(name: string): string;
14
+ dropTableIfExists(name: string): string;
15
+ renameTable(from: string, to: string): string;
16
+ addColumn(tableName: string, col: ColumnSchema): string;
17
+ dropColumn(tableName: string, columnName: string): string;
18
+ modifyColumn(tableName: string, col: ColumnSchema): string[];
19
+ renameColumn(tableName: string, from: string, to: string): string;
20
+ dropIndex(tableName: string, indexName: string): string;
21
+ renameIndex(_tableName: string, from: string, to: string): string;
22
+ dropForeignKey(tableName: string, constraintName: string): string;
23
+ addPrimaryKey(tableName: string, columns: string[]): string;
24
+ dropPrimaryKey(tableName: string, constraintName?: string): string;
25
+ columnType(col: ColumnSchema): string;
26
+ columnDef(col: ColumnSchema): string;
27
+ private typeDef;
28
+ }
29
+ //# sourceMappingURL=PostgresGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresGrammar.d.ts","sourceRoot":"","sources":["../../../../../src/database/schema/grammar/PostgresGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC/G,OAAO,EAAa,OAAO,EAAoB,MAAM,WAAW,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,OAAO;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAc;IAEvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAOpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOvC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAgBvC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IAOxD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM;IAY9D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAmB5D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM;IAIvD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAIzD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;IAkB5D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIjE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IASvD,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAMjE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAIjE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAK3D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAKlE,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAIrC,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAuBpC,OAAO,CAAC,OAAO;CAmDlB"}