vona-module-a-ormdialect 5.1.17 → 5.1.20

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.
@@ -1 +1 @@
1
- {"version":3,"file":"databaseDialect.betterSqlite3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.betterSqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,oCAAqC,SAAQ,gCAAgC;CAAG;AAEjG,qBACa,4BAA6B,SAAQ,0BAA0B;IAC1E,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAOnD;IAEI,cAAc,CAClB,cAAc,EAAE,IAAI,CAAC,aAAa,EAClC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAWjC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzF,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAU/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB,KAAK,CAAC,MAAM,KAAA;IAIZ,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"databaseDialect.betterSqlite3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.betterSqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,oCAAqC,SAAQ,gCAAgC;CAAG;AAEjG,qBACa,4BAA6B,SAAQ,0BAA0B;IAC1E,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAOnD;IAEI,cAAc,CAClB,cAAc,EAAE,IAAI,CAAC,aAAa,EAClC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAWjC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzF,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAU/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB,KAAK,CAAC,MAAM,KAAA;IAIZ,OAAO,CAAC,SAAS;CAOlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"databaseDialect.mysql.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,4BAA6B,SAAQ,gCAAgC;CAAG;AAEzF,qBACa,oBAAqB,SAAQ,0BAA0B;IAClE,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAMnD;IAEI,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAUjC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAW/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIX,YAAY,CAChB,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAgB3C,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBtF"}
1
+ {"version":3,"file":"databaseDialect.mysql.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,4BAA6B,SAAQ,gCAAgC;CAAG;AAEzF,qBACa,oBAAqB,SAAQ,0BAA0B;IAClE,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAMnD;IAEI,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAajC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAW/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIX,YAAY,CAChB,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAgB3C,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"databaseDialect.pg.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;CAAG;AAEtF,qBACa,iBAAkB,SAAQ,0BAA0B;IAC/D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE5D,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAWjC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAa/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAIhD,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAyBtF"}
1
+ {"version":3,"file":"databaseDialect.pg.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;CAAG;AAEtF,qBACa,iBAAkB,SAAQ,0BAA0B;IAC/D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE5D,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAYjC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAa/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAIhD,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAyBtF"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { BeanInfo, $Class, Virtual, BeanScopeBase } from 'vona';
1
+ import { BeanInfo, resolveTestRunId, resolveVonaLocalPaths, assertTestRunOwner, $Class, Virtual, BeanScopeBase } from 'vona';
2
2
  import { __decorate } from 'tslib';
3
3
  import { ensureDir, remove } from 'fs-extra';
4
4
  import { globby } from 'globby';
5
+ import { lstat } from 'node:fs/promises';
5
6
  import path from 'node:path';
6
7
  import { DatabaseDialect, ServiceDatabaseDialectBase } from 'vona-module-a-orm';
7
8
  import { promisify } from 'node:util';
@@ -42,6 +43,19 @@ let DatabaseDialectBetterSqlite3 = class DatabaseDialectBetterSqlite3 extends Se
42
43
  return path.join(dbDir, `${databaseName}.db`);
43
44
  }
44
45
  async dropDatabase(_schemaBuilder, databaseName) {
46
+ const isolated = resolveTestRunId(this.app.meta.env.META_MODE, this.app.meta.env.VONA_TEST_RUN_ID);
47
+ if (isolated) {
48
+ const paths = resolveVonaLocalPaths(this.app.projectPath, 'test', isolated);
49
+ assertTestRunOwner(paths.dataRoot, isolated);
50
+ const basename = path.basename(databaseName);
51
+ if (path.resolve(databaseName) !== path.join(paths.sqliteRoot, basename) || !/^vona-test-[\w-]+-\d{8}-\d{6}\.db$/.test(basename)) {
52
+ throw new Error(`Isolated test cannot remove SQLite database outside its owned root: ${databaseName}`);
53
+ }
54
+ await assertNotSymlink(paths.sqliteRoot);
55
+ for (const file of [databaseName, ...['shm', 'wal', 'journal'].map(part => `${databaseName}-${part}`)]) {
56
+ await assertNotSymlink(file);
57
+ }
58
+ }
45
59
  await remove(databaseName);
46
60
  for (const part of ['shm', 'wal', 'journal']) {
47
61
  await remove(`${databaseName}-${part}`);
@@ -66,13 +80,23 @@ let DatabaseDialectBetterSqlite3 = class DatabaseDialectBetterSqlite3 extends Se
66
80
  return result;
67
81
  }
68
82
  _getDbDir() {
69
- return path.join(this.app.projectPath, '.app/sqlite3');
83
+ return resolveVonaLocalPaths(this.app.projectPath, this.app.meta.env.META_MODE, this.app.meta.env.VONA_TEST_RUN_ID).sqliteRoot;
70
84
  }
71
85
  };
72
86
  DatabaseDialectBetterSqlite3 = __decorate([DatabaseDialect(), BeanInfo({
73
87
  module: "a-ormdialect"
74
88
  })], DatabaseDialectBetterSqlite3);
89
+ async function assertNotSymlink(file) {
90
+ try {
91
+ if ((await lstat(file)).isSymbolicLink()) {
92
+ throw new Error(`Isolated test SQLite path is a symlink: ${file}`);
93
+ }
94
+ } catch (error) {
95
+ if (error.code !== 'ENOENT') throw error;
96
+ }
97
+ }
75
98
  async function sqlite3_afterCreate(conn) {
99
+ conn.pragma('busy_timeout = 5000');
76
100
  const pragma = conn.pragma('journal_mode');
77
101
  if (pragma[0]?.journal_mode?.toLocaleLowerCase() !== 'wal') {
78
102
  conn.pragma('journal_mode = wal');
@@ -96,7 +120,8 @@ let DatabaseDialectMysql = class DatabaseDialectMysql extends ServiceDatabaseDia
96
120
  };
97
121
  }
98
122
  async fetchDatabases(schemaBuilder, databasePrefix) {
99
- const res = await schemaBuilder.raw(`show databases like '${databasePrefix}%'`);
123
+ const escapedPrefix = databasePrefix.replaceAll("'", "''");
124
+ const res = await schemaBuilder.raw(`select schema_name from information_schema.schemata where left(schema_name, ${databasePrefix.length}) = '${escapedPrefix}'`);
100
125
  let dbs = res[0];
101
126
  dbs = dbs.map(db => {
102
127
  const name = db[Object.keys(db)[0]];
@@ -190,7 +215,8 @@ let DatabaseDialectPg = class DatabaseDialectPg extends ServiceDatabaseDialectBa
190
215
  this._configBase = undefined;
191
216
  }
192
217
  async fetchDatabases(schemaBuilder, databasePrefix) {
193
- const res = await schemaBuilder.raw(`select datname from pg_database where datname like '${databasePrefix}%'`);
218
+ const escapedPrefix = databasePrefix.replaceAll("'", "''");
219
+ const res = await schemaBuilder.raw(`select datname from pg_database where left(datname, ${databasePrefix.length}) = '${escapedPrefix}'`);
194
220
  let dbs = res.rows;
195
221
  dbs = dbs.map(db => {
196
222
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/bean/databaseDialect.betterSqlite3.ts","../src/bean/databaseDialect.mysql.ts","../src/bean/databaseDialect.mysql3.ts","../src/bean/databaseDialect.pg.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DatabaseDialectBetterSqlite3","ServiceDatabaseDialectBase","constructor","args","_capabilities","like","ilike","level","_configBase","useNullAsDefault","pool","afterCreate","conn","done","sqlite3_afterCreate","then","catch","fetchDatabases","_schemaBuilder","databasePrefix","dbDir","_getDbDir","files","globby","cwd","onlyFiles","map","item","name","path","join","createDatabase","databaseName","ensureDir","dropDatabase","remove","part","fetchIndexes","schemaBuilder","tableName","items","raw","indexName","insert","builder","datas","insertAsMysql","select","fn","selectAsSqlite3","query","result","app","projectPath","__decorate","DatabaseDialect","__z_BeanInfo","module","pragma","journal_mode","toLocaleLowerCase","DatabaseDialectMysql","mysql_afterCreate","res","dbs","db","Object","keys","Key_name","selectAsMysql","fetchColumns","connection","columns","column","columnName","columnType","viewDependents","viewName","sqlViews","distinct","fromRaw","where","ref_name","dep_name","_executeQuery","sql","queryAsync","promisify","cb","DatabaseDialectMysql3","$Class","extend","Virtual","DatabaseDialectPg","undefined","rows","datname","indexname","insertAsPg","filter","toLowerCase","ScopeModuleAOrmdialect","BeanScopeBase","Scope"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/bean/databaseDialect.betterSqlite3.ts","../src/bean/databaseDialect.mysql.ts","../src/bean/databaseDialect.mysql3.ts","../src/bean/databaseDialect.pg.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DatabaseDialectBetterSqlite3","ServiceDatabaseDialectBase","constructor","args","_capabilities","like","ilike","level","_configBase","useNullAsDefault","pool","afterCreate","conn","done","sqlite3_afterCreate","then","catch","fetchDatabases","_schemaBuilder","databasePrefix","dbDir","_getDbDir","files","globby","cwd","onlyFiles","map","item","name","path","join","createDatabase","databaseName","ensureDir","dropDatabase","isolated","resolveTestRunId","app","meta","env","META_MODE","VONA_TEST_RUN_ID","paths","resolveVonaLocalPaths","projectPath","assertTestRunOwner","dataRoot","basename","resolve","sqliteRoot","test","Error","assertNotSymlink","file","part","remove","fetchIndexes","schemaBuilder","tableName","items","raw","indexName","insert","builder","datas","insertAsMysql","select","fn","selectAsSqlite3","query","result","__decorate","DatabaseDialect","__z_BeanInfo","module","lstat","isSymbolicLink","error","code","pragma","journal_mode","toLocaleLowerCase","DatabaseDialectMysql","mysql_afterCreate","escapedPrefix","replaceAll","res","length","dbs","db","Object","keys","Key_name","selectAsMysql","fetchColumns","connection","columns","column","columnName","columnType","viewDependents","viewName","sqlViews","distinct","fromRaw","where","ref_name","dep_name","_executeQuery","sql","queryAsync","promisify","cb","DatabaseDialectMysql3","$Class","extend","Virtual","DatabaseDialectPg","undefined","rows","datname","indexname","insertAsPg","filter","toLowerCase","ScopeModuleAOrmdialect","BeanScopeBase","Scope"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-a-ormdialect",
3
- "version": "5.1.17",
4
- "gitHead": "eb85d771ef75776a439e56df3af8be6a3a36c1c2",
3
+ "version": "5.1.20",
4
+ "gitHead": "bc3034e45e4f728199560c682b3432d47381ceb4",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Vona Module"
@@ -11,7 +11,9 @@ import type {
11
11
 
12
12
  import { ensureDir, remove } from 'fs-extra';
13
13
  import { globby } from 'globby';
14
+ import { lstat } from 'node:fs/promises';
14
15
  import path from 'node:path';
16
+ import { assertTestRunOwner, resolveVonaLocalPaths, resolveTestRunId } from 'vona';
15
17
  import { ServiceDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
16
18
 
17
19
  export interface IDatabaseDialectOptionsBetterSqlite3 extends IDecoratorDatabaseDialectOptions {}
@@ -54,6 +56,30 @@ export class DatabaseDialectBetterSqlite3 extends ServiceDatabaseDialectBase {
54
56
  }
55
57
 
56
58
  async dropDatabase(_schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<void> {
59
+ const isolated = resolveTestRunId(
60
+ this.app.meta.env.META_MODE,
61
+ this.app.meta.env.VONA_TEST_RUN_ID,
62
+ );
63
+ if (isolated) {
64
+ const paths = resolveVonaLocalPaths(this.app.projectPath, 'test', isolated);
65
+ assertTestRunOwner(paths.dataRoot, isolated);
66
+ const basename = path.basename(databaseName);
67
+ if (
68
+ path.resolve(databaseName) !== path.join(paths.sqliteRoot, basename) ||
69
+ !/^vona-test-[\w-]+-\d{8}-\d{6}\.db$/.test(basename)
70
+ ) {
71
+ throw new Error(
72
+ `Isolated test cannot remove SQLite database outside its owned root: ${databaseName}`,
73
+ );
74
+ }
75
+ await assertNotSymlink(paths.sqliteRoot);
76
+ for (const file of [
77
+ databaseName,
78
+ ...['shm', 'wal', 'journal'].map(part => `${databaseName}-${part}`),
79
+ ]) {
80
+ await assertNotSymlink(file);
81
+ }
82
+ }
57
83
  await remove(databaseName);
58
84
  for (const part of ['shm', 'wal', 'journal']) {
59
85
  await remove(`${databaseName}-${part}`);
@@ -93,11 +119,26 @@ export class DatabaseDialectBetterSqlite3 extends ServiceDatabaseDialectBase {
93
119
  }
94
120
 
95
121
  private _getDbDir() {
96
- return path.join(this.app.projectPath, '.app/sqlite3');
122
+ return resolveVonaLocalPaths(
123
+ this.app.projectPath,
124
+ this.app.meta.env.META_MODE,
125
+ this.app.meta.env.VONA_TEST_RUN_ID,
126
+ ).sqliteRoot;
127
+ }
128
+ }
129
+
130
+ async function assertNotSymlink(file: string) {
131
+ try {
132
+ if ((await lstat(file)).isSymbolicLink()) {
133
+ throw new Error(`Isolated test SQLite path is a symlink: ${file}`);
134
+ }
135
+ } catch (error) {
136
+ if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;
97
137
  }
98
138
  }
99
139
 
100
140
  async function sqlite3_afterCreate(conn) {
141
+ conn.pragma('busy_timeout = 5000');
101
142
  const pragma: { journal_mode: string }[] = conn.pragma('journal_mode');
102
143
  if (pragma[0]?.journal_mode?.toLocaleLowerCase() !== 'wal') {
103
144
  conn.pragma('journal_mode = wal');
@@ -34,7 +34,10 @@ export class DatabaseDialectMysql extends ServiceDatabaseDialectBase {
34
34
  schemaBuilder: Knex.SchemaBuilder,
35
35
  databasePrefix: string,
36
36
  ): Promise<IFetchDatabasesResultItem[]> {
37
- const res = await schemaBuilder.raw(`show databases like '${databasePrefix}%'`);
37
+ const escapedPrefix = databasePrefix.replaceAll("'", "''");
38
+ const res = await schemaBuilder.raw(
39
+ `select schema_name from information_schema.schemata where left(schema_name, ${databasePrefix.length}) = '${escapedPrefix}'`,
40
+ );
38
41
  let dbs = res[0];
39
42
  dbs = dbs.map(db => {
40
43
  const name = db[Object.keys(db)[0]];
@@ -26,8 +26,9 @@ export class DatabaseDialectPg extends ServiceDatabaseDialectBase {
26
26
  schemaBuilder: Knex.SchemaBuilder,
27
27
  databasePrefix: string,
28
28
  ): Promise<IFetchDatabasesResultItem[]> {
29
+ const escapedPrefix = databasePrefix.replaceAll("'", "''");
29
30
  const res: any = await schemaBuilder.raw(
30
- `select datname from pg_database where datname like '${databasePrefix}%'`,
31
+ `select datname from pg_database where left(datname, ${databasePrefix.length}) = '${escapedPrefix}'`,
31
32
  );
32
33
  let dbs = res.rows;
33
34
  dbs = dbs.map(db => {