@c9up/atlas 0.1.18 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -14
- package/db.darwin-arm64.node +0 -0
- package/db.darwin-x64.node +0 -0
- package/db.linux-arm64-gnu.node +0 -0
- package/db.linux-x64-gnu.node +0 -0
- package/db.win32-x64-msvc.node +0 -0
- package/dist/AtlasProvider.d.ts +6 -0
- package/dist/AtlasProvider.d.ts.map +1 -1
- package/dist/AtlasProvider.js +2 -2
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/BaseEntity.d.ts +171 -7
- package/dist/BaseEntity.d.ts.map +1 -1
- package/dist/BaseEntity.js +339 -31
- package/dist/BaseEntity.js.map +1 -1
- package/dist/BaseModel.d.ts +91 -0
- package/dist/BaseModel.d.ts.map +1 -0
- package/dist/BaseModel.js +193 -0
- package/dist/BaseModel.js.map +1 -0
- package/dist/BaseRepository.d.ts +77 -15
- package/dist/BaseRepository.d.ts.map +1 -1
- package/dist/BaseRepository.js +1423 -354
- package/dist/BaseRepository.js.map +1 -1
- package/dist/ModelQuery.d.ts +429 -11
- package/dist/ModelQuery.d.ts.map +1 -1
- package/dist/ModelQuery.js +1733 -145
- package/dist/ModelQuery.js.map +1 -1
- package/dist/Transaction.d.ts +17 -0
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +57 -5
- package/dist/Transaction.js.map +1 -1
- package/dist/adapters/NapiDbAdapter.d.ts +33 -4
- package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
- package/dist/adapters/NapiDbAdapter.js +101 -11
- package/dist/adapters/NapiDbAdapter.js.map +1 -1
- package/dist/console/migrationCommands.d.ts +48 -0
- package/dist/console/migrationCommands.d.ts.map +1 -0
- package/dist/console/migrationCommands.js +220 -0
- package/dist/console/migrationCommands.js.map +1 -0
- package/dist/decorators/entity.d.ts +37 -6
- package/dist/decorators/entity.d.ts.map +1 -1
- package/dist/decorators/entity.js +32 -2
- package/dist/decorators/entity.js.map +1 -1
- package/dist/events.d.ts +64 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +82 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/metadata-keys.d.ts +3 -2
- package/dist/metadata-keys.d.ts.map +1 -1
- package/dist/naming/NamingStrategy.d.ts +7 -0
- package/dist/naming/NamingStrategy.d.ts.map +1 -1
- package/dist/naming/NamingStrategy.js +16 -0
- package/dist/naming/NamingStrategy.js.map +1 -1
- package/dist/schema/Migration.d.ts +26 -3
- package/dist/schema/Migration.d.ts.map +1 -1
- package/dist/schema/Migration.js +33 -24
- package/dist/schema/Migration.js.map +1 -1
- package/dist/schema/MigrationRunner.d.ts +43 -32
- package/dist/schema/MigrationRunner.d.ts.map +1 -1
- package/dist/schema/MigrationRunner.js +211 -26
- package/dist/schema/MigrationRunner.js.map +1 -1
- package/dist/schema/Schema.d.ts +57 -0
- package/dist/schema/Schema.d.ts.map +1 -1
- package/dist/schema/Schema.js +138 -3
- package/dist/schema/Schema.js.map +1 -1
- package/dist/schema/SchemaCheck.d.ts.map +1 -1
- package/dist/schema/SchemaCheck.js +3 -1
- package/dist/schema/SchemaCheck.js.map +1 -1
- package/dist/schema/TableBuilder.d.ts +247 -8
- package/dist/schema/TableBuilder.d.ts.map +1 -1
- package/dist/schema/TableBuilder.js +607 -41
- package/dist/schema/TableBuilder.js.map +1 -1
- package/dist/schema/catalog.d.ts +47 -0
- package/dist/schema/catalog.d.ts.map +1 -0
- package/dist/schema/catalog.js +111 -0
- package/dist/schema/catalog.js.map +1 -0
- package/dist/schema/introspect.js.map +1 -1
- package/dist/schema/types.d.ts +150 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +11 -0
- package/dist/schema/types.js.map +1 -1
- package/dist/services/db.d.ts +6 -0
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +17 -0
- package/dist/services/db.js.map +1 -1
- package/dist/testing/DatabaseCleanup.d.ts +7 -4
- package/dist/testing/DatabaseCleanup.d.ts.map +1 -1
- package/dist/testing/DatabaseCleanup.js +21 -18
- package/dist/testing/DatabaseCleanup.js.map +1 -1
- package/dist/testing/Factory.d.ts +70 -5
- package/dist/testing/Factory.d.ts.map +1 -1
- package/dist/testing/Factory.js +209 -10
- package/dist/testing/Factory.js.map +1 -1
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +4 -1
- package/scripts/guard-publish.mjs +15 -0
- package/src/AtlasProvider.ts +8 -1
- package/src/BaseEntity.ts +449 -40
- package/src/BaseModel.ts +324 -0
- package/src/BaseRepository.ts +1659 -371
- package/src/ModelQuery.ts +2290 -203
- package/src/Transaction.ts +68 -5
- package/src/adapters/NapiDbAdapter.ts +159 -10
- package/src/console/migrationCommands.ts +258 -0
- package/src/decorators/entity.ts +53 -6
- package/src/events.ts +112 -0
- package/src/index.ts +19 -0
- package/src/metadata-keys.ts +3 -2
- package/src/naming/NamingStrategy.ts +23 -0
- package/src/schema/Migration.ts +42 -3
- package/src/schema/MigrationRunner.ts +270 -27
- package/src/schema/Schema.ts +210 -3
- package/src/schema/SchemaCheck.ts +7 -2
- package/src/schema/TableBuilder.ts +735 -41
- package/src/schema/catalog.ts +166 -0
- package/src/schema/introspect.ts +3 -4
- package/src/schema/types.ts +137 -2
- package/src/services/db.ts +28 -0
- package/src/testing/DatabaseCleanup.ts +23 -22
- package/src/testing/Factory.ts +332 -15
|
@@ -38,36 +38,22 @@ export interface MigrationStatus {
|
|
|
38
38
|
*/
|
|
39
39
|
export declare class MigrationRunner {
|
|
40
40
|
#private;
|
|
41
|
-
/**
|
|
42
|
-
* @param db Underlying database adapter.
|
|
43
|
-
* @param options.migrationsDir Directory containing migration files. Defaults to `database/migrations`.
|
|
44
|
-
* @param options.dialect SQL dialect of the adapter. Defaults to `sqlite`.
|
|
45
|
-
* @param options.tableName Custom name for the migrations tracking table.
|
|
46
|
-
* Defaults to `"ream_migrations"`. Must match `/^[A-Za-z_][A-Za-z0-9_]*$/` —
|
|
47
|
-
* throws `AtlasError("MIGRATION_INVALID_TABLE_NAME")` synchronously otherwise.
|
|
48
|
-
*
|
|
49
|
-
* Cleanup coupling: `DatabaseCleanup.truncateAll` (`src/testing/DatabaseCleanup.ts`)
|
|
50
|
-
* skips tables whose name starts with `ream_` (via `LIKE 'ream\_%' ESCAPE '\'`).
|
|
51
|
-
* The default `"ream_migrations"` is therefore auto-protected. Choosing a name
|
|
52
|
-
* without the `ream_` prefix (e.g. `"schema_versions"`) opts the tracking table
|
|
53
|
-
* out of that protection — `truncateAll` will wipe it alongside user tables,
|
|
54
|
-
* forcing a re-`init()` and replay of every migration on next test run.
|
|
55
|
-
*
|
|
56
|
-
* Rename caveat: `init()` emits `CREATE TABLE IF NOT EXISTS <tableName>` —
|
|
57
|
-
* it does NOT auto-migrate from a previous tracking table. A project that
|
|
58
|
-
* has been running with `ream_migrations` and then changes `tableName` to
|
|
59
|
-
* `schema_versions` will get a fresh empty `schema_versions` on next boot,
|
|
60
|
-
* read zero applied migrations, and re-run every past migration (likely
|
|
61
|
-
* crashing on `CREATE TABLE <user-table>` already-exists). To rename
|
|
62
|
-
* safely, copy the history manually before switching:
|
|
63
|
-
*
|
|
64
|
-
* INSERT INTO schema_versions SELECT * FROM ream_migrations;
|
|
65
|
-
* -- (then DROP TABLE ream_migrations once verified)
|
|
66
|
-
*/
|
|
67
41
|
constructor(db: DatabaseAdapter, options?: {
|
|
68
42
|
migrationsDir?: string;
|
|
69
43
|
dialect?: AtlasDialect;
|
|
70
44
|
tableName?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Refuse `rollback`/`reset` when `NODE_ENV === 'production'` (Adonis
|
|
47
|
+
* Lucid `disableRollbacksInProduction`) — a guard against dropping
|
|
48
|
+
* production data by accident. Override per call with `{ force: true }`.
|
|
49
|
+
*/
|
|
50
|
+
disableRollbacksInProduction?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Skip the migration lock (Adonis Lucid `--disable-locks`). The lock is
|
|
53
|
+
* a `<tableName>_lock` table with an `is_locked` flag (Knex mechanism),
|
|
54
|
+
* so it prevents concurrent migrations on every dialect, SQLite too.
|
|
55
|
+
*/
|
|
56
|
+
disableLocks?: boolean;
|
|
71
57
|
});
|
|
72
58
|
/** Ensure the ream_migrations tracking table exists. */
|
|
73
59
|
init(): Promise<void>;
|
|
@@ -76,32 +62,57 @@ export declare class MigrationRunner {
|
|
|
76
62
|
/** Run all pending migrations. */
|
|
77
63
|
migrate(): Promise<string[]>;
|
|
78
64
|
/** Rollback the last batch of migrations. */
|
|
79
|
-
rollback(
|
|
65
|
+
rollback(options?: {
|
|
66
|
+
batch?: number;
|
|
67
|
+
force?: boolean;
|
|
68
|
+
}): Promise<string[]>;
|
|
80
69
|
/**
|
|
81
70
|
* Rollback + re-run a specific number of batches (or all if `steps` omitted).
|
|
82
71
|
* `migrate:refresh` in Lucid parlance.
|
|
83
72
|
*
|
|
84
73
|
* @implements Story 32.11
|
|
85
74
|
*/
|
|
86
|
-
refresh(
|
|
75
|
+
refresh(options?: {
|
|
76
|
+
force?: boolean;
|
|
77
|
+
}): Promise<{
|
|
87
78
|
rolled: string[];
|
|
88
79
|
executed: string[];
|
|
89
80
|
}>;
|
|
90
81
|
/**
|
|
91
|
-
* Drop EVERY table
|
|
92
|
-
*
|
|
82
|
+
* Drop EVERY user table directly (no `down()`), then run every migration from
|
|
83
|
+
* scratch. `migrate:fresh` in Lucid parlance.
|
|
93
84
|
*
|
|
94
|
-
*
|
|
85
|
+
* Unlike {@link refresh} (which rolls back by calling each migration's
|
|
86
|
+
* `down()`), `fresh` wipes the tables outright — so it succeeds even when a
|
|
87
|
+
* `down()` is broken or missing, and it also clears orphan tables no migration
|
|
88
|
+
* tracks. This matches Lucid's `migration:fresh`. Views, types and domains are
|
|
89
|
+
* left intact: Lucid gates those behind opt-in flags (`--drop-views` /
|
|
90
|
+
* `--drop-types` / `--drop-domains`), so tables-only is its default.
|
|
91
|
+
*
|
|
92
|
+
* `rolled` is always empty — fresh drops rather than rolls back.
|
|
95
93
|
*/
|
|
96
94
|
fresh(): Promise<{
|
|
97
95
|
rolled: string[];
|
|
98
96
|
executed: string[];
|
|
99
97
|
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Drop every user table — INCLUDING the migrations tracking table (Lucid's
|
|
100
|
+
* `db:wipe`). `fresh()` calls this and then re-migrates; a caller can use it
|
|
101
|
+
* directly to reset a database to empty.
|
|
102
|
+
*
|
|
103
|
+
* Inter-table foreign keys are handled per dialect: Postgres emits
|
|
104
|
+
* `DROP TABLE … CASCADE`; MySQL and SQLite suspend FK checks for the
|
|
105
|
+
* duration (they don't accept/respect CASCADE on `DROP TABLE`), restored
|
|
106
|
+
* even if a drop throws.
|
|
107
|
+
*/
|
|
108
|
+
wipe(): Promise<void>;
|
|
100
109
|
/**
|
|
101
110
|
* Rollback every applied batch (alias for `migrate:reset`).
|
|
102
111
|
* Returns the list of rolled-back migration names (in rollback order).
|
|
103
112
|
*/
|
|
104
|
-
reset(
|
|
113
|
+
reset(options?: {
|
|
114
|
+
force?: boolean;
|
|
115
|
+
}): Promise<string[]>;
|
|
105
116
|
/**
|
|
106
117
|
* Dry-run: compute the SQL statements that would be emitted by a migrate
|
|
107
118
|
* without executing them. Returns the full list of statements per pending
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AA4C/E,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,qDAAqD;IACrD,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,eAAe;;gBAsC1B,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;;WAIG;QACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC;;;;WAIG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;KACvB;IAqHF,wDAAwD;IAClD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D3B,wCAAwC;IAClC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA6B1C,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA6ElC,6CAA6C;IACvC,QAAQ,CACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAC/C,OAAO,CAAC,MAAM,EAAE,CAAC;IAiJpB;;;;;OAKG;IACG,OAAO,CACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAC/B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAMpD;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAMhE;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;;OAGG;IACG,KAAK,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAajE;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CA2G/D"}
|
|
@@ -9,6 +9,7 @@ import { pathToFileURL } from "node:url";
|
|
|
9
9
|
import { AtlasError } from "../errors.js";
|
|
10
10
|
import { compileStatementNative } from "../query/native.js";
|
|
11
11
|
import { assertPathInsideBase, assertSafeName, pathExists, } from "../utils/safePath.js";
|
|
12
|
+
import { listUserTables, withoutForeignKeys } from "./catalog.js";
|
|
12
13
|
const DEFAULT_TABLE = "ream_migrations";
|
|
13
14
|
const TABLE_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
14
15
|
function validateTrackingTableName(name) {
|
|
@@ -46,7 +47,8 @@ export class MigrationRunner {
|
|
|
46
47
|
* throws `AtlasError("MIGRATION_INVALID_TABLE_NAME")` synchronously otherwise.
|
|
47
48
|
*
|
|
48
49
|
* Cleanup coupling: `DatabaseCleanup.truncateAll` (`src/testing/DatabaseCleanup.ts`)
|
|
49
|
-
* skips tables whose name starts with `ream_` (
|
|
50
|
+
* skips tables whose name starts with `ream_` (filtered in JS by the shared
|
|
51
|
+
* catalog helper, `src/schema/catalog.ts`).
|
|
50
52
|
* The default `"ream_migrations"` is therefore auto-protected. Choosing a name
|
|
51
53
|
* without the `ream_` prefix (e.g. `"schema_versions"`) opts the tracking table
|
|
52
54
|
* out of that protection — `truncateAll` will wipe it alongside user tables,
|
|
@@ -63,6 +65,9 @@ export class MigrationRunner {
|
|
|
63
65
|
* INSERT INTO schema_versions SELECT * FROM ream_migrations;
|
|
64
66
|
* -- (then DROP TABLE ream_migrations once verified)
|
|
65
67
|
*/
|
|
68
|
+
#disableRollbacksInProduction;
|
|
69
|
+
#disableLocks;
|
|
70
|
+
#lockTableName;
|
|
66
71
|
constructor(db, options) {
|
|
67
72
|
this.#db = db;
|
|
68
73
|
this.#migrationsDir = options?.migrationsDir ?? "database/migrations";
|
|
@@ -71,6 +76,94 @@ export class MigrationRunner {
|
|
|
71
76
|
options?.tableName === undefined
|
|
72
77
|
? DEFAULT_TABLE
|
|
73
78
|
: validateTrackingTableName(options.tableName);
|
|
79
|
+
this.#disableRollbacksInProduction =
|
|
80
|
+
options?.disableRollbacksInProduction ?? false;
|
|
81
|
+
this.#disableLocks = options?.disableLocks ?? false;
|
|
82
|
+
this.#lockTableName = `${this.#tableName}_lock`;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Ensure the lock table exists and holds exactly one row. Mirrors the Knex /
|
|
86
|
+
* AdonisJS Lucid migration-lock mechanism: a `<tableName>_lock` table with an
|
|
87
|
+
* `is_locked` flag (NOT a Postgres advisory lock), so it works identically on
|
|
88
|
+
* every dialect, SQLite included.
|
|
89
|
+
*/
|
|
90
|
+
async #ensureLockTable() {
|
|
91
|
+
await runStmt(this.#db, this.#dialect, {
|
|
92
|
+
kind: "createTable",
|
|
93
|
+
table: this.#lockTableName,
|
|
94
|
+
ifNotExists: true,
|
|
95
|
+
columns: [
|
|
96
|
+
{
|
|
97
|
+
name: "id",
|
|
98
|
+
kind: "integer",
|
|
99
|
+
autoIncrement: true,
|
|
100
|
+
nullable: false,
|
|
101
|
+
primary: true,
|
|
102
|
+
unique: false,
|
|
103
|
+
default: null,
|
|
104
|
+
references: null,
|
|
105
|
+
length: null,
|
|
106
|
+
precision: null,
|
|
107
|
+
scale: null,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "is_locked",
|
|
111
|
+
kind: "integer",
|
|
112
|
+
nullable: false,
|
|
113
|
+
primary: false,
|
|
114
|
+
unique: false,
|
|
115
|
+
default: null,
|
|
116
|
+
references: null,
|
|
117
|
+
length: null,
|
|
118
|
+
precision: null,
|
|
119
|
+
scale: null,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
indexes: [],
|
|
123
|
+
});
|
|
124
|
+
// The lock-table name derives from the validated tracking-table name, so
|
|
125
|
+
// it is a safe identifier — no injection surface in these raw statements.
|
|
126
|
+
const rows = await this.#db.query(`SELECT COUNT(*) AS c FROM ${this.#lockTableName}`);
|
|
127
|
+
if (Number(rows[0]?.c ?? 0) === 0) {
|
|
128
|
+
await this.#db.execute(`INSERT INTO ${this.#lockTableName} (is_locked) VALUES (0)`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Acquire the migration lock so two processes cannot migrate concurrently
|
|
133
|
+
* (Adonis Lucid / Knex parity — a lock TABLE, not an advisory lock). Throws
|
|
134
|
+
* `E_MIGRATION_LOCKED` when the lock is already held.
|
|
135
|
+
*/
|
|
136
|
+
async #acquireLock() {
|
|
137
|
+
if (this.#disableLocks)
|
|
138
|
+
return;
|
|
139
|
+
await this.#ensureLockTable();
|
|
140
|
+
const rows = await this.#db.query(`SELECT is_locked FROM ${this.#lockTableName}`);
|
|
141
|
+
const locked = rows[0]?.is_locked;
|
|
142
|
+
if (locked === 1 || locked === true || locked === "1") {
|
|
143
|
+
throw new AtlasError("E_MIGRATION_LOCKED", "Could not acquire the migration lock — another migration is already running.", {
|
|
144
|
+
hint: `Wait for it to finish, clear the ${this.#lockTableName} table if it is stuck, or pass disableLocks.`,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
await this.#db.execute(`UPDATE ${this.#lockTableName} SET is_locked = 1`);
|
|
148
|
+
}
|
|
149
|
+
/** Release the migration lock (clears the `is_locked` flag). */
|
|
150
|
+
async #releaseLock() {
|
|
151
|
+
if (this.#disableLocks)
|
|
152
|
+
return;
|
|
153
|
+
await this.#db.execute(`UPDATE ${this.#lockTableName} SET is_locked = 0`);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Throw when rollbacks are disabled in production and this is a production
|
|
157
|
+
* run, unless the caller explicitly forces it.
|
|
158
|
+
*/
|
|
159
|
+
#assertRollbackAllowed(force) {
|
|
160
|
+
if (this.#disableRollbacksInProduction &&
|
|
161
|
+
!force &&
|
|
162
|
+
process.env.NODE_ENV === "production") {
|
|
163
|
+
throw new AtlasError("E_ROLLBACK_DISABLED_IN_PRODUCTION", "Rollbacks are disabled in production. Pass { force: true } to override.", {
|
|
164
|
+
hint: "This guard exists to prevent dropping production data by accident.",
|
|
165
|
+
});
|
|
166
|
+
}
|
|
74
167
|
}
|
|
75
168
|
/** Ensure the ream_migrations tracking table exists. */
|
|
76
169
|
async init() {
|
|
@@ -137,6 +230,10 @@ export class MigrationRunner {
|
|
|
137
230
|
}
|
|
138
231
|
/** Get the status of all migrations. */
|
|
139
232
|
async status() {
|
|
233
|
+
// Ensure the tracking table exists first — on a never-migrated database
|
|
234
|
+
// status must report every migration as pending, not throw on a missing
|
|
235
|
+
// `ream_migrations` table (AdonisJS/Lucid `migration:status` parity).
|
|
236
|
+
await this.init();
|
|
140
237
|
const applied = await queryStmt(this.#db, this.#dialect, {
|
|
141
238
|
kind: "select",
|
|
142
239
|
table: this.#tableName,
|
|
@@ -161,6 +258,15 @@ export class MigrationRunner {
|
|
|
161
258
|
}
|
|
162
259
|
/** Run all pending migrations. */
|
|
163
260
|
async migrate() {
|
|
261
|
+
await this.#acquireLock();
|
|
262
|
+
try {
|
|
263
|
+
return await this.#migrateLocked();
|
|
264
|
+
}
|
|
265
|
+
finally {
|
|
266
|
+
await this.#releaseLock();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
async #migrateLocked() {
|
|
164
270
|
await this.init();
|
|
165
271
|
const applied = await queryStmt(this.#db, this.#dialect, {
|
|
166
272
|
kind: "select",
|
|
@@ -187,7 +293,8 @@ export class MigrationRunner {
|
|
|
187
293
|
for (const name of pending) {
|
|
188
294
|
this.#assertSafeName(name);
|
|
189
295
|
const migration = await this.#loadMigration(name);
|
|
190
|
-
const statements = await migration.getUpSQL();
|
|
296
|
+
const statements = await migration.getUpSQL(this.#db);
|
|
297
|
+
const deferred = migration.consumeDeferred();
|
|
191
298
|
// Compile the ream_migrations INSERT so we can include it in the same
|
|
192
299
|
// transaction as the migration's own DDL/DML — either everything
|
|
193
300
|
// commits or nothing does.
|
|
@@ -203,27 +310,42 @@ export class MigrationRunner {
|
|
|
203
310
|
if (insertSql === undefined) {
|
|
204
311
|
throw new AtlasError("MIGRATION_COMPILE_EMPTY", `compileStatementNative returned no statements for migration insert of '${name}'`);
|
|
205
312
|
}
|
|
206
|
-
|
|
207
|
-
...statements.map((sql) => ({ sql, params: [] })),
|
|
208
|
-
{ sql: insertSql, params: insertCompiled.params },
|
|
209
|
-
];
|
|
210
|
-
await this.#runAtomic(batchStatements, name);
|
|
313
|
+
await this.#runStep(statements, deferred, { sql: insertSql, params: insertCompiled.params }, name);
|
|
211
314
|
executed.push(name);
|
|
212
315
|
}
|
|
213
316
|
return executed;
|
|
214
317
|
}
|
|
215
318
|
/** Rollback the last batch of migrations. */
|
|
216
|
-
async rollback() {
|
|
319
|
+
async rollback(options = {}) {
|
|
320
|
+
this.#assertRollbackAllowed(options.force ?? false);
|
|
321
|
+
await this.#acquireLock();
|
|
322
|
+
try {
|
|
323
|
+
return await this.#rollbackLocked(options);
|
|
324
|
+
}
|
|
325
|
+
finally {
|
|
326
|
+
await this.#releaseLock();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
async #rollbackLocked(options) {
|
|
217
330
|
await this.init();
|
|
218
|
-
const
|
|
219
|
-
if (
|
|
331
|
+
const current = await this.#currentBatch();
|
|
332
|
+
if (current === 0) {
|
|
333
|
+
return [];
|
|
334
|
+
}
|
|
335
|
+
// Default: roll back only the latest batch. With `batch: N`, roll back
|
|
336
|
+
// every migration applied AFTER batch N (Lucid's `--batch` — a target to
|
|
337
|
+
// return to, not a count). `batch: 0` rolls the whole history back.
|
|
338
|
+
const target = options.batch ?? current - 1;
|
|
339
|
+
if (target >= current) {
|
|
220
340
|
return [];
|
|
221
341
|
}
|
|
222
342
|
const toRollback = await queryStmt(this.#db, this.#dialect, {
|
|
223
343
|
kind: "select",
|
|
224
344
|
table: this.#tableName,
|
|
225
345
|
select: ["name"],
|
|
226
|
-
wheres: [
|
|
346
|
+
wheres: [
|
|
347
|
+
{ column: "batch", operator: ">", value: target, type: "and" },
|
|
348
|
+
],
|
|
227
349
|
// Reverse INSERTION order (auto-increment `id`), not name order — a
|
|
228
350
|
// date- or hash-prefixed naming scheme would otherwise roll back in
|
|
229
351
|
// the wrong sequence. `id DESC` is always the inverse of application.
|
|
@@ -240,7 +362,8 @@ export class MigrationRunner {
|
|
|
240
362
|
for (const record of toRollback) {
|
|
241
363
|
this.#assertSafeName(record.name);
|
|
242
364
|
const migration = await this.#loadMigration(record.name);
|
|
243
|
-
const statements = await migration.getDownSQL();
|
|
365
|
+
const statements = await migration.getDownSQL(this.#db);
|
|
366
|
+
const deferred = migration.consumeDeferred();
|
|
244
367
|
const deleteCompiled = compileStatementNative({
|
|
245
368
|
kind: "delete",
|
|
246
369
|
table: this.#tableName,
|
|
@@ -252,11 +375,7 @@ export class MigrationRunner {
|
|
|
252
375
|
if (deleteSql === undefined) {
|
|
253
376
|
throw new AtlasError("MIGRATION_COMPILE_EMPTY", `compileStatementNative returned no statements for migration delete of '${record.name}'`);
|
|
254
377
|
}
|
|
255
|
-
|
|
256
|
-
...statements.map((sql) => ({ sql, params: [] })),
|
|
257
|
-
{ sql: deleteSql, params: deleteCompiled.params },
|
|
258
|
-
];
|
|
259
|
-
await this.#runAtomic(batchStatements, record.name);
|
|
378
|
+
await this.#runStep(statements, deferred, { sql: deleteSql, params: deleteCompiled.params }, record.name);
|
|
260
379
|
rolled.push(record.name);
|
|
261
380
|
}
|
|
262
381
|
return rolled;
|
|
@@ -266,6 +385,31 @@ export class MigrationRunner {
|
|
|
266
385
|
* it; otherwise fall back to sequential execute (best-effort). Adapters that
|
|
267
386
|
* lack transaction support get a warning so integrators notice the risk.
|
|
268
387
|
*/
|
|
388
|
+
/**
|
|
389
|
+
* Run one migration step: its schema statements plus the bookkeeping record
|
|
390
|
+
* write (INSERT for migrate, DELETE for rollback).
|
|
391
|
+
*
|
|
392
|
+
* With no deferred callbacks this is the strong atomic path — schema + record
|
|
393
|
+
* commit together. With `this.defer()` callbacks, the schema runs atomically
|
|
394
|
+
* first, then the deferred callbacks, then the record write — so a failing
|
|
395
|
+
* deferred callback leaves the migration UN-recorded (re-runnable), at the
|
|
396
|
+
* cost of the schema no longer sharing a transaction with the record.
|
|
397
|
+
*/
|
|
398
|
+
async #runStep(statements, deferred, recordStmt, migrationName) {
|
|
399
|
+
const schemaBatch = statements.map((sql) => ({
|
|
400
|
+
sql,
|
|
401
|
+
params: [],
|
|
402
|
+
}));
|
|
403
|
+
if (deferred.length === 0) {
|
|
404
|
+
await this.#runAtomic([...schemaBatch, recordStmt], migrationName);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
await this.#runAtomic(schemaBatch, migrationName);
|
|
408
|
+
for (const callback of deferred) {
|
|
409
|
+
await callback(this.#db);
|
|
410
|
+
}
|
|
411
|
+
await this.#db.execute(recordStmt.sql, recordStmt.params);
|
|
412
|
+
}
|
|
269
413
|
async #runAtomic(batch, migrationName) {
|
|
270
414
|
if (this.#db.runInTransaction) {
|
|
271
415
|
await this.#db.runInTransaction(batch);
|
|
@@ -284,30 +428,71 @@ export class MigrationRunner {
|
|
|
284
428
|
*
|
|
285
429
|
* @implements Story 32.11
|
|
286
430
|
*/
|
|
287
|
-
async refresh() {
|
|
288
|
-
const rolled = await this.reset();
|
|
431
|
+
async refresh(options = {}) {
|
|
432
|
+
const rolled = await this.reset(options);
|
|
289
433
|
const executed = await this.migrate();
|
|
290
434
|
return { rolled, executed };
|
|
291
435
|
}
|
|
292
436
|
/**
|
|
293
|
-
* Drop EVERY table
|
|
294
|
-
*
|
|
437
|
+
* Drop EVERY user table directly (no `down()`), then run every migration from
|
|
438
|
+
* scratch. `migrate:fresh` in Lucid parlance.
|
|
295
439
|
*
|
|
296
|
-
*
|
|
440
|
+
* Unlike {@link refresh} (which rolls back by calling each migration's
|
|
441
|
+
* `down()`), `fresh` wipes the tables outright — so it succeeds even when a
|
|
442
|
+
* `down()` is broken or missing, and it also clears orphan tables no migration
|
|
443
|
+
* tracks. This matches Lucid's `migration:fresh`. Views, types and domains are
|
|
444
|
+
* left intact: Lucid gates those behind opt-in flags (`--drop-views` /
|
|
445
|
+
* `--drop-types` / `--drop-domains`), so tables-only is its default.
|
|
446
|
+
*
|
|
447
|
+
* `rolled` is always empty — fresh drops rather than rolls back.
|
|
297
448
|
*/
|
|
298
449
|
async fresh() {
|
|
299
|
-
|
|
450
|
+
await this.#dropAllTables();
|
|
451
|
+
const executed = await this.migrate();
|
|
452
|
+
return { rolled: [], executed };
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Drop every user table — INCLUDING the migrations tracking table (Lucid's
|
|
456
|
+
* `db:wipe`). `fresh()` calls this and then re-migrates; a caller can use it
|
|
457
|
+
* directly to reset a database to empty.
|
|
458
|
+
*
|
|
459
|
+
* Inter-table foreign keys are handled per dialect: Postgres emits
|
|
460
|
+
* `DROP TABLE … CASCADE`; MySQL and SQLite suspend FK checks for the
|
|
461
|
+
* duration (they don't accept/respect CASCADE on `DROP TABLE`), restored
|
|
462
|
+
* even if a drop throws.
|
|
463
|
+
*/
|
|
464
|
+
async wipe() {
|
|
465
|
+
return this.#dropAllTables();
|
|
466
|
+
}
|
|
467
|
+
async #dropAllTables() {
|
|
468
|
+
// Include the tracking table: wipe/fresh reset to fully empty, and
|
|
469
|
+
// fresh() re-creates it via init() on the next migrate().
|
|
470
|
+
const tables = await listUserTables(this.#db, this.#dialect, {
|
|
471
|
+
includeFrameworkTables: true,
|
|
472
|
+
});
|
|
473
|
+
if (tables.length === 0)
|
|
474
|
+
return;
|
|
475
|
+
const isPg = this.#dialect === "postgres";
|
|
476
|
+
await withoutForeignKeys(this.#db, this.#dialect, async () => {
|
|
477
|
+
for (const table of tables) {
|
|
478
|
+
const compiled = compileStatementNative({ kind: "dropTable", table, ifExists: true, cascade: isPg }, this.#dialect);
|
|
479
|
+
for (const sql of compiled.statements) {
|
|
480
|
+
await this.#db.execute(sql, compiled.params);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
});
|
|
300
484
|
}
|
|
301
485
|
/**
|
|
302
486
|
* Rollback every applied batch (alias for `migrate:reset`).
|
|
303
487
|
* Returns the list of rolled-back migration names (in rollback order).
|
|
304
488
|
*/
|
|
305
|
-
async reset() {
|
|
489
|
+
async reset(options = {}) {
|
|
490
|
+
this.#assertRollbackAllowed(options.force ?? false);
|
|
306
491
|
await this.init();
|
|
307
492
|
const all = [];
|
|
308
493
|
// Roll back batches one by one until nothing remains.
|
|
309
494
|
while ((await this.#currentBatch()) > 0) {
|
|
310
|
-
const rolled = await this.rollback();
|
|
495
|
+
const rolled = await this.rollback({ force: true });
|
|
311
496
|
if (rolled.length === 0)
|
|
312
497
|
break;
|
|
313
498
|
all.push(...rolled);
|
|
@@ -341,7 +526,7 @@ export class MigrationRunner {
|
|
|
341
526
|
for (const name of files) {
|
|
342
527
|
this.#assertSafeName(name);
|
|
343
528
|
const migration = await this.#loadMigration(name);
|
|
344
|
-
const statements = await migration.getUpSQL();
|
|
529
|
+
const statements = await migration.getUpSQL(this.#db);
|
|
345
530
|
result.push({ name, sql: statements });
|
|
346
531
|
}
|
|
347
532
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/Schema.d.ts
CHANGED
|
@@ -7,14 +7,71 @@
|
|
|
7
7
|
* @implements FR34
|
|
8
8
|
*/
|
|
9
9
|
import { type AtlasDialect } from "../query/native.js";
|
|
10
|
+
import { type CatalogConnection } from "./catalog.js";
|
|
10
11
|
import { TableBuilder } from "./TableBuilder.js";
|
|
11
12
|
export declare class Schema {
|
|
12
13
|
#private;
|
|
13
14
|
constructor(dialect?: AtlasDialect);
|
|
15
|
+
/**
|
|
16
|
+
* Qualify subsequent table names with `name` (Adonis Lucid/Knex
|
|
17
|
+
* `withSchema`), e.g. `withSchema('reporting').createTable('t', …)` targets
|
|
18
|
+
* `"reporting"."t"`. Applies to every table-taking method until changed; the
|
|
19
|
+
* Rust compiler quotes each dotted segment. Chainable.
|
|
20
|
+
*/
|
|
21
|
+
withSchema(name: string): this;
|
|
22
|
+
/**
|
|
23
|
+
* Attach a live connection so the async introspection helpers
|
|
24
|
+
* ({@link hasTable}/{@link hasColumn}) can query the catalog. The migration
|
|
25
|
+
* runner calls this before running a migration's `up`/`down`.
|
|
26
|
+
*/
|
|
27
|
+
bindConnection(connection: CatalogConnection): void;
|
|
28
|
+
/**
|
|
29
|
+
* Does this table exist right now? (Adonis Lucid/Knex `hasTable`.) Runs a
|
|
30
|
+
* live catalog query, so it reflects migrations already applied — but NOT
|
|
31
|
+
* statements this same migration has only buffered (they run after `up`).
|
|
32
|
+
* Requires a bound connection (present inside a migration).
|
|
33
|
+
*/
|
|
34
|
+
hasTable(name: string): Promise<boolean>;
|
|
35
|
+
/** Does this column exist on this table right now? (Adonis Lucid/Knex `hasColumn`.) */
|
|
36
|
+
hasColumn(table: string, column: string): Promise<boolean>;
|
|
14
37
|
createTable(name: string, callback: (table: TableBuilder) => void): this;
|
|
38
|
+
/** `CREATE TABLE IF NOT EXISTS` (Lucid/Knex `createTableIfNotExists`). */
|
|
39
|
+
createTableIfNotExists(name: string, callback: (table: TableBuilder) => void): this;
|
|
40
|
+
/**
|
|
41
|
+
* `ALTER TABLE` (Lucid/Knex `alterTable`, also spelled `table()`). Inside
|
|
42
|
+
* the callback a column-type method adds a column, `.alter()` changes one,
|
|
43
|
+
* and `dropColumn` / `renameColumn` / `setNullable` / `dropNullable` do
|
|
44
|
+
* what they say. Operations compile in call order.
|
|
45
|
+
*/
|
|
46
|
+
alterTable(name: string, callback: (table: TableBuilder) => void): this;
|
|
47
|
+
/** Alias of {@link alterTable} (Lucid/Knex `table()`). */
|
|
48
|
+
table(name: string, callback: (table: TableBuilder) => void): this;
|
|
49
|
+
/** `ALTER TABLE old RENAME TO new` (Lucid/Knex `renameTable`). */
|
|
50
|
+
renameTable(from: string, to: string): this;
|
|
15
51
|
dropTable(name: string): this;
|
|
16
52
|
createIndex(table: string, columns: string | string[], name?: string, unique?: boolean): this;
|
|
17
53
|
dropIndex(name: string): this;
|
|
54
|
+
/**
|
|
55
|
+
* `CREATE VIEW name [(cols)] AS <select>` (Lucid/Knex `createView`). The
|
|
56
|
+
* `select` is raw, developer-authored SQL — same trust level as {@link raw} —
|
|
57
|
+
* embedded verbatim; the view name and column list are validated + quoted by
|
|
58
|
+
* the Rust compiler.
|
|
59
|
+
*/
|
|
60
|
+
createView(name: string, select: string, options?: {
|
|
61
|
+
columns?: string[];
|
|
62
|
+
}): this;
|
|
63
|
+
/** `CREATE OR REPLACE VIEW` (Lucid/Knex `createViewOrReplace`). Rejected on SQLite. */
|
|
64
|
+
createViewOrReplace(name: string, select: string, options?: {
|
|
65
|
+
columns?: string[];
|
|
66
|
+
}): this;
|
|
67
|
+
/** `CREATE MATERIALIZED VIEW` (Lucid/Knex `createMaterializedView`). Postgres-only. */
|
|
68
|
+
createMaterializedView(name: string, select: string, options?: {
|
|
69
|
+
columns?: string[];
|
|
70
|
+
}): this;
|
|
71
|
+
/** `DROP VIEW IF EXISTS name` (Lucid/Knex `dropView`/`dropViewIfExists`). */
|
|
72
|
+
dropView(name: string): this;
|
|
73
|
+
/** `DROP MATERIALIZED VIEW IF EXISTS name` (Lucid/Knex). Postgres-only. */
|
|
74
|
+
dropMaterializedView(name: string): this;
|
|
18
75
|
raw(sql: string): this;
|
|
19
76
|
reset(): void;
|
|
20
77
|
toSQL(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACN,KAAK,YAAY,EAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,MAAM;;
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACN,KAAK,YAAY,EAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,KAAK,iBAAiB,EAGtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,MAAM;;gBAMN,OAAO,GAAE,YAAgC;IAIrD;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU9B;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAInD;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,uFAAuF;IACjF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBhE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAOxE,0EAA0E;IAC1E,sBAAsB,CACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACrC,IAAI;IASP;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAiBvE,0DAA0D;IAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIlE,kEAAkE;IAClE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAa3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS7B,WAAW,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,UAAQ,GACZ,IAAI;IAiBP,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS7B;;;;;OAKG;IACH,UAAU,CACT,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAClC,IAAI;IAIP,uFAAuF;IACvF,mBAAmB,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAClC,IAAI;IAIP,uFAAuF;IACvF,sBAAsB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAClC,IAAI;IAIP,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS5B,2EAA2E;IAC3E,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAsCxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtB,KAAK,IAAI,IAAI;IAIb,KAAK,IAAI,MAAM,EAAE;CAGjB"}
|