@contember/database-migrations 1.2.1 → 1.3.0-alpha.2

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 (48) hide show
  1. package/dist/src/GroupMigrationsResolver.d.ts +9 -0
  2. package/dist/src/GroupMigrationsResolver.d.ts.map +1 -0
  3. package/dist/src/GroupMigrationsResolver.js +28 -0
  4. package/dist/src/GroupMigrationsResolver.js.map +1 -0
  5. package/dist/src/Migration.d.ts +13 -2
  6. package/dist/src/Migration.d.ts.map +1 -1
  7. package/dist/src/Migration.js +10 -2
  8. package/dist/src/Migration.js.map +1 -1
  9. package/dist/src/MigrationsResolver.d.ts +9 -0
  10. package/dist/src/MigrationsResolver.d.ts.map +1 -0
  11. package/dist/src/MigrationsResolver.js +3 -0
  12. package/dist/src/MigrationsResolver.js.map +1 -0
  13. package/dist/src/MigrationsRunner.d.ts +3 -3
  14. package/dist/src/MigrationsRunner.d.ts.map +1 -1
  15. package/dist/src/MigrationsRunner.js +3 -3
  16. package/dist/src/MigrationsRunner.js.map +1 -1
  17. package/dist/src/SnapshotMigrationResolver.d.ts +10 -0
  18. package/dist/src/SnapshotMigrationResolver.d.ts.map +1 -0
  19. package/dist/src/SnapshotMigrationResolver.js +30 -0
  20. package/dist/src/SnapshotMigrationResolver.js.map +1 -0
  21. package/dist/src/helpers.d.ts +4 -0
  22. package/dist/src/helpers.d.ts.map +1 -1
  23. package/dist/src/helpers.js +33 -1
  24. package/dist/src/helpers.js.map +1 -1
  25. package/dist/src/index.d.ts +4 -2
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +4 -5
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/runner.d.ts +2 -2
  30. package/dist/src/runner.d.ts.map +1 -1
  31. package/dist/src/runner.js +10 -19
  32. package/dist/src/runner.js.map +1 -1
  33. package/dist/src/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +2 -2
  35. package/src/GroupMigrationsResolver.ts +27 -0
  36. package/src/Migration.ts +18 -1
  37. package/src/MigrationsResolver.ts +9 -0
  38. package/src/MigrationsRunner.ts +3 -3
  39. package/src/SnapshotMigrationResolver.ts +34 -0
  40. package/src/helpers.ts +37 -0
  41. package/src/index.ts +4 -2
  42. package/src/runner.ts +17 -23
  43. package/src/tsconfig.json +1 -3
  44. package/dist/src/migrationsLoader.d.ts +0 -3
  45. package/dist/src/migrationsLoader.d.ts.map +0 -1
  46. package/dist/src/migrationsLoader.js +0 -45
  47. package/dist/src/migrationsLoader.js.map +0 -1
  48. package/src/migrationsLoader.ts +0 -17
@@ -0,0 +1,9 @@
1
+ import { MigrationsResolver, MigrationsResolverContext } from './MigrationsResolver';
2
+ import { Migration } from './Migration';
3
+ export declare class GroupMigrationsResolver<Args> implements MigrationsResolver<Args> {
4
+ private readonly primaryGroup;
5
+ private readonly groups;
6
+ constructor(primaryGroup: MigrationsResolver<Args>, groups: Record<string, MigrationsResolver<Args>>);
7
+ resolveMigrations({ runMigrations, createTimeVersionPrefix }: MigrationsResolverContext): Migration<Args>[];
8
+ }
9
+ //# sourceMappingURL=GroupMigrationsResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupMigrationsResolver.d.ts","sourceRoot":"","sources":["../../src/GroupMigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,uBAAuB,CAAC,IAAI,CAAE,YAAW,kBAAkB,CAAC,IAAI,CAAC;IAE5E,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAIlE,iBAAiB,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,yBAAyB,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE;CAgB3G"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupMigrationsResolver = void 0;
4
+ const Migration_1 = require("./Migration");
5
+ class GroupMigrationsResolver {
6
+ constructor(primaryGroup, groups) {
7
+ this.primaryGroup = primaryGroup;
8
+ this.groups = groups;
9
+ }
10
+ resolveMigrations({ runMigrations, createTimeVersionPrefix }) {
11
+ const allMigrations = [];
12
+ const primaryMigrations = this.primaryGroup.resolveMigrations({
13
+ runMigrations: runMigrations.filter(it => it.group === null),
14
+ createTimeVersionPrefix,
15
+ });
16
+ allMigrations.push(...primaryMigrations);
17
+ for (const groupName in this.groups) {
18
+ const groupMigrations = this.groups[groupName].resolveMigrations({
19
+ createTimeVersionPrefix,
20
+ runMigrations: runMigrations.filter(it => it.group === groupName),
21
+ }).map(it => new Migration_1.Migration(it.name, it.migration, groupName));
22
+ allMigrations.push(...groupMigrations);
23
+ }
24
+ return allMigrations.sort((a, b) => a.name.localeCompare(b.name));
25
+ }
26
+ }
27
+ exports.GroupMigrationsResolver = GroupMigrationsResolver;
28
+ //# sourceMappingURL=GroupMigrationsResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupMigrationsResolver.js","sourceRoot":"","sources":["../../src/GroupMigrationsResolver.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAEvC,MAAa,uBAAuB;IACnC,YACkB,YAAsC,EACtC,MAAgD;QADhD,iBAAY,GAAZ,YAAY,CAA0B;QACtC,WAAM,GAAN,MAAM,CAA0C;IAElE,CAAC;IAED,iBAAiB,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAA6B;QACtF,MAAM,aAAa,GAAsB,EAAE,CAAA;QAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC;YAC7D,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;YAC5D,uBAAuB;SACvB,CAAC,CAAA;QACF,aAAa,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAA;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC;gBAChE,uBAAuB;gBACvB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aACjE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,qBAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YAC7D,aAAa,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;SACtC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,CAAC;CACD;AAvBD,0DAuBC"}
@@ -1,11 +1,22 @@
1
1
  import { MigrationBuilder } from 'node-pg-migrate';
2
2
  import { Connection } from '@contember/database';
3
+ export declare type MigrationExecutor<Args = unknown> = (builder: MigrationBuilder, args: MigrationArgs<Args>) => Promise<void> | void;
3
4
  export declare class Migration<Args = unknown> {
4
5
  readonly name: string;
5
- readonly migration: (builder: MigrationBuilder, args: MigrationArgs<Args>) => Promise<void> | void;
6
- constructor(name: string, migration: (builder: MigrationBuilder, args: MigrationArgs<Args>) => Promise<void> | void);
6
+ readonly migration: MigrationExecutor<Args>;
7
+ readonly group: string | null;
8
+ constructor(name: string, migration: MigrationExecutor<Args>, group?: string | null);
7
9
  }
8
10
  export declare type MigrationArgs<Args> = Args & {
9
11
  connection: Connection.ConnectionLike;
10
12
  };
13
+ export interface RunMigration {
14
+ name: string;
15
+ group: string | null;
16
+ }
17
+ export declare class MigrationGroup<Args = unknown> {
18
+ readonly snapshot: MigrationExecutor<Args>;
19
+ readonly migrations: Record<string, MigrationExecutor<Args>>;
20
+ constructor(snapshot: MigrationExecutor<Args>, migrations: Record<string, MigrationExecutor<Args>>);
21
+ }
11
22
  //# sourceMappingURL=Migration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,qBAAa,SAAS,CAAC,IAAI,GAAG,OAAO;aAEnB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;gBADzF,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAG1G;AAED,oBAAY,aAAa,CAAC,IAAI,IAC3B,IAAI,GACJ;IACD,UAAU,EAAE,UAAU,CAAC,cAAc,CAAA;CACrC,CAAA"}
1
+ {"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,oBAAY,iBAAiB,CAAC,IAAI,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAE9H,qBAAa,SAAS,CAAC,IAAI,GAAG,OAAO;aAEnB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAClC,KAAK,EAAE,MAAM,GAAG,IAAI;gBAFpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,KAAK,GAAE,MAAM,GAAG,IAAW;CAG5C;AAED,oBAAY,aAAa,CAAC,IAAI,IAC3B,IAAI,GACJ;IACD,UAAU,EAAE,UAAU,CAAC,cAAc,CAAA;CACrC,CAAA;AAGF,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,cAAc,CAAC,IAAI,GAAG,OAAO;aAExB,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBADnD,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;CAGpE"}
@@ -1,11 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration = void 0;
3
+ exports.MigrationGroup = exports.Migration = void 0;
4
4
  class Migration {
5
- constructor(name, migration) {
5
+ constructor(name, migration, group = null) {
6
6
  this.name = name;
7
7
  this.migration = migration;
8
+ this.group = group;
8
9
  }
9
10
  }
10
11
  exports.Migration = Migration;
12
+ class MigrationGroup {
13
+ constructor(snapshot, migrations) {
14
+ this.snapshot = snapshot;
15
+ this.migrations = migrations;
16
+ }
17
+ }
18
+ exports.MigrationGroup = MigrationGroup;
11
19
  //# sourceMappingURL=Migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Migration.js","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAS;IACrB,YACiB,IAAY,EACZ,SAAyF;QADzF,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAgF;IAE1G,CAAC;CACD;AAND,8BAMC"}
1
+ {"version":3,"file":"Migration.js","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":";;;AAKA,MAAa,SAAS;IACrB,YACiB,IAAY,EACZ,SAAkC,EAClC,QAAuB,IAAI;QAF3B,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAyB;QAClC,UAAK,GAAL,KAAK,CAAsB;IAE5C,CAAC;CACD;AAPD,8BAOC;AAcD,MAAa,cAAc;IAC1B,YACiB,QAAiC,EACjC,UAAmD;QADnD,aAAQ,GAAR,QAAQ,CAAyB;QACjC,eAAU,GAAV,UAAU,CAAyC;IAEpE,CAAC;CACD;AAND,wCAMC"}
@@ -0,0 +1,9 @@
1
+ import { Migration, RunMigration } from './Migration';
2
+ export interface MigrationsResolverContext {
3
+ runMigrations: RunMigration[];
4
+ createTimeVersionPrefix: () => string;
5
+ }
6
+ export interface MigrationsResolver<Args> {
7
+ resolveMigrations(ctx: MigrationsResolverContext): Migration<Args>[];
8
+ }
9
+ //# sourceMappingURL=MigrationsResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationsResolver.d.ts","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,WAAW,yBAAyB;IACzC,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,uBAAuB,EAAE,MAAM,MAAM,CAAA;CACrC;AACD,MAAM,WAAW,kBAAkB,CAAC,IAAI;IACvC,iBAAiB,CAAC,GAAG,EAAE,yBAAyB,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAA;CACpE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MigrationsResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationsResolver.js","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  import { Connection } from '@contember/database';
2
- import { Migration } from './Migration';
2
+ import { MigrationsResolver } from './MigrationsResolver';
3
3
  export declare class MigrationsRunner<MigrationArgs> {
4
4
  private readonly connection;
5
5
  private readonly schema;
6
- private readonly migrations;
7
- constructor(connection: Connection.ConnectionLike, schema: string, migrations: () => Promise<Migration<MigrationArgs>[]>);
6
+ private readonly migrationsResolver;
7
+ constructor(connection: Connection.ConnectionLike, schema: string, migrationsResolver: MigrationsResolver<MigrationArgs>);
8
8
  migrate(log: (msg: string) => void, migrationArgs: MigrationArgs): Promise<{
9
9
  name: string;
10
10
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationsRunner.d.ts","sourceRoot":"","sources":["../../src/MigrationsRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,gBAAgB,CAAC,aAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,UAAU,EAAE,UAAU,CAAC,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;IAG1D,OAAO,CACnB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC1B,aAAa,EAAE,aAAa,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAS9B"}
1
+ {"version":3,"file":"MigrationsRunner.d.ts","sourceRoot":"","sources":["../../src/MigrationsRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,qBAAa,gBAAgB,CAAC,aAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,UAAU,EAAE,UAAU,CAAC,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,CAAC,aAAa,CAAC;IAG1D,OAAO,CACnB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC1B,aAAa,EAAE,aAAa,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAS9B"}
@@ -25,14 +25,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.MigrationsRunner = void 0;
27
27
  class MigrationsRunner {
28
- constructor(connection, schema, migrations) {
28
+ constructor(connection, schema, migrationsResolver) {
29
29
  this.connection = connection;
30
30
  this.schema = schema;
31
- this.migrations = migrations;
31
+ this.migrationsResolver = migrationsResolver;
32
32
  }
33
33
  async migrate(log, migrationArgs) {
34
34
  const migrate = (await Promise.resolve().then(() => __importStar(require('./runner')))).default;
35
- return await migrate(this.migrations, this.connection, {
35
+ return await migrate(this.migrationsResolver, this.connection, {
36
36
  schema: this.schema,
37
37
  migrationsTable: 'migrations',
38
38
  migrationArgs,
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationsRunner.js","sourceRoot":"","sources":["../../src/MigrationsRunner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAa,gBAAgB;IAC5B,YACkB,UAAqC,EACrC,MAAc,EACd,UAAqD;QAFrD,eAAU,GAAV,UAAU,CAA2B;QACrC,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAA2C;IACpE,CAAC;IAEG,KAAK,CAAC,OAAO,CACnB,GAA0B,EAC1B,aAA4B;QAE5B,MAAM,OAAO,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAA;QAClD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;YACtD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,YAAY;YAC7B,aAAa;YACb,GAAG;SACH,CAAC,CAAA;IACH,CAAC;CACD;AAnBD,4CAmBC"}
1
+ {"version":3,"file":"MigrationsRunner.js","sourceRoot":"","sources":["../../src/MigrationsRunner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAa,gBAAgB;IAC5B,YACkB,UAAqC,EACrC,MAAc,EACd,kBAAqD;QAFrD,eAAU,GAAV,UAAU,CAA2B;QACrC,WAAM,GAAN,MAAM,CAAQ;QACd,uBAAkB,GAAlB,kBAAkB,CAAmC;IACpE,CAAC;IAEG,KAAK,CAAC,OAAO,CACnB,GAA0B,EAC1B,aAA4B;QAE5B,MAAM,OAAO,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAA;QAClD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE;YAC9D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,YAAY;YAC7B,aAAa;YACb,GAAG;SACH,CAAC,CAAA;IACH,CAAC;CACD;AAnBD,4CAmBC"}
@@ -0,0 +1,10 @@
1
+ import { Migration, MigrationExecutor } from './Migration';
2
+ import { MigrationsResolver, MigrationsResolverContext } from './MigrationsResolver';
3
+ export declare class SnapshotMigrationResolver<Args> implements MigrationsResolver<Args> {
4
+ private snapshot;
5
+ private migrations;
6
+ private suffix;
7
+ constructor(snapshot: MigrationExecutor<Args>, migrations: Record<string, MigrationExecutor<Args>>, suffix?: string);
8
+ resolveMigrations({ runMigrations, createTimeVersionPrefix }: MigrationsResolverContext): Migration<Args>[];
9
+ }
10
+ //# sourceMappingURL=SnapshotMigrationResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapshotMigrationResolver.d.ts","sourceRoot":"","sources":["../../src/SnapshotMigrationResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAGpF,qBAAa,yBAAyB,CAAC,IAAI,CAAE,YAAW,kBAAkB,CAAC,IAAI,CAAC;IAE9E,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;gBAFN,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,EACnD,MAAM,GAAE,MAAmB;IAIpC,iBAAiB,CAChB,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,yBAAyB,GACnE,SAAS,CAAC,IAAI,CAAC,EAAE;CAmBpB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnapshotMigrationResolver = void 0;
4
+ const Migration_1 = require("./Migration");
5
+ const helpers_1 = require("./helpers");
6
+ class SnapshotMigrationResolver {
7
+ constructor(snapshot, migrations, suffix = 'snapshot') {
8
+ this.snapshot = snapshot;
9
+ this.migrations = migrations;
10
+ this.suffix = suffix;
11
+ }
12
+ resolveMigrations({ runMigrations, createTimeVersionPrefix }) {
13
+ // runMigrations = runMigrations.filter(it => it.group === group)
14
+ if (runMigrations.length === 0 && !process.env.CONTEMBER_MIGRATIONS_NO_SNAPSHOT) {
15
+ const timePrefix = createTimeVersionPrefix();
16
+ return [new Migration_1.Migration(`${timePrefix}-${this.suffix}`, this.snapshot)];
17
+ }
18
+ const migrations = Object.entries(this.migrations).map(([version, executor]) => new Migration_1.Migration(version, executor));
19
+ const resolvedMigrations = runMigrations.length > 0 && runMigrations[0].name.slice(helpers_1.timePrefixLength) === `-${this.suffix}`
20
+ ? [
21
+ new Migration_1.Migration(runMigrations[0].name, this.snapshot),
22
+ ...migrations.filter(it => it.name > runMigrations[0].name),
23
+ ]
24
+ : migrations;
25
+ (0, helpers_1.checkOrder)(runMigrations, resolvedMigrations);
26
+ return resolvedMigrations;
27
+ }
28
+ }
29
+ exports.SnapshotMigrationResolver = SnapshotMigrationResolver;
30
+ //# sourceMappingURL=SnapshotMigrationResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapshotMigrationResolver.js","sourceRoot":"","sources":["../../src/SnapshotMigrationResolver.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D,uCAAwD;AAExD,MAAa,yBAAyB;IACrC,YACS,QAAiC,EACjC,UAAmD,EACnD,SAAiB,UAAU;QAF3B,aAAQ,GAAR,QAAQ,CAAyB;QACjC,eAAU,GAAV,UAAU,CAAyC;QACnD,WAAM,GAAN,MAAM,CAAqB;IAEpC,CAAC;IAED,iBAAiB,CAChB,EAAE,aAAa,EAAE,uBAAuB,EAA6B;QAErE,iEAAiE;QACjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE;YAChF,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAA;YAC5C,OAAO,CAAC,IAAI,qBAAS,CAAO,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC3E;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,qBAAS,CAAO,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;QACvH,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,0BAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YACzH,CAAC,CAAC;gBACD,IAAI,qBAAS,CAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACzD,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3D;YACD,CAAC,CAAC,UAAU,CAAA;QAEb,IAAA,oBAAU,EAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;QAE7C,OAAO,kBAAkB,CAAA;IAC1B,CAAC;CACD;AA7BD,8DA6BC"}
@@ -1,7 +1,11 @@
1
1
  import { MigrationBuilder } from 'node-pg-migrate';
2
+ import { Migration, RunMigration } from './Migration';
2
3
  export declare function createMigrationBuilder(): MigrationBuilder & {
3
4
  getSql: () => string;
4
5
  getSqlSteps: () => string[];
5
6
  };
6
7
  export declare function escapeValue(value: any): any;
8
+ export declare const timePrefixLength: number;
9
+ export declare const createMigrationVersionPrefixGenerator: () => () => string;
10
+ export declare const checkOrder: (runMigrations: RunMigration[], migrations: Migration<any>[]) => void;
7
11
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,MAAM,EAAE,CAAA;CAAE,CAUjH;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAE3C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAErD,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,MAAM,EAAE,CAAA;CAAE,CAUjH;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAE3C;AAED,eAAO,MAAM,gBAAgB,QAA6B,CAAA;AAG1D,eAAO,MAAM,qCAAqC,oBAIjD,CAAA;AAeD,eAAO,MAAM,UAAU,kBAAmB,YAAY,EAAE,cAAc,UAAU,GAAG,CAAC,EAAE,SAYrF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.escapeValue = exports.createMigrationBuilder = void 0;
3
+ exports.checkOrder = exports.createMigrationVersionPrefixGenerator = exports.timePrefixLength = exports.escapeValue = exports.createMigrationBuilder = void 0;
4
4
  function createMigrationBuilder() {
5
5
  // eslint-disable-next-line @typescript-eslint/no-var-requires
6
6
  const builderClass = require('node-pg-migrate/dist/migration-builder').default;
@@ -16,4 +16,36 @@ function escapeValue(value) {
16
16
  return pgEscape(value);
17
17
  }
18
18
  exports.escapeValue = escapeValue;
19
+ exports.timePrefixLength = 'YYYY-MM-DD-XXXXXX'.length;
20
+ const createMigrationVersionPrefixGenerator = () => {
21
+ let inc = 0;
22
+ const date = new Date();
23
+ return () => createMigrationVersionTimePrefix(date, inc++);
24
+ };
25
+ exports.createMigrationVersionPrefixGenerator = createMigrationVersionPrefixGenerator;
26
+ const createMigrationVersionTimePrefix = (date, increment) => {
27
+ const now = new Date(date);
28
+ now.setSeconds(now.getSeconds() + increment);
29
+ const year = now.getFullYear();
30
+ const month = (now.getMonth() + 1).toString().padStart(2, '0');
31
+ const day = now.getDate().toString().padStart(2, '0');
32
+ const hours = now.getHours().toString().padStart(2, '0');
33
+ const minutes = now.getMinutes().toString().padStart(2, '0');
34
+ const seconds = now.getSeconds().toString().padStart(2, '0');
35
+ return `${year}-${month}-${day}-${hours}${minutes}${seconds}`;
36
+ };
37
+ const checkOrder = (runMigrations, migrations) => {
38
+ const len = Math.min(runMigrations.length, migrations.length);
39
+ for (let i = 0; i < len; i++) {
40
+ const run = runMigrations[i];
41
+ const migrationName = migrations[i].name;
42
+ if (migrationName > run.name) {
43
+ throw new Error(`Previously executed migration ${run} is missing`);
44
+ }
45
+ if (run.name > migrationName) {
46
+ throw new Error(`Not executed migration ${migrationName} is preceding already run migration ${run.name}`);
47
+ }
48
+ }
49
+ };
50
+ exports.checkOrder = checkOrder;
19
51
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB;IACrC,8DAA8D;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC,OAAO,CAAA;IAC9E,OAAO,IAAI,YAAY,CACtB,EAAE,EACF;QACC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACZ,CACD,CAAA;AACF,CAAC;AAVD,wDAUC;AAED,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,WAAW,CAAA;AAElE,SAAgB,WAAW,CAAC,KAAU;IACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export * from './MigrationsRunner';
2
+ export * from './GroupMigrationsResolver';
3
+ export * from './SnapshotMigrationResolver';
2
4
  export * from './helpers';
5
+ export * from './Migration';
6
+ export * from './MigrationsResolver';
3
7
  export { MigrationBuilder, Name } from 'node-pg-migrate';
4
- export { Migration, MigrationArgs } from './Migration';
5
- export { loadMigrations } from './migrationsLoader';
6
8
  export { DatabaseConfig } from '@contember/database';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/src/index.js CHANGED
@@ -14,11 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.loadMigrations = exports.Migration = void 0;
18
17
  __exportStar(require("./MigrationsRunner"), exports);
18
+ __exportStar(require("./GroupMigrationsResolver"), exports);
19
+ __exportStar(require("./SnapshotMigrationResolver"), exports);
19
20
  __exportStar(require("./helpers"), exports);
20
- var Migration_1 = require("./Migration");
21
- Object.defineProperty(exports, "Migration", { enumerable: true, get: function () { return Migration_1.Migration; } });
22
- var migrationsLoader_1 = require("./migrationsLoader");
23
- Object.defineProperty(exports, "loadMigrations", { enumerable: true, get: function () { return migrationsLoader_1.loadMigrations; } });
21
+ __exportStar(require("./Migration"), exports);
22
+ __exportStar(require("./MigrationsResolver"), exports);
24
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,4CAAyB;AAEzB,yCAAsD;AAA7C,sGAAA,SAAS,OAAA;AAClB,uDAAmD;AAA1C,kHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,4DAAyC;AACzC,8DAA2C;AAC3C,4CAAyB;AACzB,8CAA2B;AAC3B,uDAAoC"}
@@ -1,12 +1,12 @@
1
1
  import { Connection } from '@contember/database';
2
- import { Migration } from './Migration';
2
+ import { MigrationsResolver } from './MigrationsResolver';
3
3
  export declare type RunnerOption<Args = unknown> = {
4
4
  migrationsTable: string;
5
5
  schema: string;
6
6
  log: (msg: string) => void;
7
7
  migrationArgs: Args;
8
8
  };
9
- declare const _default: <Args>(getMigrations: () => Promise<Migration<Args>[]>, connection: Connection.ConnectionLike, options: RunnerOption<Args>) => Promise<{
9
+ declare const _default: <Args>(migrationsResolver: MigrationsResolver<Args>, connection: Connection.ConnectionLike, options: RunnerOption<Args>) => Promise<{
10
10
  name: string;
11
11
  }[]>;
12
12
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,UAAU,EAA4C,MAAM,qBAAqB,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,oBAAY,YAAY,CAAC,IAAI,GAAG,OAAO,IAAI;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1B,aAAa,EAAE,IAAI,CAAA;CACnB,CAAA;4FAoDY,WAAW,cAAc,kCAEnC,QAAQ;IAAE,MAAM,MAAM,CAAA;CAAE,EAAE,CAAC;AAJ9B,wBA2DC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,UAAU,EAA4C,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,oBAAY,YAAY,CAAC,IAAI,GAAG,OAAO,IAAI;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1B,aAAa,EAAE,IAAI,CAAA;CACnB,CAAA;yFAuCY,WAAW,cAAc,kCAEnC,QAAQ;IAAE,MAAM,MAAM,CAAA;CAAE,EAAE,CAAC;AAJ9B,wBA8DC"}
@@ -43,6 +43,7 @@ const ensureMigrationsTable = async (db, options) => {
43
43
  name varchar(255) NOT NULL,
44
44
  run_on timestamp NOT NULL
45
45
  )`);
46
+ await db.query(`ALTER TABLE ${fullTableName} ADD COLUMN IF NOT EXISTS "group" TEXT DEFAULT NULL`);
46
47
  }
47
48
  catch (err) {
48
49
  if (!(err instanceof Error)) {
@@ -53,33 +54,23 @@ const ensureMigrationsTable = async (db, options) => {
53
54
  };
54
55
  const getRunMigrations = async (db, options) => {
55
56
  const fullTableName = getMigrationsTableName(options);
56
- return (await db.query(`SELECT name FROM ${fullTableName} ORDER BY run_on, id`)).rows.map(it => it.name);
57
+ return (await db.query(`SELECT name, "group" FROM ${fullTableName} ORDER BY run_on, id`)).rows;
57
58
  };
58
59
  const getMigrationsToRun = (options, runNames, migrations) => {
59
60
  return migrations.filter(({ name }) => runNames.indexOf(name) < 0);
60
61
  };
61
- const checkOrder = (runNames, migrations) => {
62
- const len = Math.min(runNames.length, migrations.length);
63
- for (let i = 0; i < len; i += 1) {
64
- const runName = runNames[i];
65
- const migrationName = migrations[i].name;
66
- if (runName < migrationName) {
67
- throw new Error(`Previously run migration ${runName} is missing`);
68
- }
69
- if (runName !== migrationName) {
70
- throw new Error(`Not run migration ${migrationName} is preceding already run migration ${runName}`);
71
- }
72
- }
73
- };
74
- exports.default = async (getMigrations, connection, options) => {
62
+ exports.default = async (migrationsResolver, connection, options) => {
75
63
  const logger = options.log;
76
64
  return await connection.scope(db => (0, database_1.withDatabaseAdvisoryLock)(db, PG_MIGRATE_LOCK_ID, async () => {
77
65
  await db.query(`CREATE SCHEMA IF NOT EXISTS ${(0, database_1.wrapIdentifier)(options.schema)}`);
78
66
  await db.query(`SET search_path TO ${(0, database_1.wrapIdentifier)(options.schema)}`);
79
67
  await ensureMigrationsTable(db, options);
80
- const runNames = await getRunMigrations(db, options);
81
- const migrations = await getMigrations();
82
- checkOrder(runNames, migrations);
68
+ const runMigrations = await getRunMigrations(db, options);
69
+ const migrations = await migrationsResolver.resolveMigrations({
70
+ runMigrations,
71
+ createTimeVersionPrefix: (0, helpers_1.createMigrationVersionPrefixGenerator)(),
72
+ });
73
+ const runNames = runMigrations.map(it => it.name);
83
74
  const toRun = getMigrationsToRun(options, runNames, migrations);
84
75
  if (!toRun.length) {
85
76
  return [];
@@ -96,7 +87,7 @@ exports.default = async (getMigrations, connection, options) => {
96
87
  for (const sql of steps) {
97
88
  await trx.query(sql);
98
89
  }
99
- await trx.query(`INSERT INTO ${getMigrationsTableName(options)} (name, run_on) VALUES (?, NOW());`, [migration.name]);
90
+ await trx.query(`INSERT INTO ${getMigrationsTableName(options)} (name, run_on, "group") VALUES (?, NOW(), ?);`, [migration.name, migration.group]);
100
91
  logger(` Done`);
101
92
  }
102
93
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/pg-types/index.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/messages.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/serializer.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/parser.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/index.d.ts","../../../../node_modules/@types/pg/index.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/PgLiteral.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/generalTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/domainsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/extensionsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/functionsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/indexesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/operatorsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/othersTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/policiesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/rolesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/schemasTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/sequencesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/tablesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/triggersTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/typesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsMaterializedTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/types.d.ts","../../../../node_modules/node-pg-migrate/dist/db.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/domains.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/extensions.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/functions.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/indexes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/operators.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/other.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/policies.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/roles.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/schemas.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/sequences.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/tables.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/triggers.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/types.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/views.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsMaterialized.d.ts","../../../../node_modules/node-pg-migrate/dist/migration-builder.d.ts","../../../../node_modules/node-pg-migrate/dist/migration.d.ts","../../../../node_modules/node-pg-migrate/dist/runner.d.ts","../../../../node_modules/node-pg-migrate/dist/index.d.ts","../../../database/dist/src/Literal.d.ts","../../../database/dist/src/types.d.ts","../../../database/dist/src/builders/WindowFunction.d.ts","../../../database/dist/src/builders/CaseStatement.d.ts","../../../database/dist/src/builders/ColumnExpressionFactory.d.ts","../../../database/dist/src/builders/QueryBuilder.d.ts","../../../database/dist/src/builders/internal/Subqueries.d.ts","../../../database/dist/src/builders/ConditionBuilder.d.ts","../../../database/dist/src/builders/internal/Where.d.ts","../../../database/dist/src/builders/internal/Returning.d.ts","../../../database/dist/src/builders/DeleteBuilder.d.ts","../../../database/dist/src/builders/ConflictActionType.d.ts","../../../database/dist/src/builders/InsertBuilder.d.ts","../../../database/dist/src/builders/LimitByGroupWrapper.d.ts","../../../database/dist/src/builders/UpdateBuilder.d.ts","../../../database/dist/src/builders/LockType.d.ts","../../../database/dist/src/builders/index.d.ts","../../../queryable/dist/src/Query.d.ts","../../../queryable/dist/src/Queryable.d.ts","../../../queryable/dist/src/QueryHandler.d.ts","../../../queryable/dist/src/QueryHandlerAccessor.d.ts","../../../queryable/dist/src/index.d.ts","../../../database/dist/src/queryable/DatabaseQuery.d.ts","../../../database/dist/src/queryable/DatabaseQueryable.d.ts","../../../database/dist/src/queryable/index.d.ts","../../../database/dist/src/client/EventManager.d.ts","../../../database/dist/src/client/errors.d.ts","../../../database/dist/src/utils/assertNever.d.ts","../../../database/dist/src/utils/asyncIterableTransaction.d.ts","../../../database/dist/src/utils/ConstraintHelper.d.ts","../../../database/dist/src/utils/createDatabaseIfNotExists.d.ts","../../../database/dist/src/utils/Mutex.d.ts","../../../database/dist/src/utils/sql.d.ts","../../../database/dist/src/utils/retryTransaction.d.ts","../../../database/dist/src/utils/withDatabaseAdvisoryLock.d.ts","../../../database/dist/src/client/PgClient.d.ts","../../../database/dist/src/utils/pgClientFactory.d.ts","../../../database/dist/src/utils/index.d.ts","../../../database/dist/src/client/Pool.d.ts","../../../database/dist/src/client/Connection.d.ts","../../../database/dist/src/client/Client.d.ts","../../../database/dist/src/client/errorCodes.d.ts","../../../database/dist/src/client/Transaction.d.ts","../../../database/dist/src/client/index.d.ts","../../../database/dist/src/builders/SelectBuilder.d.ts","../../../database/dist/src/builders/Compiler.d.ts","../../../database/dist/src/builders/internal/With.d.ts","../../../database/dist/src/index.d.ts","../../src/Migration.ts","../../src/helpers.ts","../../src/runner.ts","../../src/MigrationsRunner.ts","../../src/migrationsLoader.ts","../../src/index.ts","../../../../node_modules/@types/accepts/index.d.ts","../../../../node_modules/@types/bcrypt/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/keyv/index.d.ts","../../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../../node_modules/@types/responselike/index.d.ts","../../../../node_modules/@types/cacheable-request/index.d.ts","../../../../node_modules/@types/caseless/index.d.ts","../../../../node_modules/@types/chai/index.d.ts","../../../../node_modules/@types/chai-subset/index.d.ts","../../../../node_modules/@types/content-disposition/index.d.ts","../../../../node_modules/@types/cookiejar/index.d.ts","../../../../node_modules/@types/keygrip/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/mime/Mime.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../node_modules/@types/cookies/index.d.ts","../../../../node_modules/@types/fs-extra/index.d.ts","../../../../node_modules/@types/http-assert/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/js-yaml/index.d.ts","../../../../node_modules/@types/json-buffer/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/json-stable-stringify/index.d.ts","../../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../../node_modules/@types/koa-compose/index.d.ts","../../../../node_modules/@types/koa/index.d.ts","../../../../node_modules/@types/koa-bodyparser/index.d.ts","../../../../node_modules/@types/koa-compress/index.d.ts","../../../../node_modules/@types/koa__cors/index.d.ts","../../../../node_modules/@types/mime-types/index.d.ts","../../../../node_modules/@types/mustache/index.d.ts","../../../../node_modules/form-data/index.d.ts","../../../../node_modules/@types/node-fetch/externals.d.ts","../../../../node_modules/@types/node-fetch/index.d.ts","../../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../../node_modules/@types/nodemailer/index.d.ts","../../../../node_modules/@types/npm-package-arg/index.d.ts","../../../../node_modules/@types/parse-json/index.d.ts","../../../../node_modules/@types/prompts/index.d.ts","../../../../node_modules/@types/request/node_modules/form-data/index.d.ts","../../../../node_modules/@types/tough-cookie/index.d.ts","../../../../node_modules/@types/request/index.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/@types/superagent/index.d.ts","../../../../node_modules/@types/supertest/index.d.ts","../../../../node_modules/@types/uuid/index.d.ts","../../../../node_modules/@types/ws/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","68915895d4a136df5cf5f90aaa41d8e1e47ec047e7781a150b5d0cf273dbb7a9","acfbb5aaef964e1d441f961a1846197f03241dba3c63b1e4d1903684888ef465","09416dd69576b03a3f485adf329a02f043e4a481e060ef5b208194e488d31fd9","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","a907bf91df26df2400858ef75f749498fb5cf00062bf90a737ac3949cc07978d","cb92bc2e42b261e4299025756f1beb826b3d9666a3f0d46f8a7254ca512f57e4","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","0830071706fa0e477fb5e95f0955cc1062b5948b146b7d4e03a126f12ad6085f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a12806a1bde5e9f137bb79728d87a4ceaedf04e95efc9967d3288a3c252d9a7b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","ba734e99c89afd77224127e11126195d07fb96dd8fb1f0439e9fc2f027b72112","5aed73f52d0a9f96e54039bb6ddc969584dcfd12ec58471880c0055472694339","c7ecc609a9cc774d42fda13d26e9fb2c56a260f0e7b9e1d886792577e9413987","3844b0b59b47fc78fab22600d2f799c35268541cedf087aa8202538851ed3e63","377dcaaa943c3d33775939d5a0c104355dc8e0633258173b82867f9e256679f1","3d5a2c7286bf5604e1cd429a248d075ad07fb387e533c3a1bb7b403dfb3161d0","f469831428c0fe34abae000c1c60056b40557a9f38513dd798b83dddc0326095","d4744158acca2970d2e517bb2faacb60445c3324ecadad57e7a4d4b1d630f37a","8d6d709d58f220bb7333638048e6178f191719e7aaed4ef575bc3756393eed44","022be9bc352bceee89f8cf47d7a429ef375732242d573c8c5260036c734d17d7","591b05b540a2fec0f57a3bf1eeaf863812255ced10a08c20f99f2b5b7466447c","6cf8f1b7cc0355925c43c914b5c0503bc5e50ec9e89155db68e66fa8edbfa376","a4edce132f3bac82ec75774cc2332c7a1521ac8df2037e17ea77cf0248a87a54","fbb5d7d62a7c344533fdeaf4e54e52615023eec5a04d27ecaeed9cd187eb89fc","4f9d775c0eaa26ef5f767ad0e8628c36388f27d2c9537f9d982f220a92394ffe","bb30cff2b3f210e4ba03c594790b695616e424807be8a46e3ead03237cc5e92a","217f31ea28beab2bd8ff3922315bee9a8aee197110f77b37f5ccedc0805bdf57","deaebd91536ed151354cca86733f27d50a588ba1b773166362583f15b50fca5c","e307b50a28c18d0e0eb6466d92e9bf6e4a4bbf4d783ae7071938399f92f98c69","b366f01b1fbed4d241937ae5ea5cf86f4550504901bde608ee695f9c9d84e2cb","97a69ca824e1c406af799628347837a38384a65cbdbadb2d4051196c43207c7b","8ee30bb30716bc7bc0bad2d2a36f9a42e983d09ee640dc14447278e04b7e7ab5","3cf64698a8874ebd7d0329d75f062acf4e93b39ce28442de567f12645e792622","0724b95811d5934d1cd264936c2ea70f12a901faa2c5f726f291726a0d8fed09","7d217935aa88309ed32f203f9b0a8a80d7b63c9ed89dea1cd2923e32febd7d4d","5b2c05e84d9372dd97723492120315c8b67393bd0ffbc9edf9c1135e19e91b32","6e02066ba4c0c8d4d5b519de78584b3356b2027f630fdd8572b0b0e17b614ce3","8b96b3f6175b0dfb38fb9d7b69be5b66ea5f9ea83b4da8263be431f1d54649af","0dd69d2d7e8093134236f32b7ed43e1d949638d3dfafdf58af3fc3a67101cc88","88dbb78adf87670d942651b8da94cd6c17b6f00f6e8427d8fdea8b0e8cdfca69","dcb2ae01f2cc0cb045e5f64c270d4dc65277090968c695b07faeedcb5ec36791","bb19324cd05f6b490eede077db4852d7a414b460bcf5c29827067ac169f6e0cc","3e05db608bd738d69f676f898b20bb88b05f07a3416bdded7e9d5794bab8e56f","8f6c805cc5a4fd6a1fef568791372bf71f35fb5d20d56ab88c2a33034854440b","8095e245054694f51766246abe8efc2a86935b296cd0c86b39528f697d6be44d","01a39ec433fdde1e9a7daec0e8698a15b713714767170ee31520858c3909c696","f2cc121f9ddce767017cce6f314bd8c36a13ab21790af6a3144effe36c227c50","7b5b82092e97e74dddf0c03eb561b2f60e89f3e347e9abb42937921f2280b7be","2c4c12960873024f1edc1a50cae7776d98e72a4fb45faf573f7930f3a78d1c41","8956d9f8a70ce97be20a8770ac97ad57ed3d07bcb3c5e4e0ee4f98a620101c66","33bbeb3437d6298ef3a2eb14dcde7fefa56841ae676a61d627357aa113bde647","dee7e63c4408d537fa5369e7b38979149693ca7574a1a0b26424beca0c98efe8","0c958be68c882fcb3f14999a5d15afc100f6aad04b4a7617b2d8805ed3c70522","3f21a8d6e6984712c89372d709ef4ab7966f3eb44b66a7dd295af8ad425039ed","58225569a7fadf71770a21393e8a02b4abc1df2851b6a311b57d2f06421a6b4c","bbe451cef0df0ce351c6563e16aeb3fb11395e84c1ff403f3cdfbda2a19648f9","f549347bc8b2ee2026357d43eb11070e4900aa4f91c80276f253a9affe860f7d","e5785e1d247a1bc256ad777b06e9be3369f10c197cdacda9558f4345e395931b","0bca486724f72320966646542e49ec69b0006c15e8dc3269271597fae4088982","8f7063ac23b035cab663a6a958819d55bedee5e7b0369061409b7080540074dd","c3aa38cc8852f03be655cc32dd1bd1663329baf398c1df29552edea2e482dde5","443b40981f40d92ebcc6a176c3a194c05a282225646c212dc84656d74df19852","e83ecb22d89f82d08c072aba55355a7f64a981295b402e9da3745cde68421255","be9b313c8ad1641bf24c3fd176ff21523dccd76c597ae51cca7f485313dab755","e8596c7c441676b3aa4bc20d1ed5604f729f4ec72eb7fb88ebcd359f8a9249d6","fd8856cb7f184c84ab6ebcd860a0ae2d96cc848ec27bef893ed2d659e4e2270e","77107fdaf84dd93f654d6643a675a7a482047815bbfa6d52e9b3c32cc88611bd","ea7d198005d34c160df26dc560f4dee2c874bc05497369d7b247200c1b9c10ae","974ce3e154a453a4c190696face27b7ca4c8b496b41248967f045655bdf20d35","8096e59065032c0ccf8f0a40ad2c5fda2b667f69f88976088beca9587e4d0b42","613a4aa35726c320a43916ac77b0d23475117669a495f325fc1fbf6eab0302c0","4a509df1002e274856016567dbfb0ef672baf90aeee2670b6ea6a1c11b43a254","88398a6f505edeb2e340da9148a589c0b2e04e127fc1af2de51b6c65efa6020c","8f0feaa30238324242e48e57a2b32b32b6515315bf87dba293372740d21140f3","a07eae34636b33c96325d676ca6eb1231a2232b72361f221052ef9534adaaf5c","15be5bd580a13feacf1da73771a1325d35aea3c76baf8cf9d3bac422a03c86c8","e5de3662a2444b96d8f2645de1a5ae70b128d1166ea2f79c5fa77eed51ed3f0e","90a5b31e7889631f05c29db43be491d8d99c338d8621596d3fca3d03fb69bbab","e10e99d90d08fe63c6d6c55493367beeb9c082f5cc1b25c56b9eab3996bbbac0","edbb46970bcd4561795898f82524c32893799958a4081d1a04e60ff979488d18","15b2d7aeadaeb10d4f91f781828ae3bc408376aabae35f29b4871d6c92bcbb17","13f8d17ef8dd15e4e07c17851a6819e45e5b8b0de304bc5444409ea11e7da4d2","747f991892aaea1cce03d84547485155c8c68d1ad4d2a9c68d6790f175597833","e24ced6eba132b866065190cede5a0db2cf2a1d0b0c94285e00b1de41129166e","366ccca92a86e10519bf8557e58a057ca934584a8955b68018f9d1efcf59c459","af7ff3862fe43a6c486553a92fdea39fa243ea092f2ed3ef21c166a7875b2a0f","93bb0a6f76b4f71a3c3b1f06cf98631fea946723ddeb0d908552f1cdfc21b818","8bee348bdf15ee2a430180a82edfff6e64396453bf41d7a273e182c43c43c2de","54d13c5234ff5cbe4f7df8c1a2fd77dd4f6e87a823b9f0390ab93361e8289955","2a957584986d115f5fccc18f78bd62cb125587d9f7a257bd4599414efe5e81d6","d2e84777615e57c91343f3db1e3ec78d901f0fc43a280b288d54fd5d5a72eb68","d547f52c1584b087b7c639ded02ae2ed9e728b113a11d50f7fa5bc0aaf80df79","0ef5f140ff0bb5f1a41016bd70b9ca08571c26595aba560e207fa053398f00f0","0a448ebd2d953b06016bdb166ec486f89c3f65ac712c802eea518f16d06d0b84","3819ab4322145625a2fe2776d1980a47c4ac569dcdf2fc386e4a1ba5c74d9aaa","4e7d19141c1ce4f0250b565586be6997d93f651ffedc3a86d42a86deac716a31",{"version":"0c2292b25d69563b1910872cd4d99754a98054389c134506a5aa60cbac40447b","signature":"6ff52c9eb08f0c18baeb6587e3afef16d42b7bec76a451671907ee198840decf"},{"version":"b8aafbe960df801b9c99e3dbef4381cfd2aaf4230328221fd858bdaa48922cb1","signature":"d268e4015f0d1a72c0ea4d5f573f1e13eb551ec32faf35ee12781a536f90a2ef"},{"version":"b8649c9aa3d332b4148f8e3b905a3c5164dc9dfcd2da08971cc8a6d21e6f8469","signature":"76e6c67002ffae5fef8ee0611d31e9550427c268474c44b82df8df0312ace765"},{"version":"9eba1c93acd9d190c98d9fca4455327bcdf75335dadcb8f46bfc83b7de785bb4","signature":"c3621aa3c26a55979bc7ac4419534187e9b04a6c44ba65a5d3062bd882f63dd0"},{"version":"f87579bceeb11d35c0705ea18bc76f486911625946297c68a2f7db71ffd3f77a","signature":"73630adfdd92d7bc78bf11ff986ddde0a74d15eb931377cd07c10e4d292a6a1f"},{"version":"b195db887ade5dcdf6c697d7a9c2cdad8a41147d4685a53694e1e126756c8dc8","signature":"15db45e214e2c027bdc656da32c30b9125811eaa61eebcd72cf3eb8bd4df7b51"},"6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","57ddc4e066366bbe04f497f9afce1c88e088dbd09be0618e072754450de3acbb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","5343f3c160282dfbaab9af350119a0c3b59b7076ef0117bb5995a66e240dab28",{"version":"127bf414ca8ced28c9738b91a935121009d03bbc136668db980bd1ba18976b2b","affectsGlobalScope":true},{"version":"f4c0db3a49cea9babd5d224ba14243a6a6119bf65a65198994033aaea3a60a71","affectsGlobalScope":true},"204dbe6c72467fb14bbe8f06510b11fb541b6ce29580c6e10ebd3bdb2eb0c1f9","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","ce013414484233b24f42c0fcfca48a60bb66ab4e13c82953662305e8f1ee4925","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","eb96a2321f717bccc3e49e104e299152984b927ea4546b559ae631c06565819c","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","e98185f4249720ace1921d59c1ff4612fa5c633a183fc9bf28e2e7b8e3c7fd51","6168414aa12d33d0fcfac4f9870aa81ce27e136db6faf182001a5f3792e1d720","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","75bdc1b420f0ffc6cc6fd0b6694d89f5072bf755b4e6c7e65a2fda797ca0bb8a","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","13cc3979e1f548aacaa23911f2d6e69c1a2999266c4a1952806de1e9593bdaaa","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","5006668996956580886022c05108e32c742823e1b5652aff7914917233731518","3a9b877f47119ac64aab98c61cae91a304ddeb6e8285ccd824a6aa665ffaeb95","aff59cc6a1f2049bc6ac37cdd5a7d449584f28e7ee5ba240bd903aefdaef6418","77224b06a9d39e8710eca2050acadd9f9e062b068d74aa98e38a6854c272d35e","dcb9aa62f2662b999047096125adfa905cca0c988d7f5130e38ab41afeb96a3f","c757372a092924f5c16eaf11a1475b80b95bb4dae49fe3242d2ad908f97d5abe","017cfb3f6986b6b449fda402cce0f7da77820cb7000d5faf5a8b62587684031a","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","6e41751646fe275206d052a2e5ba87d27dd0df4dcbca134fc3fd2dc4d3d410d2","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","9b5a5e0d06f8646aa2978afb1b5bb5e608649751e9cfc7290e86be42605ba42f","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","5f7614d60b32dc66e5d665eafd10d7619eedca3a20f0e876e9ec73141735e364","e91ad231af87f864b3f07cd0e39b1cf6c133988156f087c1c3ccb0a5491c9115","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","bf0b1297461549a0e32cd57dffb992c63d7c7134fe0f9e15d359abcc88dbd28c","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6"],"options":{"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noEmitOnError":true,"outDir":"./","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[73,100,107],[100,107],[73,100,107,208],[70,73,99,100,107,210,211,212],[100],[100,215],[73,100,107,208,219,226],[70,73,100,107,220,221],[100,209,221,222,225],[71,100,107],[70,100,107],[100,237],[100,105,107,237],[70,73,74,78,84,99,100,107,206,217,219,227,229,230,236],[100,224],[100,223],[73,99,100,107,243,244],[55,100],[58,100],[59,64,100],[60,70,71,78,88,99,100],[60,61,70,78,100],[62,100],[63,64,71,79,100],[64,88,96,100],[65,67,70,78,100],[66,100],[67,68,100],[69,70,100],[70,100],[70,71,72,88,99,100],[70,71,72,88,91,100],[100,104],[73,78,88,99,100],[70,71,73,74,78,88,96,99,100],[73,75,88,96,99,100],[55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106],[70,76,100],[77,99,100],[67,70,78,88,100],[79,100],[80,100],[58,81,100],[82,98,100,104],[83,100],[84,100],[70,85,86,100],[85,87,100,102],[70,88,89,90,91,100],[88,90,100],[88,89,100],[91,100],[92,100],[70,94,95,100],[94,95,100],[64,78,88,96,100],[97,100],[78,98,100],[59,73,84,99,100],[64,100],[88,100,101],[100,102],[100,103],[59,64,70,72,81,88,99,100,102,104],[88,100,105],[100,107,247,249,253,254,255,256,257,258],[88,100,107],[70,100,107,247,249,250,252,259],[70,78,88,99,100,107,246,247,248,250,251,252,259],[88,100,107,249,250],[88,100,107,249,251],[100,107,247,249,250,252,259],[88,100,107,251],[70,78,88,96,100,107,248,250,252],[70,100,107,247,249,250,251,252,259],[70,88,100,107,247,248,249,250,251,252,259],[70,88,100,107,247,249,250,252,259],[73,88,100,107,252],[70,88,96,100,107,108,109,112,113],[100,107,109,110,111],[88,100,107,109],[71,73,75,78,88,99,100,107,214,263,264],[73,88,100,107],[73,100,107,224],[59,71,73,88,100,107,218],[100,267],[70,73,75,88,96,99,100,105,107],[100,113,131],[100,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,149,150],[100,114,126,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147],[100,113,126,131,132,148],[100,116,131],[100,115],[100,117,131],[100,118,131],[100,114],[100,119,131],[100,120,131],[100,115,118],[100,121,131],[100,115,151],[100,122,131],[100,123,131],[100,124,131],[100,125,126,131],[100,126,131],[100,115,125],[100,127,131],[100,128,131],[100,129,131],[100,130,131],[100,131,149],[100,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[100,151,199],[100,199,200,202],[100,151],[100,151,199,200,201,203,204],[72,80,100,200],[100,199,200,201],[100,152,157],[100,152,153,154,155,157,159],[100,152,162,164,166,196],[100,152,153,157,158,196],[100,152,157,158,160,161,195,197,198],[100,152,157,158,160,161,163,195,196,197,198],[100,157,195,196],[100,152,153,156,196,197],[100,152,157,158,159,160,167,195,197,198],[100,152,157,158,160,161,195,196,197,198],[100,154,155,157,159,162,163,164,165,166,167,196,197],[100,152,168,195],[100,152,157,196,197],[100,152,153,159],[100,152,158,197],[100,168,173,176,177,191],[100,153,177,190,192],[100,191],[70,100,107,113],[100,107,178,187,189],[100,177,191],[100,177,178,190,191,192,193,194],[100,152,153,160,161,168,176,189,195,198],[100,173,199],[100,174,175],[100,195],[100,153],[100,179,180,181,182,183,184,185,186,188],[100,113,153,187],[100,152],[100,173],[100,169,170,171,172],[151,199],[199,200],[151],[151,199,200,201,203,204],[200]],"referencedMap":[[206,1],[207,2],[209,3],[213,4],[214,5],[216,6],[215,5],[208,1],[217,5],[218,5],[227,7],[222,8],[226,9],[228,10],[229,5],[211,5],[230,5],[231,5],[232,5],[233,5],[234,5],[235,2],[219,5],[210,11],[238,12],[236,12],[239,13],[237,14],[240,12],[241,5],[223,15],[224,16],[242,5],[244,5],[245,17],[55,18],[56,18],[58,19],[59,20],[60,21],[61,22],[62,23],[63,24],[64,25],[65,26],[66,27],[67,28],[68,28],[69,29],[70,30],[71,31],[72,32],[57,33],[106,5],[73,34],[74,35],[75,36],[107,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,43],[82,44],[83,45],[84,46],[85,47],[86,47],[87,48],[88,49],[90,50],[89,51],[91,52],[92,53],[93,5],[94,54],[95,55],[96,56],[97,57],[98,58],[99,59],[100,60],[101,61],[102,62],[103,63],[104,64],[105,65],[259,66],[246,67],[253,68],[249,69],[247,70],[250,71],[254,72],[255,68],[252,73],[251,74],[256,75],[257,76],[258,77],[248,78],[260,5],[261,5],[113,79],[112,80],[109,2],[111,81],[110,2],[262,67],[221,5],[220,5],[265,82],[263,83],[212,83],[225,84],[267,85],[268,86],[264,5],[269,5],[270,87],[266,5],[243,83],[132,88],[151,89],[148,90],[149,91],[114,5],[133,92],[116,93],[134,94],[117,93],[135,95],[118,93],[115,96],[136,97],[119,93],[137,98],[120,99],[138,100],[121,101],[139,102],[122,93],[140,103],[123,93],[141,104],[124,93],[142,105],[125,93],[143,106],[126,107],[144,108],[127,99],[145,109],[128,93],[146,110],[147,111],[130,93],[129,93],[150,112],[131,113],[108,5],[11,5],[13,5],[12,5],[2,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[3,5],[4,5],[25,5],[22,5],[23,5],[24,5],[26,5],[27,5],[28,5],[5,5],[29,5],[30,5],[31,5],[32,5],[6,5],[33,5],[34,5],[35,5],[36,5],[7,5],[37,5],[42,5],[43,5],[38,5],[39,5],[40,5],[41,5],[8,5],[47,5],[44,5],[45,5],[46,5],[48,5],[9,5],[49,5],[50,5],[51,5],[52,5],[53,5],[1,5],[10,5],[54,5],[200,114],[203,115],[201,116],[205,117],[204,118],[202,119],[152,5],[155,120],[156,121],[197,122],[159,123],[163,5],[162,124],[164,125],[165,126],[167,5],[157,127],[196,128],[166,129],[154,120],[168,130],[161,131],[158,132],[160,133],[198,134],[192,135],[191,136],[177,137],[187,138],[190,139],[194,140],[193,5],[178,5],[195,141],[199,142],[174,143],[175,143],[176,144],[153,2],[181,145],[183,5],[179,5],[180,145],[182,146],[189,147],[188,148],[185,5],[184,149],[186,145],[169,150],[171,150],[172,150],[170,150],[173,151]],"exportedModulesMap":[[206,1],[207,2],[209,3],[213,4],[214,5],[216,6],[215,5],[208,1],[217,5],[218,5],[227,7],[222,8],[226,9],[228,10],[229,5],[211,5],[230,5],[231,5],[232,5],[233,5],[234,5],[235,2],[219,5],[210,11],[238,12],[236,12],[239,13],[237,14],[240,12],[241,5],[223,15],[224,16],[242,5],[244,5],[245,17],[55,18],[56,18],[58,19],[59,20],[60,21],[61,22],[62,23],[63,24],[64,25],[65,26],[66,27],[67,28],[68,28],[69,29],[70,30],[71,31],[72,32],[57,33],[106,5],[73,34],[74,35],[75,36],[107,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,43],[82,44],[83,45],[84,46],[85,47],[86,47],[87,48],[88,49],[90,50],[89,51],[91,52],[92,53],[93,5],[94,54],[95,55],[96,56],[97,57],[98,58],[99,59],[100,60],[101,61],[102,62],[103,63],[104,64],[105,65],[259,66],[246,67],[253,68],[249,69],[247,70],[250,71],[254,72],[255,68],[252,73],[251,74],[256,75],[257,76],[258,77],[248,78],[260,5],[261,5],[113,79],[112,80],[109,2],[111,81],[110,2],[262,67],[221,5],[220,5],[265,82],[263,83],[212,83],[225,84],[267,85],[268,86],[264,5],[269,5],[270,87],[266,5],[243,83],[132,88],[151,89],[148,90],[149,91],[114,5],[133,92],[116,93],[134,94],[117,93],[135,95],[118,93],[115,96],[136,97],[119,93],[137,98],[120,99],[138,100],[121,101],[139,102],[122,93],[140,103],[123,93],[141,104],[124,93],[142,105],[125,93],[143,106],[126,107],[144,108],[127,99],[145,109],[128,93],[146,110],[147,111],[130,93],[129,93],[150,112],[131,113],[108,5],[11,5],[13,5],[12,5],[2,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[3,5],[4,5],[25,5],[22,5],[23,5],[24,5],[26,5],[27,5],[28,5],[5,5],[29,5],[30,5],[31,5],[32,5],[6,5],[33,5],[34,5],[35,5],[36,5],[7,5],[37,5],[42,5],[43,5],[38,5],[39,5],[40,5],[41,5],[8,5],[47,5],[44,5],[45,5],[46,5],[48,5],[9,5],[49,5],[50,5],[51,5],[52,5],[53,5],[1,5],[10,5],[54,5],[200,152],[203,153],[201,154],[205,155],[204,156],[202,153],[152,5],[155,120],[156,121],[197,122],[159,123],[163,5],[162,124],[164,125],[165,126],[167,5],[157,127],[196,128],[166,129],[154,120],[168,130],[161,131],[158,132],[160,133],[198,134],[192,135],[191,136],[177,137],[187,138],[190,139],[194,140],[193,5],[178,5],[195,141],[199,142],[174,143],[175,143],[176,144],[153,2],[181,145],[183,5],[179,5],[180,145],[182,146],[189,147],[188,148],[185,5],[184,149],[186,145],[169,150],[171,150],[172,150],[170,150],[173,151]],"semanticDiagnosticsPerFile":[206,207,209,213,214,216,215,208,217,218,227,222,226,228,229,211,230,231,232,233,234,235,219,210,238,236,239,237,240,241,223,224,242,244,245,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,57,106,73,74,75,107,76,77,78,79,80,81,82,83,84,85,86,87,88,90,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,259,246,253,249,247,250,254,255,252,251,256,257,258,248,260,261,113,112,109,111,110,262,221,220,265,263,212,225,267,268,264,269,270,266,243,132,151,148,149,114,133,116,134,117,135,118,115,136,119,137,120,138,121,139,122,140,123,141,124,142,125,143,126,144,127,145,128,146,147,130,129,150,131,108,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,37,42,43,38,39,40,41,8,47,44,45,46,48,9,49,50,51,52,53,1,10,54,200,203,201,205,204,202,152,155,156,197,159,163,162,164,165,167,157,196,166,154,168,161,158,160,198,192,191,177,187,190,194,193,178,195,199,174,175,176,153,181,183,179,180,182,189,188,185,184,186,169,171,172,170,173],"latestChangedDtsFile":"./index.d.ts"},"version":"4.8.2"}
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/pg-types/index.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/messages.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/serializer.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/parser.d.ts","../../../../node_modules/@types/pg/node_modules/pg-protocol/dist/index.d.ts","../../../../node_modules/@types/pg/index.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/PgLiteral.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/generalTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/domainsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/extensionsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/functionsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/indexesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/operatorsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/othersTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/policiesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/rolesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/schemasTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/sequencesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/tablesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/triggersTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/typesTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsMaterializedTypes.d.ts","../../../../node_modules/node-pg-migrate/dist/types.d.ts","../../../../node_modules/node-pg-migrate/dist/db.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/domains.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/extensions.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/functions.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/indexes.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/operators.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/other.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/policies.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/roles.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/schemas.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/sequences.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/tables.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/triggers.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/types.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/views.d.ts","../../../../node_modules/node-pg-migrate/dist/operations/viewsMaterialized.d.ts","../../../../node_modules/node-pg-migrate/dist/migration-builder.d.ts","../../../../node_modules/node-pg-migrate/dist/migration.d.ts","../../../../node_modules/node-pg-migrate/dist/runner.d.ts","../../../../node_modules/node-pg-migrate/dist/index.d.ts","../../../database/dist/src/Literal.d.ts","../../../database/dist/src/types.d.ts","../../../database/dist/src/builders/WindowFunction.d.ts","../../../database/dist/src/builders/CaseStatement.d.ts","../../../database/dist/src/builders/ColumnExpressionFactory.d.ts","../../../database/dist/src/builders/QueryBuilder.d.ts","../../../database/dist/src/builders/internal/Subqueries.d.ts","../../../database/dist/src/builders/ConditionBuilder.d.ts","../../../database/dist/src/builders/internal/Where.d.ts","../../../database/dist/src/builders/internal/Returning.d.ts","../../../database/dist/src/builders/DeleteBuilder.d.ts","../../../database/dist/src/builders/ConflictActionType.d.ts","../../../database/dist/src/builders/InsertBuilder.d.ts","../../../database/dist/src/builders/LimitByGroupWrapper.d.ts","../../../database/dist/src/builders/UpdateBuilder.d.ts","../../../database/dist/src/builders/LockType.d.ts","../../../database/dist/src/builders/index.d.ts","../../../queryable/dist/src/Query.d.ts","../../../queryable/dist/src/Queryable.d.ts","../../../queryable/dist/src/QueryHandler.d.ts","../../../queryable/dist/src/QueryHandlerAccessor.d.ts","../../../queryable/dist/src/index.d.ts","../../../database/dist/src/queryable/DatabaseQuery.d.ts","../../../database/dist/src/queryable/DatabaseQueryable.d.ts","../../../database/dist/src/queryable/index.d.ts","../../../database/dist/src/client/EventManager.d.ts","../../../database/dist/src/client/errors.d.ts","../../../database/dist/src/utils/assertNever.d.ts","../../../database/dist/src/utils/asyncIterableTransaction.d.ts","../../../database/dist/src/utils/ConstraintHelper.d.ts","../../../database/dist/src/utils/createDatabaseIfNotExists.d.ts","../../../database/dist/src/utils/listen.d.ts","../../../database/dist/src/utils/Mutex.d.ts","../../../database/dist/src/utils/sql.d.ts","../../../database/dist/src/utils/retryTransaction.d.ts","../../../database/dist/src/utils/withDatabaseAdvisoryLock.d.ts","../../../database/dist/src/client/PgClient.d.ts","../../../database/dist/src/utils/pgClientFactory.d.ts","../../../database/dist/src/utils/index.d.ts","../../../database/dist/src/client/Pool.d.ts","../../../database/dist/src/client/Connection.d.ts","../../../database/dist/src/client/Client.d.ts","../../../database/dist/src/client/errorCodes.d.ts","../../../database/dist/src/client/Transaction.d.ts","../../../database/dist/src/client/index.d.ts","../../../database/dist/src/builders/SelectBuilder.d.ts","../../../database/dist/src/builders/Compiler.d.ts","../../../database/dist/src/builders/internal/With.d.ts","../../../database/dist/src/index.d.ts","../../src/Migration.ts","../../src/MigrationsResolver.ts","../../src/GroupMigrationsResolver.ts","../../src/helpers.ts","../../src/runner.ts","../../src/MigrationsRunner.ts","../../src/SnapshotMigrationResolver.ts","../../src/index.ts","../../../../node_modules/@types/accepts/index.d.ts","../../../../node_modules/@types/bcrypt/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/caseless/index.d.ts","../../../../node_modules/@types/chai/index.d.ts","../../../../node_modules/@types/chai-subset/index.d.ts","../../../../node_modules/@types/content-disposition/index.d.ts","../../../../node_modules/@types/cookiejar/index.d.ts","../../../../node_modules/@types/keygrip/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/mime/Mime.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../node_modules/@types/cookies/index.d.ts","../../../../node_modules/@types/fs-extra/index.d.ts","../../../../node_modules/@types/http-assert/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/js-yaml/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/json-stable-stringify/index.d.ts","../../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../../node_modules/@types/koa-compose/index.d.ts","../../../../node_modules/@types/koa/index.d.ts","../../../../node_modules/@types/koa-bodyparser/index.d.ts","../../../../node_modules/@types/koa-compress/index.d.ts","../../../../node_modules/@types/koa__cors/index.d.ts","../../../../node_modules/@types/mime-types/index.d.ts","../../../../node_modules/@types/mustache/index.d.ts","../../../../node_modules/form-data/index.d.ts","../../../../node_modules/@types/node-fetch/externals.d.ts","../../../../node_modules/@types/node-fetch/index.d.ts","../../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../../node_modules/@types/nodemailer/index.d.ts","../../../../node_modules/@types/npm-package-arg/index.d.ts","../../../../node_modules/@types/parse-json/index.d.ts","../../../../node_modules/@types/prompts/index.d.ts","../../../../node_modules/@types/request/node_modules/form-data/index.d.ts","../../../../node_modules/@types/tough-cookie/index.d.ts","../../../../node_modules/@types/request/index.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/@types/superagent/index.d.ts","../../../../node_modules/@types/supertest/index.d.ts","../../../../node_modules/@types/uuid/index.d.ts","../../../../node_modules/@types/ws/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","68915895d4a136df5cf5f90aaa41d8e1e47ec047e7781a150b5d0cf273dbb7a9","acfbb5aaef964e1d441f961a1846197f03241dba3c63b1e4d1903684888ef465","09416dd69576b03a3f485adf329a02f043e4a481e060ef5b208194e488d31fd9","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","a907bf91df26df2400858ef75f749498fb5cf00062bf90a737ac3949cc07978d","cb92bc2e42b261e4299025756f1beb826b3d9666a3f0d46f8a7254ca512f57e4","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","0830071706fa0e477fb5e95f0955cc1062b5948b146b7d4e03a126f12ad6085f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a12806a1bde5e9f137bb79728d87a4ceaedf04e95efc9967d3288a3c252d9a7b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","ba734e99c89afd77224127e11126195d07fb96dd8fb1f0439e9fc2f027b72112","5aed73f52d0a9f96e54039bb6ddc969584dcfd12ec58471880c0055472694339","c7ecc609a9cc774d42fda13d26e9fb2c56a260f0e7b9e1d886792577e9413987","3844b0b59b47fc78fab22600d2f799c35268541cedf087aa8202538851ed3e63","377dcaaa943c3d33775939d5a0c104355dc8e0633258173b82867f9e256679f1","3d5a2c7286bf5604e1cd429a248d075ad07fb387e533c3a1bb7b403dfb3161d0","f469831428c0fe34abae000c1c60056b40557a9f38513dd798b83dddc0326095","d4744158acca2970d2e517bb2faacb60445c3324ecadad57e7a4d4b1d630f37a","8d6d709d58f220bb7333638048e6178f191719e7aaed4ef575bc3756393eed44","022be9bc352bceee89f8cf47d7a429ef375732242d573c8c5260036c734d17d7","591b05b540a2fec0f57a3bf1eeaf863812255ced10a08c20f99f2b5b7466447c","6cf8f1b7cc0355925c43c914b5c0503bc5e50ec9e89155db68e66fa8edbfa376","a4edce132f3bac82ec75774cc2332c7a1521ac8df2037e17ea77cf0248a87a54","fbb5d7d62a7c344533fdeaf4e54e52615023eec5a04d27ecaeed9cd187eb89fc","4f9d775c0eaa26ef5f767ad0e8628c36388f27d2c9537f9d982f220a92394ffe","bb30cff2b3f210e4ba03c594790b695616e424807be8a46e3ead03237cc5e92a","217f31ea28beab2bd8ff3922315bee9a8aee197110f77b37f5ccedc0805bdf57","deaebd91536ed151354cca86733f27d50a588ba1b773166362583f15b50fca5c","e307b50a28c18d0e0eb6466d92e9bf6e4a4bbf4d783ae7071938399f92f98c69","b366f01b1fbed4d241937ae5ea5cf86f4550504901bde608ee695f9c9d84e2cb","97a69ca824e1c406af799628347837a38384a65cbdbadb2d4051196c43207c7b","8ee30bb30716bc7bc0bad2d2a36f9a42e983d09ee640dc14447278e04b7e7ab5","3cf64698a8874ebd7d0329d75f062acf4e93b39ce28442de567f12645e792622","0724b95811d5934d1cd264936c2ea70f12a901faa2c5f726f291726a0d8fed09","7d217935aa88309ed32f203f9b0a8a80d7b63c9ed89dea1cd2923e32febd7d4d","5b2c05e84d9372dd97723492120315c8b67393bd0ffbc9edf9c1135e19e91b32","6e02066ba4c0c8d4d5b519de78584b3356b2027f630fdd8572b0b0e17b614ce3","8b96b3f6175b0dfb38fb9d7b69be5b66ea5f9ea83b4da8263be431f1d54649af","0dd69d2d7e8093134236f32b7ed43e1d949638d3dfafdf58af3fc3a67101cc88","88dbb78adf87670d942651b8da94cd6c17b6f00f6e8427d8fdea8b0e8cdfca69","dcb2ae01f2cc0cb045e5f64c270d4dc65277090968c695b07faeedcb5ec36791","bb19324cd05f6b490eede077db4852d7a414b460bcf5c29827067ac169f6e0cc","3e05db608bd738d69f676f898b20bb88b05f07a3416bdded7e9d5794bab8e56f","8f6c805cc5a4fd6a1fef568791372bf71f35fb5d20d56ab88c2a33034854440b","8095e245054694f51766246abe8efc2a86935b296cd0c86b39528f697d6be44d","01a39ec433fdde1e9a7daec0e8698a15b713714767170ee31520858c3909c696","f2cc121f9ddce767017cce6f314bd8c36a13ab21790af6a3144effe36c227c50","7b5b82092e97e74dddf0c03eb561b2f60e89f3e347e9abb42937921f2280b7be","2c4c12960873024f1edc1a50cae7776d98e72a4fb45faf573f7930f3a78d1c41","33529384d7115c0582054dbdfb510ddc290e6d144f9349e4b5ecad285315881e","33bbeb3437d6298ef3a2eb14dcde7fefa56841ae676a61d627357aa113bde647","dee7e63c4408d537fa5369e7b38979149693ca7574a1a0b26424beca0c98efe8","0c958be68c882fcb3f14999a5d15afc100f6aad04b4a7617b2d8805ed3c70522","d3562c4c0737172bbd4b590c5eb7f9e763de4473f68e2210518fc4badcad05f8","58225569a7fadf71770a21393e8a02b4abc1df2851b6a311b57d2f06421a6b4c","bbe451cef0df0ce351c6563e16aeb3fb11395e84c1ff403f3cdfbda2a19648f9","f549347bc8b2ee2026357d43eb11070e4900aa4f91c80276f253a9affe860f7d","e5785e1d247a1bc256ad777b06e9be3369f10c197cdacda9558f4345e395931b","0bca486724f72320966646542e49ec69b0006c15e8dc3269271597fae4088982","8f7063ac23b035cab663a6a958819d55bedee5e7b0369061409b7080540074dd","de846faa17160f4c9cf9dd4ad280573a54e01206020ae7ddb704e61a2803382e","443b40981f40d92ebcc6a176c3a194c05a282225646c212dc84656d74df19852","ea66de52369045f564d2517119e9c62a5c27a96b6fde8f40f8eaca0900da8f10","80967bf5420b3d325a5321c4b48f278d01f7b85c0fe062d7908eb0b0efe98445","e8596c7c441676b3aa4bc20d1ed5604f729f4ec72eb7fb88ebcd359f8a9249d6","fd8856cb7f184c84ab6ebcd860a0ae2d96cc848ec27bef893ed2d659e4e2270e","77107fdaf84dd93f654d6643a675a7a482047815bbfa6d52e9b3c32cc88611bd","ea7d198005d34c160df26dc560f4dee2c874bc05497369d7b247200c1b9c10ae","974ce3e154a453a4c190696face27b7ca4c8b496b41248967f045655bdf20d35","8096e59065032c0ccf8f0a40ad2c5fda2b667f69f88976088beca9587e4d0b42","613a4aa35726c320a43916ac77b0d23475117669a495f325fc1fbf6eab0302c0","4a509df1002e274856016567dbfb0ef672baf90aeee2670b6ea6a1c11b43a254","88398a6f505edeb2e340da9148a589c0b2e04e127fc1af2de51b6c65efa6020c","8f0feaa30238324242e48e57a2b32b32b6515315bf87dba293372740d21140f3","a07eae34636b33c96325d676ca6eb1231a2232b72361f221052ef9534adaaf5c","15be5bd580a13feacf1da73771a1325d35aea3c76baf8cf9d3bac422a03c86c8","e5de3662a2444b96d8f2645de1a5ae70b128d1166ea2f79c5fa77eed51ed3f0e","65b3df672f065a2c0f136252d800aa25dd624c59457bac7738781f6fede1a5c8","e10e99d90d08fe63c6d6c55493367beeb9c082f5cc1b25c56b9eab3996bbbac0","64abee4c53d0206e0d8815e013fe743374a58b021b673b624badc2ff4803e584","edbb46970bcd4561795898f82524c32893799958a4081d1a04e60ff979488d18","15b2d7aeadaeb10d4f91f781828ae3bc408376aabae35f29b4871d6c92bcbb17","13f8d17ef8dd15e4e07c17851a6819e45e5b8b0de304bc5444409ea11e7da4d2","747f991892aaea1cce03d84547485155c8c68d1ad4d2a9c68d6790f175597833","cf2eed6d3be9763db222d8864e5d0df5cabfe938c5b6d6bdaeb8abde283aa3d5","366ccca92a86e10519bf8557e58a057ca934584a8955b68018f9d1efcf59c459","c1667478c3da485b78ccb78897427dd7fd966f5272c01a6f8f8c3591b5153622","93bb0a6f76b4f71a3c3b1f06cf98631fea946723ddeb0d908552f1cdfc21b818","308b460880711584c5ae52ed165dfa1f4e5c758b21544a7ed79fb931ccc59a83","0b1050482e70284824abb0290b3ed934035cfbf16a3756b6d1154592ea13e07e","2a957584986d115f5fccc18f78bd62cb125587d9f7a257bd4599414efe5e81d6","d8bc670d73597f810f23dd85e9f2971ed5dd225dddad26cd9c4234127cf5c82b","d547f52c1584b087b7c639ded02ae2ed9e728b113a11d50f7fa5bc0aaf80df79","f1c55259e2650ef20c824b38cb5e6a29b58ee87a5f38582986c2b26aeecc0de4","0a448ebd2d953b06016bdb166ec486f89c3f65ac712c802eea518f16d06d0b84","3819ab4322145625a2fe2776d1980a47c4ac569dcdf2fc386e4a1ba5c74d9aaa","9dc8370c9c948e3ca7cf6677e61b8adf1c4bedb0c4c5e30ef9393ef42209bd94",{"version":"72b92b0ba02fa63d1c99ced839da15c20086ecef882d022d7ebc57a61a5df870","signature":"c77f435a3e5555d90facc82643fcc81fa06f93f21ed26b86df3616c16b871234"},{"version":"9a3bc7dde0b931b9fa63289ecc317102b2cea19a7534b2fc9bce26e8271b2e6e","signature":"e7ddf86541e99b872ed178b8a67a706a391b4b405d5db60a110785cdf3831ad3"},{"version":"da0b91fc78e6f7623314f6c21317c86bd85b32ad2f1a7df153a1f0e79bc23ecc","signature":"262eae05d32000339f81a180d238dab018543b6fc4624896bbe77f860b59c102"},{"version":"05cc21b8a57c19d30c044173680613d6c3c68ad319a1b722c4f5d235dd1f6187","signature":"9d7626314e7255d6cde372bdb478ddcff752d5f94cae89d885df89e3eca96a0f"},{"version":"75be15d20045ece8d4b81fa67d0f6ebb2bb55c8b94ab4dfe1926aa2479a38438","signature":"15289cade11103bcad4540a01144301cf8437ab04e368231243e4105c0ed19a3"},{"version":"1a977251cae93fb300bf08f60911dcaa0881409ea7abc0a3012fb1fc1f09f656","signature":"2037b94234ba7e759021806afb29821c1942f50d99f1d6c7a52549c1cfaa4aec"},{"version":"42ae776beb82ce1dc9036f26177319224890815f5b1d10d3f22146a3b0849361","signature":"4eb00ba34e8e52db9f92dad816fcee70cbe26c95d08b3d76a857930c0482f567"},{"version":"1ed17c4fad1553591504ff926905d9d60973766970d6e735457e4cfaa80d53af","signature":"22da8828e0e09346579c5137b36077bb894a24fe9324b8e099f849a113136cf1"},"6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","57ddc4e066366bbe04f497f9afce1c88e088dbd09be0618e072754450de3acbb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","5343f3c160282dfbaab9af350119a0c3b59b7076ef0117bb5995a66e240dab28",{"version":"127bf414ca8ced28c9738b91a935121009d03bbc136668db980bd1ba18976b2b","affectsGlobalScope":true},{"version":"f4c0db3a49cea9babd5d224ba14243a6a6119bf65a65198994033aaea3a60a71","affectsGlobalScope":true},"204dbe6c72467fb14bbe8f06510b11fb541b6ce29580c6e10ebd3bdb2eb0c1f9","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","ce013414484233b24f42c0fcfca48a60bb66ab4e13c82953662305e8f1ee4925","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","eb96a2321f717bccc3e49e104e299152984b927ea4546b559ae631c06565819c","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","e98185f4249720ace1921d59c1ff4612fa5c633a183fc9bf28e2e7b8e3c7fd51","6168414aa12d33d0fcfac4f9870aa81ce27e136db6faf182001a5f3792e1d720","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","13cc3979e1f548aacaa23911f2d6e69c1a2999266c4a1952806de1e9593bdaaa","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","5006668996956580886022c05108e32c742823e1b5652aff7914917233731518","3a9b877f47119ac64aab98c61cae91a304ddeb6e8285ccd824a6aa665ffaeb95","aff59cc6a1f2049bc6ac37cdd5a7d449584f28e7ee5ba240bd903aefdaef6418","77224b06a9d39e8710eca2050acadd9f9e062b068d74aa98e38a6854c272d35e","dcb9aa62f2662b999047096125adfa905cca0c988d7f5130e38ab41afeb96a3f","c757372a092924f5c16eaf11a1475b80b95bb4dae49fe3242d2ad908f97d5abe","017cfb3f6986b6b449fda402cce0f7da77820cb7000d5faf5a8b62587684031a","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","6e41751646fe275206d052a2e5ba87d27dd0df4dcbca134fc3fd2dc4d3d410d2","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","9b5a5e0d06f8646aa2978afb1b5bb5e608649751e9cfc7290e86be42605ba42f","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","5f7614d60b32dc66e5d665eafd10d7619eedca3a20f0e876e9ec73141735e364","e91ad231af87f864b3f07cd0e39b1cf6c133988156f087c1c3ccb0a5491c9115","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","bf0b1297461549a0e32cd57dffb992c63d7c7134fe0f9e15d359abcc88dbd28c","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d"],"options":{"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noEmitOnError":true,"outDir":"./","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[73,100,107],[100,107],[73,100,107,211],[100],[100,214],[73,100,107,211,218,225],[70,73,100,107,219,220],[100,212,220,221,224],[71,100,107],[100,235],[100,105,107,235],[70,73,74,78,84,99,100,107,209,216,218,226,228,229,234],[100,223],[100,222],[73,99,100,107,241,242],[55,100],[58,100],[59,64,100],[60,70,71,78,88,99,100],[60,61,70,78,100],[62,100],[63,64,71,79,100],[64,88,96,100],[65,67,70,78,100],[66,100],[67,68,100],[69,70,100],[70,100],[70,71,72,88,99,100],[70,71,72,88,91,100],[100,104],[73,78,88,99,100],[70,71,73,74,78,88,96,99,100],[73,75,88,96,99,100],[55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106],[70,76,100],[77,99,100],[67,70,78,88,100],[79,100],[80,100],[58,81,100],[82,98,100,104],[83,100],[84,100],[70,85,86,100],[85,87,100,102],[70,88,89,90,91,100],[88,90,100],[88,89,100],[91,100],[92,100],[70,94,95,100],[94,95,100],[64,78,88,96,100],[97,100],[78,98,100],[59,73,84,99,100],[64,100],[88,100,101],[100,102],[100,103],[59,64,70,72,81,88,99,100,102,104],[88,100,105],[100,107,245,247,251,252,253,254,255,256],[88,100,107],[70,100,107,245,247,248,250,257],[70,78,88,99,100,107,244,245,246,248,249,250,257],[88,100,107,247,248],[88,100,107,247,249],[100,107,245,247,248,250,257],[88,100,107,249],[70,78,88,96,100,107,246,248,250],[70,100,107,245,247,248,249,250,257],[70,88,100,107,245,246,247,248,249,250,257],[70,88,100,107,245,247,248,250,257],[73,88,100,107,250],[70,88,96,100,107,108,109,112,113],[100,107,109,110,111],[88,100,107,109],[71,73,75,78,88,99,100,107,213,261,262],[73,88,100,107],[73,100,107,223],[59,71,73,88,100,107,217],[100,265],[70,73,75,88,96,99,100,105,107],[100,113,131],[100,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,149,150],[100,114,126,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147],[100,113,126,131,132,148],[100,116,131],[100,115],[100,117,131],[100,118,131],[100,114],[100,119,131],[100,120,131],[100,115,118],[100,121,131],[100,115,151],[100,122,131],[100,123,131],[100,124,131],[100,125,126,131],[100,126,131],[100,115,125],[100,127,131],[100,128,131],[100,129,131],[100,130,131],[100,131,149],[100,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[100,201,202],[100,151,200],[100,201],[100,200,202,205],[100,201,202,204],[100,151,201],[100,151,200,201,202,203,204,206,207],[100,200,201,202,204],[100,152,157],[100,152,153,154,155,157,159],[100,152,162,164,166,197],[100,152,153,157,158,197],[100,152,157,158,160,161,196,198,199],[100,152,157,158,160,161,163,196,197,198,199],[100,157,196,197],[100,152,153,156,197,198],[100,152,157,158,159,160,167,196,198,199],[100,152,157,158,160,161,196,197,198,199],[100,154,155,157,159,162,163,164,165,166,167,197,198],[100,152,168,196],[100,152,157,197,198],[100,152,153,159],[100,152,158,198],[100,168,173,176,177,192],[100,113,153,177,191,193],[100,192],[100,113],[100,107,178,188,190],[100,113,177,192],[100,177,178,191,192,193,194,195],[100,152,153,160,161,168,176,190,196,199],[100,173,200],[100,174,175],[100,196],[100,153],[100,179,180,181,182,183,184,185,186,187,189],[100,113,153,188],[100,152],[100,173],[100,169,170,171,172],[201,202],[151,200],[201],[200,202],[151,201],[151,200,201,202,203,204,206,207]],"referencedMap":[[209,1],[210,2],[212,3],[213,4],[215,5],[214,4],[211,1],[216,4],[217,4],[226,6],[221,7],[225,8],[227,9],[228,4],[229,4],[230,4],[231,4],[232,4],[233,2],[218,4],[236,10],[234,10],[237,11],[235,12],[238,10],[239,4],[222,13],[223,14],[240,4],[242,4],[243,15],[55,16],[56,16],[58,17],[59,18],[60,19],[61,20],[62,21],[63,22],[64,23],[65,24],[66,25],[67,26],[68,26],[69,27],[70,28],[71,29],[72,30],[57,31],[106,4],[73,32],[74,33],[75,34],[107,35],[76,36],[77,37],[78,38],[79,39],[80,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,45],[87,46],[88,47],[90,48],[89,49],[91,50],[92,51],[93,4],[94,52],[95,53],[96,54],[97,55],[98,56],[99,57],[100,58],[101,59],[102,60],[103,61],[104,62],[105,63],[257,64],[244,65],[251,66],[247,67],[245,68],[248,69],[252,70],[253,66],[250,71],[249,72],[254,73],[255,74],[256,75],[246,76],[258,4],[259,4],[113,77],[112,78],[109,2],[111,79],[110,2],[260,65],[220,4],[219,4],[263,80],[261,81],[224,82],[265,83],[266,84],[262,4],[267,4],[268,85],[264,4],[241,81],[132,86],[151,87],[148,88],[149,89],[114,4],[133,90],[116,91],[134,92],[117,91],[135,93],[118,91],[115,94],[136,95],[119,91],[137,96],[120,97],[138,98],[121,99],[139,100],[122,91],[140,101],[123,91],[141,102],[124,91],[142,103],[125,91],[143,104],[126,105],[144,106],[127,97],[145,107],[128,91],[146,108],[147,109],[130,91],[129,91],[150,110],[131,111],[108,4],[11,4],[13,4],[12,4],[2,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[3,4],[4,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[33,4],[34,4],[35,4],[36,4],[7,4],[37,4],[42,4],[43,4],[38,4],[39,4],[40,4],[41,4],[8,4],[47,4],[44,4],[45,4],[46,4],[48,4],[9,4],[49,4],[50,4],[51,4],[52,4],[53,4],[1,4],[10,4],[54,4],[203,112],[201,113],[202,114],[206,115],[207,116],[204,117],[208,118],[205,119],[152,4],[155,120],[156,121],[198,122],[159,123],[163,4],[162,124],[164,125],[165,126],[167,4],[157,127],[197,128],[166,129],[154,120],[168,130],[161,131],[158,132],[160,133],[199,134],[193,135],[192,136],[177,137],[188,138],[191,139],[195,140],[194,4],[178,4],[196,141],[200,142],[174,143],[175,143],[176,144],[153,2],[181,145],[184,4],[179,4],[180,145],[182,146],[190,147],[183,145],[189,148],[186,4],[185,149],[187,145],[169,150],[171,150],[172,150],[170,150],[173,151]],"exportedModulesMap":[[209,1],[210,2],[212,3],[213,4],[215,5],[214,4],[211,1],[216,4],[217,4],[226,6],[221,7],[225,8],[227,9],[228,4],[229,4],[230,4],[231,4],[232,4],[233,2],[218,4],[236,10],[234,10],[237,11],[235,12],[238,10],[239,4],[222,13],[223,14],[240,4],[242,4],[243,15],[55,16],[56,16],[58,17],[59,18],[60,19],[61,20],[62,21],[63,22],[64,23],[65,24],[66,25],[67,26],[68,26],[69,27],[70,28],[71,29],[72,30],[57,31],[106,4],[73,32],[74,33],[75,34],[107,35],[76,36],[77,37],[78,38],[79,39],[80,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,45],[87,46],[88,47],[90,48],[89,49],[91,50],[92,51],[93,4],[94,52],[95,53],[96,54],[97,55],[98,56],[99,57],[100,58],[101,59],[102,60],[103,61],[104,62],[105,63],[257,64],[244,65],[251,66],[247,67],[245,68],[248,69],[252,70],[253,66],[250,71],[249,72],[254,73],[255,74],[256,75],[246,76],[258,4],[259,4],[113,77],[112,78],[109,2],[111,79],[110,2],[260,65],[220,4],[219,4],[263,80],[261,81],[224,82],[265,83],[266,84],[262,4],[267,4],[268,85],[264,4],[241,81],[132,86],[151,87],[148,88],[149,89],[114,4],[133,90],[116,91],[134,92],[117,91],[135,93],[118,91],[115,94],[136,95],[119,91],[137,96],[120,97],[138,98],[121,99],[139,100],[122,91],[140,101],[123,91],[141,102],[124,91],[142,103],[125,91],[143,104],[126,105],[144,106],[127,97],[145,107],[128,91],[146,108],[147,109],[130,91],[129,91],[150,110],[131,111],[108,4],[11,4],[13,4],[12,4],[2,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[3,4],[4,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[33,4],[34,4],[35,4],[36,4],[7,4],[37,4],[42,4],[43,4],[38,4],[39,4],[40,4],[41,4],[8,4],[47,4],[44,4],[45,4],[46,4],[48,4],[9,4],[49,4],[50,4],[51,4],[52,4],[53,4],[1,4],[10,4],[54,4],[203,152],[201,153],[202,154],[206,155],[207,152],[204,156],[208,157],[205,155],[152,4],[155,120],[156,121],[198,122],[159,123],[163,4],[162,124],[164,125],[165,126],[167,4],[157,127],[197,128],[166,129],[154,120],[168,130],[161,131],[158,132],[160,133],[199,134],[193,135],[192,136],[177,137],[188,138],[191,139],[195,140],[194,4],[178,4],[196,141],[200,142],[174,143],[175,143],[176,144],[153,2],[181,145],[184,4],[179,4],[180,145],[182,146],[190,147],[183,145],[189,148],[186,4],[185,149],[187,145],[169,150],[171,150],[172,150],[170,150],[173,151]],"semanticDiagnosticsPerFile":[209,210,212,213,215,214,211,216,217,226,221,225,227,228,229,230,231,232,233,218,236,234,237,235,238,239,222,223,240,242,243,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,57,106,73,74,75,107,76,77,78,79,80,81,82,83,84,85,86,87,88,90,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,257,244,251,247,245,248,252,253,250,249,254,255,256,246,258,259,113,112,109,111,110,260,220,219,263,261,224,265,266,262,267,268,264,241,132,151,148,149,114,133,116,134,117,135,118,115,136,119,137,120,138,121,139,122,140,123,141,124,142,125,143,126,144,127,145,128,146,147,130,129,150,131,108,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,37,42,43,38,39,40,41,8,47,44,45,46,48,9,49,50,51,52,53,1,10,54,203,201,202,206,207,204,208,205,152,155,156,198,159,163,162,164,165,167,157,197,166,154,168,161,158,160,199,193,192,177,188,191,195,194,178,196,200,174,175,176,153,181,184,179,180,182,190,183,189,186,185,187,169,171,172,170,173],"latestChangedDtsFile":"./index.d.ts"},"version":"4.8.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/database-migrations",
3
- "version": "1.2.1",
3
+ "version": "1.3.0-alpha.2",
4
4
  "scripts": {
5
5
  "test": "echo 'No tests'"
6
6
  },
@@ -8,7 +8,7 @@
8
8
  "main": "dist/src/index.js",
9
9
  "typings": "dist/src/index.d.ts",
10
10
  "dependencies": {
11
- "@contember/database": "^1.2.1",
11
+ "@contember/database": "^1.3.0-alpha.2",
12
12
  "node-pg-migrate": "^5.9.0"
13
13
  },
14
14
  "devDependencies": {
@@ -0,0 +1,27 @@
1
+ import { MigrationsResolver, MigrationsResolverContext } from './MigrationsResolver'
2
+ import { Migration } from './Migration'
3
+
4
+ export class GroupMigrationsResolver<Args> implements MigrationsResolver<Args> {
5
+ constructor(
6
+ private readonly primaryGroup: MigrationsResolver<Args>,
7
+ private readonly groups: Record<string, MigrationsResolver<Args>>,
8
+ ) {
9
+ }
10
+
11
+ resolveMigrations({ runMigrations, createTimeVersionPrefix }: MigrationsResolverContext): Migration<Args>[] {
12
+ const allMigrations: Migration<Args>[] = []
13
+ const primaryMigrations = this.primaryGroup.resolveMigrations({
14
+ runMigrations: runMigrations.filter(it => it.group === null),
15
+ createTimeVersionPrefix,
16
+ })
17
+ allMigrations.push(...primaryMigrations)
18
+ for (const groupName in this.groups) {
19
+ const groupMigrations = this.groups[groupName].resolveMigrations({
20
+ createTimeVersionPrefix,
21
+ runMigrations: runMigrations.filter(it => it.group === groupName),
22
+ }).map(it => new Migration(it.name, it.migration, groupName))
23
+ allMigrations.push(...groupMigrations)
24
+ }
25
+ return allMigrations.sort((a, b) => a.name.localeCompare(b.name))
26
+ }
27
+ }
package/src/Migration.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { MigrationBuilder } from 'node-pg-migrate'
2
2
  import { Connection } from '@contember/database'
3
3
 
4
+ export type MigrationExecutor<Args = unknown> = (builder: MigrationBuilder, args: MigrationArgs<Args>) => Promise<void> | void
5
+
4
6
  export class Migration<Args = unknown> {
5
7
  constructor(
6
8
  public readonly name: string,
7
- public readonly migration: (builder: MigrationBuilder, args: MigrationArgs<Args>) => Promise<void> | void,
9
+ public readonly migration: MigrationExecutor<Args>,
10
+ public readonly group: string | null = null,
8
11
  ) {
9
12
  }
10
13
  }
@@ -14,3 +17,17 @@ export type MigrationArgs<Args> =
14
17
  & {
15
18
  connection: Connection.ConnectionLike
16
19
  }
20
+
21
+
22
+ export interface RunMigration {
23
+ name: string
24
+ group: string | null
25
+ }
26
+
27
+ export class MigrationGroup<Args = unknown> {
28
+ constructor(
29
+ public readonly snapshot: MigrationExecutor<Args>,
30
+ public readonly migrations: Record<string, MigrationExecutor<Args>>,
31
+ ) {
32
+ }
33
+ }
@@ -0,0 +1,9 @@
1
+ import { Migration, RunMigration } from './Migration'
2
+
3
+ export interface MigrationsResolverContext {
4
+ runMigrations: RunMigration[]
5
+ createTimeVersionPrefix: () => string
6
+ }
7
+ export interface MigrationsResolver<Args> {
8
+ resolveMigrations(ctx: MigrationsResolverContext): Migration<Args>[]
9
+ }
@@ -1,11 +1,11 @@
1
1
  import { Connection } from '@contember/database'
2
- import { Migration } from './Migration'
2
+ import { MigrationsResolver } from './MigrationsResolver'
3
3
 
4
4
  export class MigrationsRunner<MigrationArgs> {
5
5
  constructor(
6
6
  private readonly connection: Connection.ConnectionLike,
7
7
  private readonly schema: string,
8
- private readonly migrations: () => Promise<Migration<MigrationArgs>[]>,
8
+ private readonly migrationsResolver: MigrationsResolver<MigrationArgs>,
9
9
  ) {}
10
10
 
11
11
  public async migrate(
@@ -13,7 +13,7 @@ export class MigrationsRunner<MigrationArgs> {
13
13
  migrationArgs: MigrationArgs,
14
14
  ): Promise<{ name: string }[]> {
15
15
  const migrate = (await import('./runner')).default
16
- return await migrate(this.migrations, this.connection, {
16
+ return await migrate(this.migrationsResolver, this.connection, {
17
17
  schema: this.schema,
18
18
  migrationsTable: 'migrations',
19
19
  migrationArgs,
@@ -0,0 +1,34 @@
1
+ import { Migration, MigrationExecutor } from './Migration'
2
+ import { MigrationsResolver, MigrationsResolverContext } from './MigrationsResolver'
3
+ import { checkOrder, timePrefixLength } from './helpers'
4
+
5
+ export class SnapshotMigrationResolver<Args> implements MigrationsResolver<Args> {
6
+ constructor(
7
+ private snapshot: MigrationExecutor<Args>,
8
+ private migrations: Record<string, MigrationExecutor<Args>>,
9
+ private suffix: string = 'snapshot',
10
+ ) {
11
+ }
12
+
13
+ resolveMigrations(
14
+ { runMigrations, createTimeVersionPrefix }: MigrationsResolverContext,
15
+ ): Migration<Args>[] {
16
+ // runMigrations = runMigrations.filter(it => it.group === group)
17
+ if (runMigrations.length === 0 && !process.env.CONTEMBER_MIGRATIONS_NO_SNAPSHOT) {
18
+ const timePrefix = createTimeVersionPrefix()
19
+ return [new Migration<Args>(`${timePrefix}-${this.suffix}`, this.snapshot)]
20
+ }
21
+
22
+ const migrations = Object.entries(this.migrations).map(([version, executor]) => new Migration<Args>(version, executor))
23
+ const resolvedMigrations = runMigrations.length > 0 && runMigrations[0].name.slice(timePrefixLength) === `-${this.suffix}`
24
+ ? [
25
+ new Migration<Args>(runMigrations[0].name, this.snapshot),
26
+ ...migrations.filter(it => it.name > runMigrations[0].name),
27
+ ]
28
+ : migrations
29
+
30
+ checkOrder(runMigrations, resolvedMigrations)
31
+
32
+ return resolvedMigrations
33
+ }
34
+ }
package/src/helpers.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { MigrationBuilder } from 'node-pg-migrate'
2
+ import { Migration, RunMigration } from './Migration'
2
3
 
3
4
  export function createMigrationBuilder(): MigrationBuilder & { getSql: () => string; getSqlSteps: () => string[] } {
4
5
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -18,3 +19,39 @@ const pgEscape = require('node-pg-migrate/dist/utils').escapeValue
18
19
  export function escapeValue(value: any): any {
19
20
  return pgEscape(value)
20
21
  }
22
+
23
+ export const timePrefixLength = 'YYYY-MM-DD-XXXXXX'.length
24
+
25
+
26
+ export const createMigrationVersionPrefixGenerator = () => {
27
+ let inc = 0
28
+ const date = new Date()
29
+ return () => createMigrationVersionTimePrefix(date, inc++)
30
+ }
31
+
32
+ const createMigrationVersionTimePrefix = (date: Date, increment: number) => {
33
+ const now = new Date(date)
34
+ now.setSeconds(now.getSeconds() + increment)
35
+ const year = now.getFullYear()
36
+ const month = (now.getMonth() + 1).toString().padStart(2, '0')
37
+ const day = now.getDate().toString().padStart(2, '0')
38
+ const hours = now.getHours().toString().padStart(2, '0')
39
+ const minutes = now.getMinutes().toString().padStart(2, '0')
40
+ const seconds = now.getSeconds().toString().padStart(2, '0')
41
+
42
+ return `${year}-${month}-${day}-${hours}${minutes}${seconds}`
43
+ }
44
+
45
+ export const checkOrder = (runMigrations: RunMigration[], migrations: Migration<any>[]) => {
46
+ const len = Math.min(runMigrations.length, migrations.length)
47
+ for (let i = 0; i < len; i++) {
48
+ const run = runMigrations[i]
49
+ const migrationName = migrations[i].name
50
+ if (migrationName > run.name) {
51
+ throw new Error(`Previously executed migration ${run} is missing`)
52
+ }
53
+ if (run.name > migrationName) {
54
+ throw new Error(`Not executed migration ${migrationName} is preceding already run migration ${run.name}`)
55
+ }
56
+ }
57
+ }
package/src/index.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './MigrationsRunner'
2
+ export * from './GroupMigrationsResolver'
3
+ export * from './SnapshotMigrationResolver'
2
4
  export * from './helpers'
5
+ export * from './Migration'
6
+ export * from './MigrationsResolver'
3
7
  export { MigrationBuilder, Name } from 'node-pg-migrate'
4
- export { Migration, MigrationArgs } from './Migration'
5
- export { loadMigrations } from './migrationsLoader'
6
8
  export { DatabaseConfig } from '@contember/database'
package/src/runner.ts CHANGED
@@ -26,9 +26,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
26
  SOFTWARE.
27
27
  */
28
28
 
29
- import { createMigrationBuilder } from './helpers'
29
+ import {
30
+ createMigrationBuilder,
31
+ createMigrationVersionPrefixGenerator,
32
+ } from './helpers'
30
33
  import { Connection, withDatabaseAdvisoryLock, wrapIdentifier } from '@contember/database'
31
- import { Migration } from './Migration'
34
+ import { Migration, RunMigration } from './Migration'
35
+ import { MigrationsResolver } from './MigrationsResolver'
32
36
 
33
37
  export type RunnerOption<Args = unknown> = {
34
38
  migrationsTable: string
@@ -54,6 +58,7 @@ const ensureMigrationsTable = async (db: Connection.ConnectionLike, options: Run
54
58
  run_on timestamp NOT NULL
55
59
  )`,
56
60
  )
61
+ await db.query(`ALTER TABLE ${fullTableName} ADD COLUMN IF NOT EXISTS "group" TEXT DEFAULT NULL`)
57
62
  } catch (err) {
58
63
  if (!(err instanceof Error)) {
59
64
  throw err
@@ -64,29 +69,15 @@ const ensureMigrationsTable = async (db: Connection.ConnectionLike, options: Run
64
69
 
65
70
  const getRunMigrations = async (db: Connection.ConnectionLike, options: RunnerOption<unknown>) => {
66
71
  const fullTableName = getMigrationsTableName(options)
67
- return (await db.query<{name: string}>(`SELECT name FROM ${fullTableName} ORDER BY run_on, id`)).rows.map(it => it.name)
72
+ return (await db.query<{name: string; group: string | null}>(`SELECT name, "group" FROM ${fullTableName} ORDER BY run_on, id`)).rows
68
73
  }
69
74
 
70
75
  const getMigrationsToRun = <Args>(options: RunnerOption, runNames: string[], migrations: Migration<Args>[]): Migration<Args>[] => {
71
76
  return migrations.filter(({ name }) => runNames.indexOf(name) < 0)
72
77
  }
73
78
 
74
- const checkOrder = (runNames: string[], migrations: Migration<any>[]) => {
75
- const len = Math.min(runNames.length, migrations.length)
76
- for (let i = 0; i < len; i += 1) {
77
- const runName = runNames[i]
78
- const migrationName = migrations[i].name
79
- if (runName < migrationName) {
80
- throw new Error(`Previously run migration ${runName} is missing`)
81
- }
82
- if (runName !== migrationName) {
83
- throw new Error(`Not run migration ${migrationName} is preceding already run migration ${runName}`)
84
- }
85
- }
86
- }
87
-
88
79
  export default async <Args>(
89
- getMigrations: () => Promise<Migration<Args>[]>,
80
+ migrationsResolver: MigrationsResolver<Args>,
90
81
  connection: Connection.ConnectionLike,
91
82
  options: RunnerOption<Args>,
92
83
  ): Promise<{ name: string }[]> => {
@@ -98,10 +89,13 @@ export default async <Args>(
98
89
  await ensureMigrationsTable(db, options)
99
90
 
100
91
 
101
- const runNames = await getRunMigrations(db, options)
102
- const migrations = await getMigrations()
103
- checkOrder(runNames, migrations)
92
+ const runMigrations = await getRunMigrations(db, options)
93
+ const migrations = await migrationsResolver.resolveMigrations({
94
+ runMigrations,
95
+ createTimeVersionPrefix: createMigrationVersionPrefixGenerator(),
96
+ })
104
97
 
98
+ const runNames = runMigrations.map(it => it.name)
105
99
  const toRun: Migration<Args>[] = getMigrationsToRun(options, runNames, migrations)
106
100
 
107
101
  if (!toRun.length) {
@@ -122,8 +116,8 @@ export default async <Args>(
122
116
  }
123
117
 
124
118
  await trx.query(
125
- `INSERT INTO ${getMigrationsTableName(options)} (name, run_on) VALUES (?, NOW());`,
126
- [migration.name],
119
+ `INSERT INTO ${getMigrationsTableName(options)} (name, run_on, "group") VALUES (?, NOW(), ?);`,
120
+ [migration.name, migration.group],
127
121
  )
128
122
  logger(` Done`)
129
123
  } catch (e) {
package/src/tsconfig.json CHANGED
@@ -4,8 +4,6 @@
4
4
  "outDir": "../dist/src"
5
5
  },
6
6
  "references": [
7
- {
8
- "path": "../../database/src"
9
- }
7
+ { "path": "../../database/src" }
10
8
  ]
11
9
  }
@@ -1,3 +0,0 @@
1
- import { Migration } from './Migration';
2
- export declare const loadMigrations: <Args>(sqlDir: string, additional: Migration<Args>[]) => Promise<Migration<Args>[]>;
3
- //# sourceMappingURL=migrationsLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrationsLoader.d.ts","sourceRoot":"","sources":["../../src/migrationsLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,eAAO,MAAM,cAAc,iBAAwB,MAAM,8DAYxD,CAAA"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.loadMigrations = void 0;
30
- const promises_1 = __importDefault(require("node:fs/promises"));
31
- const node_path_1 = __importStar(require("node:path"));
32
- const Migration_1 = require("./Migration");
33
- const loadMigrations = async (sqlDir, additional) => {
34
- const migrationPromises = (await promises_1.default.readdir(sqlDir))
35
- .filter(it => node_path_1.default.extname(it) === '.sql')
36
- .map(async (it) => {
37
- const migrationContent = await promises_1.default.readFile((0, node_path_1.join)(sqlDir, it), 'utf-8');
38
- return new Migration_1.Migration(node_path_1.default.basename(it, node_path_1.default.extname(it)), builder => builder.sql(migrationContent));
39
- });
40
- const sqlMigrations = await Promise.all(migrationPromises);
41
- return [...additional, ...sqlMigrations]
42
- .sort((a, b) => a.name.localeCompare(b.name));
43
- };
44
- exports.loadMigrations = loadMigrations;
45
- //# sourceMappingURL=migrationsLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrationsLoader.js","sourceRoot":"","sources":["../../src/migrationsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAiC;AACjC,uDAAsC;AACtC,2CAAuC;AAEhC,MAAM,cAAc,GAAG,KAAK,EAAQ,MAAc,EAAE,UAA6B,EAA8B,EAAE;IACvH,MAAM,iBAAiB,GAAG,CAAC,MAAM,kBAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAClD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;SACzC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QACf,MAAM,gBAAgB,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QACrE,OAAO,IAAI,qBAAS,CAAC,mBAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,mBAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;IAEH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAE1D,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;SACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAZY,QAAA,cAAc,kBAY1B"}
@@ -1,17 +0,0 @@
1
- import fs from 'node:fs/promises'
2
- import path, { join } from 'node:path'
3
- import { Migration } from './Migration'
4
-
5
- export const loadMigrations = async <Args>(sqlDir: string, additional: Migration<Args>[]): Promise<Migration<Args>[]> => {
6
- const migrationPromises = (await fs.readdir(sqlDir))
7
- .filter(it => path.extname(it) === '.sql')
8
- .map(async it => {
9
- const migrationContent = await fs.readFile(join(sqlDir, it), 'utf-8')
10
- return new Migration(path.basename(it, path.extname(it)), builder => builder.sql(migrationContent))
11
- })
12
-
13
- const sqlMigrations = await Promise.all(migrationPromises)
14
-
15
- return [...additional, ...sqlMigrations]
16
- .sort((a, b) => a.name.localeCompare(b.name))
17
- }