@zintrust/core 0.1.21 → 0.1.22

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 (67) hide show
  1. package/package.json +1 -1
  2. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  3. package/src/cli/commands/MigrateCommand.js +1 -1
  4. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  5. package/src/cli/d1/D1SqlMigrations.js +4 -3
  6. package/src/cli/scaffolding/ModelGenerator.d.ts +1 -1
  7. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
  8. package/src/cli/scaffolding/ModelGenerator.js +10 -2
  9. package/src/config/broadcast.js +1 -1
  10. package/src/config/storage.js +4 -4
  11. package/src/config/type.d.ts +11 -0
  12. package/src/config/type.d.ts.map +1 -1
  13. package/src/config/type.js +10 -1
  14. package/src/index.d.ts.map +1 -1
  15. package/src/migrations/MigrationLoader.d.ts +1 -1
  16. package/src/migrations/MigrationLoader.d.ts.map +1 -1
  17. package/src/migrations/Migrator.d.ts +3 -3
  18. package/src/migrations/Migrator.d.ts.map +1 -1
  19. package/src/migrations/Migrator.js +1 -1
  20. package/src/migrations/MigratorFactory.d.ts +1 -1
  21. package/src/migrations/MigratorFactory.d.ts.map +1 -1
  22. package/src/migrations/MigratorFactory.js +3 -3
  23. package/src/migrations/enum/index.d.ts +93 -0
  24. package/src/migrations/enum/index.d.ts.map +1 -0
  25. package/src/migrations/enum/index.js +92 -0
  26. package/src/migrations/schema/Blueprint.d.ts +1 -1
  27. package/src/migrations/schema/Blueprint.d.ts.map +1 -1
  28. package/src/migrations/schema/Blueprint.js +27 -25
  29. package/src/migrations/schema/Schema.d.ts +1 -1
  30. package/src/migrations/schema/Schema.d.ts.map +1 -1
  31. package/src/migrations/schema/Schema.js +4 -3
  32. package/src/migrations/schema/SchemaCompiler.d.ts +1 -1
  33. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
  34. package/src/migrations/schema/SchemaCompiler.js +99 -91
  35. package/src/migrations/schema/index.d.ts +4 -4
  36. package/src/migrations/schema/index.d.ts.map +1 -1
  37. package/src/migrations/schema/index.js +3 -3
  38. package/src/migrations/schema/types.d.ts +2 -1
  39. package/src/migrations/schema/types.d.ts.map +1 -1
  40. package/src/orm/ConnectionManager.d.ts +6 -4
  41. package/src/orm/ConnectionManager.d.ts.map +1 -1
  42. package/src/orm/ConnectionManager.js +213 -75
  43. package/src/orm/Database.d.ts +2 -1
  44. package/src/orm/Database.d.ts.map +1 -1
  45. package/src/orm/DatabaseAdapter.d.ts +3 -2
  46. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  47. package/src/orm/DatabaseAdapter.js +17 -0
  48. package/src/orm/Model.d.ts.map +1 -1
  49. package/src/orm/Model.js +24 -2
  50. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  51. package/src/orm/adapters/D1Adapter.js +2 -1
  52. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  53. package/src/orm/adapters/D1RemoteAdapter.js +2 -1
  54. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
  55. package/src/orm/adapters/MySQLAdapter.js +2 -1
  56. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
  57. package/src/orm/adapters/SQLServerAdapter.js +2 -1
  58. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
  59. package/src/orm/adapters/SQLiteAdapter.js +2 -1
  60. package/src/orm/migrations/MigrationStore.d.ts.map +1 -1
  61. package/src/performance/Optimizer.d.ts.map +1 -1
  62. package/src/performance/Optimizer.js +55 -14
  63. package/src/profiling/RequestProfiler.d.ts.map +1 -1
  64. package/src/profiling/RequestProfiler.js +3 -1
  65. package/src/runtime/StartupConfigFileRegistry.d.ts +14 -13
  66. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
  67. package/src/runtime/StartupConfigFileRegistry.js +10 -11
@@ -1,4 +1,5 @@
1
1
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
2
+ import { ColumnType as ColumnTypeName, SchOther } from '../enum/index.js';
2
3
  const IDENT_RE = /^[A-Za-z_]\w*$/;
3
4
  function assertIdentifier(label, value) {
4
5
  if (!IDENT_RE.test(value)) {
@@ -46,7 +47,7 @@ function createColumnBuilder(def) {
46
47
  }
47
48
  function createForeignKeyBuilder(columns, name) {
48
49
  for (const c of columns)
49
- assertIdentifier('column', c);
50
+ assertIdentifier(SchOther.COLUMN, c);
50
51
  const fk = {
51
52
  name: name ?? `fk_${columns.join('_')}`,
52
53
  columns,
@@ -97,7 +98,7 @@ function createState(tableName) {
97
98
  };
98
99
  }
99
100
  function addColumn(state, name, type, length) {
100
- assertIdentifier('column', name);
101
+ assertIdentifier(SchOther.COLUMN, name);
101
102
  const def = {
102
103
  name,
103
104
  type,
@@ -125,35 +126,36 @@ function buildDefinition(state) {
125
126
  }
126
127
  function createBlueprintApi(state) {
127
128
  const api = {
128
- string: (name, length = 255) => addColumn(state, name, 'STRING', length),
129
- integer: (name) => addColumn(state, name, 'INTEGER'),
130
- bigInteger: (name) => addColumn(state, name, 'INTEGER').unsigned(),
131
- real: (name) => addColumn(state, name, 'REAL'),
132
- boolean: (name) => addColumn(state, name, 'BOOLEAN'),
133
- text: (name) => addColumn(state, name, 'TEXT'),
134
- json: (name) => addColumn(state, name, 'JSON'),
135
- timestamp: (name) => addColumn(state, name, 'TIMESTAMP'),
136
- blob: (name) => addColumn(state, name, 'BLOB'),
137
- id: (name = 'id') => addColumn(state, name, 'INTEGER').primary().autoIncrement(),
138
- timestamps: (createdAt = 'created_at', updatedAt = 'updated_at') => {
139
- api.timestamp(createdAt).notNullable().default('CURRENT_TIMESTAMP');
140
- api.timestamp(updatedAt).notNullable().default('CURRENT_TIMESTAMP');
129
+ string: (name, length = 255) => addColumn(state, name, ColumnTypeName.STRING, length),
130
+ integer: (name) => addColumn(state, name, ColumnTypeName.INTEGER),
131
+ bigInteger: (name) => addColumn(state, name, ColumnTypeName.BIGINT).unsigned(),
132
+ uuid: (name) => addColumn(state, name, ColumnTypeName.UUID),
133
+ real: (name) => addColumn(state, name, ColumnTypeName.REAL),
134
+ boolean: (name) => addColumn(state, name, ColumnTypeName.BOOLEAN),
135
+ text: (name) => addColumn(state, name, ColumnTypeName.TEXT),
136
+ json: (name) => addColumn(state, name, ColumnTypeName.JSON),
137
+ timestamp: (name) => addColumn(state, name, ColumnTypeName.TIMESTAMP),
138
+ blob: (name) => addColumn(state, name, ColumnTypeName.BLOB),
139
+ id: (name = SchOther.ID) => addColumn(state, name, ColumnTypeName.INTEGER).primary().autoIncrement(),
140
+ timestamps: (createdAt = SchOther.CREATED_AT, updatedAt = SchOther.UPDATED_AT) => {
141
+ api.timestamp(createdAt).notNullable().default(ColumnTypeName.CURRENT_TIMESTAMP);
142
+ api.timestamp(updatedAt).notNullable().default(ColumnTypeName.CURRENT_TIMESTAMP);
141
143
  },
142
144
  index: (cols, name) => {
143
145
  const arr = Array.isArray(cols) ? cols : [cols];
144
146
  for (const c of arr)
145
- assertIdentifier('column', c);
147
+ assertIdentifier(SchOther.COLUMN, c);
146
148
  const indexName = name ?? `idx_${state.tableName}_${arr.join('_')}`;
147
- assertIdentifier('index', indexName);
148
- state.indexes.push({ name: indexName, columns: arr, type: 'INDEX' });
149
+ assertIdentifier(SchOther.INDEX, indexName);
150
+ state.indexes.push({ name: indexName, columns: arr, type: ColumnTypeName.INDEX });
149
151
  },
150
152
  unique: (cols, name) => {
151
153
  const arr = Array.isArray(cols) ? cols : [cols];
152
154
  for (const c of arr)
153
- assertIdentifier('column', c);
155
+ assertIdentifier(SchOther.COLUMN, c);
154
156
  const indexName = name ?? `uniq_${state.tableName}_${arr.join('_')}`;
155
- assertIdentifier('index', indexName);
156
- state.indexes.push({ name: indexName, columns: arr, type: 'UNIQUE' });
157
+ assertIdentifier(SchOther.INDEX, indexName);
158
+ state.indexes.push({ name: indexName, columns: arr, type: ColumnTypeName.UNIQUE });
157
159
  },
158
160
  foreign: (cols, name) => {
159
161
  const arr = Array.isArray(cols) ? cols : [cols];
@@ -162,15 +164,15 @@ function createBlueprintApi(state) {
162
164
  return builder;
163
165
  },
164
166
  dropColumn: (name) => {
165
- assertIdentifier('column', name);
167
+ assertIdentifier(SchOther.COLUMN, name);
166
168
  state.dropColumns.push(name);
167
169
  },
168
170
  dropIndex: (name) => {
169
- assertIdentifier('index', name);
171
+ assertIdentifier(SchOther.INDEX, name);
170
172
  state.dropIndexes.push(name);
171
173
  },
172
174
  dropForeign: (name) => {
173
- assertIdentifier('foreign key', name);
175
+ assertIdentifier(SchOther.FOREIGN_KEY, name);
174
176
  state.dropForeignKeys.push(name);
175
177
  },
176
178
  getDefinition: () => buildDefinition(state),
@@ -182,7 +184,7 @@ function createBlueprintApi(state) {
182
184
  }
183
185
  export const MigrationBlueprint = Object.freeze({
184
186
  create(tableName) {
185
- assertIdentifier('table', tableName);
187
+ assertIdentifier(SchOther.TABLE, tableName);
186
188
  const state = createState(tableName);
187
189
  return createBlueprintApi(state);
188
190
  },
@@ -1,5 +1,5 @@
1
1
  import type { IDatabase } from '../../orm/Database';
2
- import type { SchemaBuilder } from '../../migrations/schema/types';
2
+ import type { SchemaBuilder } from '../schema/types';
3
3
  declare function createSchemaBuilder(db: IDatabase): SchemaBuilder;
4
4
  export declare const Schema: Readonly<{
5
5
  create: typeof createSchemaBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/Schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA6M7F,iBAAS,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa,CAWzD;AAED,eAAO,MAAM,MAAM;;EAEjB,CAAC"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/Schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA6M5F,iBAAS,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa,CAWzD;AAED,eAAO,MAAM,MAAM;;EAEjB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
2
2
  import { BaseAdapter } from '../../orm/DatabaseAdapter.js';
3
- import { MigrationBlueprint } from '../../migrations/schema/Blueprint.js';
4
- import { MigrationSchemaCompiler } from '../../migrations/schema/SchemaCompiler.js';
3
+ import { isSqliteFamily } from '../enum/index.js';
4
+ import { MigrationBlueprint } from '../schema/Blueprint.js';
5
+ import { MigrationSchemaCompiler } from '../schema/SchemaCompiler.js';
5
6
  const IDENT_RE = /^[A-Za-z_]\w*$/;
6
7
  function assertIdentifier(label, value) {
7
8
  if (!IDENT_RE.test(value)) {
@@ -66,7 +67,7 @@ async function schemaDrop(db, tableName, ifExists) {
66
67
  }
67
68
  async function schemaHasTable(db, tableName) {
68
69
  const t = db.getType();
69
- if (t === 'sqlite' || t === 'd1' || t === 'd1-remote') {
70
+ if (isSqliteFamily(t)) {
70
71
  return queryExists(db, "SELECT 1 FROM sqlite_master WHERE type='table' AND name=? LIMIT 1", [
71
72
  tableName,
72
73
  ]);
@@ -1,4 +1,4 @@
1
- import type { ColumnDefinition, ForeignKeyDefinition, IndexDefinition, TableDefinition } from '../../migrations/schema/types';
1
+ import type { ColumnDefinition, ForeignKeyDefinition, IndexDefinition, TableDefinition } from '../schema/types';
2
2
  type AlterTablePlan = {
3
3
  addColumns: ColumnDefinition[];
4
4
  dropColumns: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCompiler.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/SchemaCompiler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAEhB,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAMnC,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAoUF,eAAO,MAAM,uBAAuB;+BAExB,MAAM,OACT,eAAe,SACb;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,MAAM,EAAE;6BAKc,MAAM,SAAS,MAAM,SAAS;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;8BAK5D,MAAM,SAAS,MAAM,QAAQ,cAAc,GAAG,MAAM,EAAE;EAIhF,CAAC"}
1
+ {"version":3,"file":"SchemaCompiler.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/SchemaCompiler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAEhB,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AA8UF,eAAO,MAAM,uBAAuB;+BAExB,MAAM,OACT,eAAe,SACb;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,MAAM,EAAE;6BAKc,MAAM,SAAS,MAAM,SAAS;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;8BAK5D,MAAM,SAAS,MAAM,QAAQ,cAAc,GAAG,MAAM,EAAE;EAIhF,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
2
+ import { AdaptersEnum, ColumnType, isSqliteFamily, SchOther } from '../enum/index.js';
2
3
  const IDENT_RE = /^[A-Za-z_]\w*$/;
3
4
  function isSupportedDriver(driver) {
4
- return (driver === 'sqlite' ||
5
- driver === 'd1' ||
6
- driver === 'd1-remote' ||
7
- driver === 'postgresql' ||
8
- driver === 'mysql' ||
9
- driver === 'sqlserver');
5
+ return (driver === AdaptersEnum.sqlite ||
6
+ driver === AdaptersEnum.d1 ||
7
+ driver === AdaptersEnum.d1Remote ||
8
+ driver === AdaptersEnum.postgresql ||
9
+ driver === AdaptersEnum.mysql ||
10
+ driver === AdaptersEnum.sqlserver);
10
11
  }
11
12
  function assertIdentifier(label, value) {
12
13
  if (!IDENT_RE.test(value)) {
@@ -20,21 +21,18 @@ function requireSupportedDriver(driver) {
20
21
  return driver;
21
22
  }
22
23
  function quoteIdent(driver, ident) {
23
- assertIdentifier('SQL', ident);
24
- if (driver === 'mysql')
24
+ assertIdentifier(ColumnType.SQL, ident);
25
+ if (driver === AdaptersEnum.mysql)
25
26
  return `\`${ident}\``;
26
27
  return `"${ident}"`;
27
28
  }
28
- function isSqliteFamily(driver) {
29
- return driver === 'sqlite' || driver === 'd1' || driver === 'd1-remote';
30
- }
31
29
  function normalizeForeignKeyAction(action) {
32
30
  switch (action) {
33
- case 'CASCADE':
34
- case 'SET NULL':
35
- case 'RESTRICT':
36
- case 'NO ACTION':
37
- case 'SET DEFAULT':
31
+ case ColumnType.CASCADE:
32
+ case ColumnType.SETNULL:
33
+ case ColumnType.RESTRICT:
34
+ case ColumnType.NOACTION:
35
+ case ColumnType.SETDEFAULT:
38
36
  return action;
39
37
  default:
40
38
  throw ErrorFactory.createValidationError(`Unsupported foreign key action: ${String(action)}`);
@@ -42,45 +40,53 @@ function normalizeForeignKeyAction(action) {
42
40
  }
43
41
  const TYPE_SQL = Object.freeze({
44
42
  STRING: (driver, def) => {
45
- const len = typeof def.length === 'number' && Number.isFinite(def.length) ? def.length : 255;
46
- return isSqliteFamily(driver) ? 'TEXT' : `VARCHAR(${len})`;
43
+ const len = typeof def.length === SchOther.NUMBER && Number.isFinite(def.length) ? def.length : 255;
44
+ return isSqliteFamily(driver) ? ColumnType.TEXT : `${ColumnType.VARCHAR}(${len})`;
45
+ },
46
+ INTEGER: (driver) => (driver === AdaptersEnum.mysql ? ColumnType.INT : ColumnType.INTEGER),
47
+ BIGINT: () => ColumnType.BIGINT,
48
+ UUID: (driver) => {
49
+ if (driver === AdaptersEnum.postgresql)
50
+ return ColumnType.UUID;
51
+ return isSqliteFamily(driver) ? ColumnType.TEXT : `${ColumnType.VARCHAR}(36)`;
47
52
  },
48
- INTEGER: (driver) => (driver === 'mysql' ? 'INT' : 'INTEGER'),
49
- REAL: (driver) => (driver === 'sqlserver' ? 'FLOAT' : 'REAL'),
50
- BOOLEAN: (driver) => (driver === 'mysql' ? 'TINYINT(1)' : 'BOOLEAN'),
51
- TEXT: () => 'TEXT',
53
+ REAL: (driver) => (driver === AdaptersEnum.sqlserver ? ColumnType.FLOAT : ColumnType.REAL),
54
+ BOOLEAN: (driver) => (driver === AdaptersEnum.mysql ? ColumnType.TINYINT_1 : ColumnType.BOOLEAN),
55
+ TEXT: () => ColumnType.TEXT,
52
56
  JSON: (driver) => {
53
- if (driver === 'postgresql')
54
- return 'JSONB';
55
- if (driver === 'mysql')
56
- return 'JSON';
57
- return 'TEXT';
57
+ if (driver === AdaptersEnum.postgresql)
58
+ return ColumnType.JSONB;
59
+ if (driver === AdaptersEnum.mysql)
60
+ return ColumnType.JSON;
61
+ return ColumnType.TEXT;
58
62
  },
59
63
  TIMESTAMP: (driver) => {
60
- if (driver === 'mysql')
61
- return 'DATETIME';
62
- if (driver === 'postgresql')
63
- return 'TIMESTAMP';
64
- return 'TEXT';
64
+ if (driver === AdaptersEnum.mysql)
65
+ return ColumnType.DATETIME;
66
+ if (driver === AdaptersEnum.postgresql)
67
+ return ColumnType.TIMESTAMP;
68
+ return ColumnType.TEXT;
65
69
  },
66
- BLOB: () => 'BLOB',
70
+ BLOB: (driver) => (driver === AdaptersEnum.postgresql ? ColumnType.BYTEA : ColumnType.BLOB),
67
71
  });
68
72
  function getColumnTypeSql(driver, def) {
69
73
  return TYPE_SQL[def.type](driver, def);
70
74
  }
71
- function getAutoIncrementColumnSql(driver, colName) {
75
+ function getAutoIncrementColumnSql(driver, colName, type) {
72
76
  const sqliteFamily = isSqliteFamily(driver);
73
77
  if (sqliteFamily) {
74
- return `${colName} INTEGER PRIMARY KEY AUTOINCREMENT`;
78
+ return `${colName} ${ColumnType.INTEGER} ${ColumnType.PRIMARY_KEY} ${ColumnType.AUTOINCREMENT}`;
75
79
  }
76
- if (driver === 'postgresql') {
77
- return `${colName} SERIAL PRIMARY KEY`;
80
+ if (driver === AdaptersEnum.postgresql) {
81
+ return `${colName} ${type === ColumnType.BIGINT ? ColumnType.BIGSERIAL : ColumnType.SERIAL} ${ColumnType.PRIMARY_KEY}`;
78
82
  }
79
- if (driver === 'mysql') {
80
- return `${colName} INT AUTO_INCREMENT PRIMARY KEY`;
83
+ if (driver === AdaptersEnum.mysql) {
84
+ const typeSql = type === ColumnType.BIGINT ? ColumnType.BIGINT : ColumnType.INT;
85
+ return `${colName} ${typeSql} ${ColumnType.AUTO_INCREMENT} ${ColumnType.PRIMARY_KEY}`;
81
86
  }
82
- if (driver === 'sqlserver') {
83
- return `${colName} INT IDENTITY(1,1) PRIMARY KEY`;
87
+ if (driver === AdaptersEnum.sqlserver) {
88
+ const typeSql = type === ColumnType.BIGINT ? ColumnType.BIGINT : ColumnType.INT;
89
+ return `${colName} ${typeSql} ${ColumnType.IDENTITY_1_1} ${ColumnType.PRIMARY_KEY}`;
84
90
  }
85
91
  throw ErrorFactory.createValidationError(`Auto-increment not supported for driver: ${driver}`);
86
92
  }
@@ -89,41 +95,43 @@ function formatDefaultValueSql(table, def) {
89
95
  return null;
90
96
  const dv = def.defaultValue;
91
97
  if (dv === null)
92
- return 'DEFAULT NULL';
98
+ return ColumnType.DEFAULT_NULL;
93
99
  if (typeof dv === 'number' && Number.isFinite(dv))
94
100
  return `DEFAULT ${dv}`;
95
101
  if (typeof dv === 'boolean')
96
102
  return `DEFAULT ${dv ? 1 : 0}`;
97
103
  if (typeof dv === 'string') {
98
- if (dv === 'CURRENT_TIMESTAMP')
99
- return 'DEFAULT CURRENT_TIMESTAMP';
104
+ if (dv === ColumnType.CURRENT_TIMESTAMP)
105
+ return `DEFAULT ${ColumnType.CURRENT_TIMESTAMP}`;
100
106
  const escaped = dv.replaceAll("'", "''");
101
107
  return `DEFAULT '${escaped}'`;
102
108
  }
103
109
  throw ErrorFactory.createValidationError(`Unsupported default type for ${table}.${def.name}`);
104
110
  }
105
111
  function buildColumnSql(driver, table, def) {
106
- assertIdentifier('table', table);
107
- assertIdentifier('column', def.name);
112
+ assertIdentifier(SchOther.TABLE, table);
113
+ assertIdentifier(SchOther.COLUMN, def.name);
108
114
  const col = quoteIdent(driver, def.name);
109
115
  if (def.autoIncrement === true) {
110
- if (def.type !== 'INTEGER') {
111
- throw ErrorFactory.createValidationError(`Auto-increment column must be INTEGER: ${table}.${def.name}`);
116
+ if (def.type !== ColumnType.INTEGER && def.type !== ColumnType.BIGINT) {
117
+ throw ErrorFactory.createValidationError(`Auto-increment column must be INTEGER or BIGINT: ${table}.${def.name}`);
112
118
  }
113
- return getAutoIncrementColumnSql(driver, col);
119
+ return getAutoIncrementColumnSql(driver, col, def.type);
114
120
  }
115
121
  const parts = [`${col} ${getColumnTypeSql(driver, def)}`];
116
- if (driver === 'mysql' &&
122
+ if (driver === AdaptersEnum.mysql &&
117
123
  def.unsigned === true &&
118
- (def.type === 'INTEGER' || def.type === 'REAL')) {
119
- parts.push('UNSIGNED');
124
+ (def.type === ColumnType.INTEGER ||
125
+ def.type === ColumnType.BIGINT ||
126
+ def.type === ColumnType.REAL)) {
127
+ parts.push(ColumnType.UNSIGNED);
120
128
  }
121
129
  if (def.nullable !== true)
122
- parts.push('NOT NULL');
130
+ parts.push(ColumnType.NOT_NULL);
123
131
  if (def.unique === true)
124
- parts.push('UNIQUE');
132
+ parts.push(ColumnType.UNIQUE);
125
133
  if (def.primary === true)
126
- parts.push('PRIMARY KEY');
134
+ parts.push(ColumnType.PRIMARY_KEY);
127
135
  const defaultSql = formatDefaultValueSql(table, def);
128
136
  if (defaultSql !== null)
129
137
  parts.push(defaultSql);
@@ -131,55 +139,55 @@ function buildColumnSql(driver, table, def) {
131
139
  }
132
140
  function buildPrimaryKeyConstraintSql(driver, columns) {
133
141
  const cols = columns.map((c) => {
134
- assertIdentifier('column', c);
142
+ assertIdentifier(SchOther.COLUMN, c);
135
143
  return quoteIdent(driver, c);
136
144
  });
137
- return `PRIMARY KEY (${cols.join(', ')})`;
145
+ return `${ColumnType.PRIMARY_KEY} (${cols.join(', ')})`;
138
146
  }
139
147
  function buildForeignKeyConstraintSql(driver, table, fk) {
140
- assertIdentifier('table', table);
141
- assertIdentifier('foreign key', fk.name);
142
- assertIdentifier('referenced table', fk.referencedTable);
148
+ assertIdentifier(SchOther.TABLE, table);
149
+ assertIdentifier(SchOther.FOREIGN_KEY, fk.name);
150
+ assertIdentifier(SchOther.REFERENCED_TABLE, fk.referencedTable);
143
151
  for (const c of fk.columns)
144
- assertIdentifier('column', c);
152
+ assertIdentifier(SchOther.COLUMN, c);
145
153
  for (const c of fk.referencedColumns)
146
- assertIdentifier('referenced column', c);
147
- const constraint = `CONSTRAINT ${quoteIdent(driver, fk.name)}`;
154
+ assertIdentifier(SchOther.REFERENCED_COLUMN, c);
155
+ const constraint = `${ColumnType.CONSTRAINT} ${quoteIdent(driver, fk.name)}`;
148
156
  const localCols = fk.columns.map((c) => quoteIdent(driver, c)).join(', ');
149
157
  const refCols = fk.referencedColumns.map((c) => quoteIdent(driver, c)).join(', ');
150
158
  const parts = [
151
- `${constraint} FOREIGN KEY (${localCols}) REFERENCES ${quoteIdent(driver, fk.referencedTable)} (${refCols})`,
159
+ `${constraint} ${ColumnType.FOREIGN_KEY_S} (${localCols}) ${ColumnType.REFERENCES} ${quoteIdent(driver, fk.referencedTable)} (${refCols})`,
152
160
  ];
153
161
  if (fk.onDelete)
154
- parts.push(`ON DELETE ${normalizeForeignKeyAction(fk.onDelete)}`);
162
+ parts.push(`${ColumnType.ON_DELETE} ${normalizeForeignKeyAction(fk.onDelete)}`);
155
163
  if (fk.onUpdate)
156
- parts.push(`ON UPDATE ${normalizeForeignKeyAction(fk.onUpdate)}`);
164
+ parts.push(`${ColumnType.ON_UPDATE} ${normalizeForeignKeyAction(fk.onUpdate)}`);
157
165
  return parts.join(' ');
158
166
  }
159
167
  function buildCreateIndexSql(driver, table, idx) {
160
- assertIdentifier('table', table);
161
- assertIdentifier('index', idx.name);
168
+ assertIdentifier(SchOther.TABLE, table);
169
+ assertIdentifier(SchOther.INDEX, idx.name);
162
170
  for (const c of idx.columns)
163
- assertIdentifier('column', c);
164
- const unique = idx.type === 'UNIQUE' ? 'UNIQUE ' : '';
171
+ assertIdentifier(SchOther.COLUMN, c);
172
+ const unique = idx.type === ColumnType.UNIQUE ? `${ColumnType.UNIQUE} ` : '';
165
173
  const cols = idx.columns.map((c) => quoteIdent(driver, c)).join(', ');
166
- return `CREATE ${unique}INDEX ${quoteIdent(driver, idx.name)} ON ${quoteIdent(driver, table)} (${cols})`;
174
+ return `${ColumnType.CREATE_INDEX_S} ${unique}${ColumnType.INDEX} ${quoteIdent(driver, idx.name)} ${ColumnType.ON} ${quoteIdent(driver, table)} (${cols})`;
167
175
  }
168
176
  function buildDropIndexSql(driver, table, indexName) {
169
- assertIdentifier('table', table);
170
- assertIdentifier('index', indexName);
171
- if (driver === 'mysql') {
172
- return `DROP INDEX ${quoteIdent(driver, indexName)} ON ${quoteIdent(driver, table)}`;
177
+ assertIdentifier(SchOther.TABLE, table);
178
+ assertIdentifier(SchOther.INDEX, indexName);
179
+ if (driver === AdaptersEnum.mysql) {
180
+ return `${ColumnType.DROP_INDEX_S} ${quoteIdent(driver, indexName)} ${ColumnType.ON} ${quoteIdent(driver, table)}`;
173
181
  }
174
- return `DROP INDEX IF EXISTS ${quoteIdent(driver, indexName)}`;
182
+ return `${ColumnType.DROP_INDEX_S} ${ColumnType.IF_EXISTS} ${quoteIdent(driver, indexName)}`;
175
183
  }
176
184
  function buildDropTableSql(driver, table, ifExists) {
177
- assertIdentifier('table', table);
178
- const ine = ifExists ? 'IF EXISTS ' : '';
179
- return `DROP TABLE ${ine}${quoteIdent(driver, table)}`;
185
+ assertIdentifier(SchOther.TABLE, table);
186
+ const ine = ifExists ? `${ColumnType.IF_EXISTS} ` : '';
187
+ return `${ColumnType.DROP_TABLE_S} ${ine}${quoteIdent(driver, table)}`;
180
188
  }
181
189
  function buildCreateTableStatements(driver, def, ifNotExists) {
182
- assertIdentifier('table', def.name);
190
+ assertIdentifier(SchOther.TABLE, def.name);
183
191
  if (def.columns.length === 0) {
184
192
  throw ErrorFactory.createValidationError(`Schema for table '${def.name}' has no columns`);
185
193
  }
@@ -192,8 +200,8 @@ function buildCreateTableStatements(driver, def, ifNotExists) {
192
200
  constraints.push(buildForeignKeyConstraintSql(driver, def.name, fk));
193
201
  }
194
202
  const allLines = [...colLines, ...constraints].map((l) => ` ${l}`);
195
- const ine = ifNotExists ? 'IF NOT EXISTS ' : '';
196
- const createSql = `CREATE TABLE ${ine}${quoteIdent(driver, def.name)} (\n${allLines.join(',\n')}\n)`;
203
+ const ine = ifNotExists ? `${ColumnType.IF_NOT_EXISTS} ` : '';
204
+ const createSql = `${ColumnType.CREATE_TABLE_S} ${ine}${quoteIdent(driver, def.name)} (\n${allLines.join(',\n')}\n)`;
197
205
  const statements = [createSql];
198
206
  for (const idx of def.indexes) {
199
207
  statements.push(buildCreateIndexSql(driver, def.name, idx));
@@ -203,7 +211,7 @@ function buildCreateTableStatements(driver, def, ifNotExists) {
203
211
  function compileAddColumns(driver, table, cols) {
204
212
  return cols.map((col) => {
205
213
  const colSql = buildColumnSql(driver, table, col);
206
- return `ALTER TABLE ${quoteIdent(driver, table)} ADD COLUMN ${colSql}`;
214
+ return `${ColumnType.ALTER_TABLE_S} ${quoteIdent(driver, table)} ${ColumnType.ADD_COLUMN_S} ${colSql}`;
207
215
  });
208
216
  }
209
217
  function compileIndexOps(driver, table, plan) {
@@ -222,24 +230,24 @@ function compileAdvancedAlterOps(driver, table, plan) {
222
230
  }
223
231
  const statements = [];
224
232
  for (const col of plan.dropColumns) {
225
- assertIdentifier('column', col);
226
- statements.push(`ALTER TABLE ${quoteIdent(driver, table)} DROP COLUMN ${quoteIdent(driver, col)}`);
233
+ assertIdentifier(SchOther.COLUMN, col);
234
+ statements.push(`${ColumnType.ALTER_TABLE_S} ${quoteIdent(driver, table)} ${ColumnType.DROP_COLUMN_S} ${quoteIdent(driver, col)}`);
227
235
  }
228
236
  for (const fk of plan.addForeignKeys) {
229
- statements.push(`ALTER TABLE ${quoteIdent(driver, table)} ADD ${buildForeignKeyConstraintSql(driver, table, fk)}`);
237
+ statements.push(`${ColumnType.ALTER_TABLE_S} ${quoteIdent(driver, table)} ${ColumnType.ADD} ${buildForeignKeyConstraintSql(driver, table, fk)}`);
230
238
  }
231
239
  for (const fkName of plan.dropForeignKeys) {
232
- assertIdentifier('foreign key', fkName);
233
- if (driver === 'mysql') {
234
- statements.push(`ALTER TABLE ${quoteIdent(driver, table)} DROP FOREIGN KEY ${quoteIdent(driver, fkName)}`);
240
+ assertIdentifier(SchOther.FOREIGN_KEY, fkName);
241
+ if (driver === AdaptersEnum.mysql) {
242
+ statements.push(`${ColumnType.ALTER_TABLE_S} ${quoteIdent(driver, table)} ${ColumnType.DROP} ${ColumnType.FOREIGN_KEY_S} ${quoteIdent(driver, fkName)}`);
235
243
  continue;
236
244
  }
237
- statements.push(`ALTER TABLE ${quoteIdent(driver, table)} DROP CONSTRAINT ${quoteIdent(driver, fkName)}`);
245
+ statements.push(`${ColumnType.ALTER_TABLE_S} ${quoteIdent(driver, table)} ${ColumnType.DROP} ${ColumnType.CONSTRAINT} ${quoteIdent(driver, fkName)}`);
238
246
  }
239
247
  return statements;
240
248
  }
241
249
  function buildAlterTableStatements(driver, table, plan) {
242
- assertIdentifier('table', table);
250
+ assertIdentifier(SchOther.TABLE, table);
243
251
  return [
244
252
  ...compileAddColumns(driver, table, plan.addColumns),
245
253
  ...compileIndexOps(driver, table, plan),
@@ -1,5 +1,5 @@
1
- export { MigrationBlueprint } from '../../migrations/schema/Blueprint';
2
- export { Schema } from '../../migrations/schema/Schema';
3
- export { MigrationSchemaCompiler } from '../../migrations/schema/SchemaCompiler';
4
- export type { Blueprint, BlueprintCallback, ColumnBuilder, ColumnDefinition, ColumnType, ForeignKeyAction, ForeignKeyBuilder, ForeignKeyDefinition, IndexDefinition, IndexType, SchemaBuilder, TableDefinition, } from '../../migrations/schema/types';
1
+ export { MigrationBlueprint } from '../schema/Blueprint';
2
+ export { Schema } from '../schema/Schema';
3
+ export { MigrationSchemaCompiler } from '../schema/SchemaCompiler';
4
+ export type { Blueprint, BlueprintCallback, ColumnBuilder, ColumnDefinition, ColumnType, ForeignKeyAction, ForeignKeyBuilder, ForeignKeyDefinition, IndexDefinition, IndexType, SchemaBuilder, TableDefinition, } from '../schema/types';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAC"}
@@ -1,3 +1,3 @@
1
- export { MigrationBlueprint } from '../../migrations/schema/Blueprint.js';
2
- export { Schema } from '../../migrations/schema/Schema.js';
3
- export { MigrationSchemaCompiler } from '../../migrations/schema/SchemaCompiler.js';
1
+ export { MigrationBlueprint } from '../schema/Blueprint.js';
2
+ export { Schema } from '../schema/Schema.js';
3
+ export { MigrationSchemaCompiler } from '../schema/SchemaCompiler.js';
@@ -1,5 +1,5 @@
1
1
  import type { IDatabase } from '../../orm/Database';
2
- export type ColumnType = 'STRING' | 'INTEGER' | 'REAL' | 'BOOLEAN' | 'TEXT' | 'JSON' | 'TIMESTAMP' | 'BLOB';
2
+ export type ColumnType = 'STRING' | 'INTEGER' | 'BIGINT' | 'UUID' | 'REAL' | 'BOOLEAN' | 'TEXT' | 'JSON' | 'TIMESTAMP' | 'BLOB';
3
3
  export type IndexType = 'INDEX' | 'UNIQUE';
4
4
  export type ForeignKeyAction = 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION' | 'SET DEFAULT';
5
5
  export type ColumnDefinition = {
@@ -51,6 +51,7 @@ export type ForeignKeyBuilder = {
51
51
  getDefinition(): ForeignKeyDefinition;
52
52
  };
53
53
  export type Blueprint = {
54
+ uuid(arg0: string): unknown;
54
55
  string(name: string, length?: number): ColumnBuilder;
55
56
  integer(name: string): ColumnBuilder;
56
57
  bigInteger(name: string): ColumnBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/migrations/schema/types.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@
3
3
  * Handles database connections across different runtime environments
4
4
  * Supports: PostgreSQL, MySQL, SQL Server with connection pooling for Lambda
5
5
  */
6
+ import type { SupportedDriver } from '../migrations/enum';
7
+ import type { IDatabaseAdapter } from './DatabaseAdapter';
6
8
  export interface ConnectionConfig {
7
- adapter: 'postgresql' | 'mysql' | 'sqlite' | 'sqlserver' | 'd1' | 'aurora-data-api';
9
+ adapter: SupportedDriver;
8
10
  host?: string;
9
11
  port?: number;
10
12
  database: string;
@@ -31,7 +33,7 @@ export interface ConnectionPool {
31
33
  queued: number;
32
34
  }
33
35
  interface ConnectionManagerInstance {
34
- getConnection(id?: string): Promise<unknown>;
36
+ getConnection(id?: string): Promise<IDatabaseAdapter>;
35
37
  releaseConnection(connectionId?: string): Promise<void>;
36
38
  closeAll(): Promise<void>;
37
39
  getPoolStats(): ConnectionPool;
@@ -58,7 +60,7 @@ export declare const ConnectionManager: Readonly<{
58
60
  /**
59
61
  * Get or create database connection
60
62
  */
61
- getConnection(id?: string): Promise<unknown>;
63
+ getConnection(id?: string): Promise<IDatabaseAdapter>;
62
64
  /**
63
65
  * Release connection back to pool (but keep persistent)
64
66
  */
@@ -97,7 +99,7 @@ export interface AuroraQueryResult {
97
99
  /**
98
100
  * Get database credentials from AWS Secrets Manager
99
101
  */
100
- export declare function getDatabaseSecret(_secretName: string): Promise<DatabaseSecret>;
102
+ export declare function getDatabaseSecret(secretName: string): Promise<DatabaseSecret>;
101
103
  /**
102
104
  * Get database credentials from environment variables
103
105
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../../src/orm/ConnectionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../../src/orm/ConnectionManager.ts"],"names":[],"mappings":"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"}