@c9up/eon 0.1.0 → 0.2.1

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 (91) hide show
  1. package/README.md +5 -0
  2. package/dist/EonProvider.d.ts +6 -0
  3. package/dist/EonProvider.d.ts.map +1 -1
  4. package/dist/EonProvider.js +43 -0
  5. package/dist/EonProvider.js.map +1 -1
  6. package/dist/configure.d.ts +17 -0
  7. package/dist/configure.d.ts.map +1 -0
  8. package/dist/configure.js +19 -0
  9. package/dist/configure.js.map +1 -0
  10. package/dist/connection/config.d.ts +8 -0
  11. package/dist/connection/config.d.ts.map +1 -1
  12. package/dist/connection/config.js.map +1 -1
  13. package/dist/connection/websocket.d.ts +13 -0
  14. package/dist/connection/websocket.d.ts.map +1 -1
  15. package/dist/connection/websocket.js +16 -1
  16. package/dist/connection/websocket.js.map +1 -1
  17. package/dist/health.d.ts +50 -0
  18. package/dist/health.d.ts.map +1 -0
  19. package/dist/health.js +73 -0
  20. package/dist/health.js.map +1 -0
  21. package/dist/index.d.ts +4 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +4 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/query/TimeSeriesQuery.d.ts +12 -1
  26. package/dist/query/TimeSeriesQuery.d.ts.map +1 -1
  27. package/dist/query/TimeSeriesQuery.js +12 -1
  28. package/dist/query/TimeSeriesQuery.js.map +1 -1
  29. package/dist/schema/EonMigrationRunner.d.ts +35 -3
  30. package/dist/schema/EonMigrationRunner.d.ts.map +1 -1
  31. package/dist/schema/EonMigrationRunner.js +169 -7
  32. package/dist/schema/EonMigrationRunner.js.map +1 -1
  33. package/dist/schema/index.d.ts +15 -0
  34. package/dist/schema/index.d.ts.map +1 -0
  35. package/dist/schema/index.js +15 -0
  36. package/dist/schema/index.js.map +1 -0
  37. package/dist/testing/FakeEonConnection.d.ts +1 -1
  38. package/dist/testing/FakeEonConnection.d.ts.map +1 -1
  39. package/dist/testing/FakeEonConnection.js +27 -3
  40. package/dist/testing/FakeEonConnection.js.map +1 -1
  41. package/dist/testing/FakeEonConsumer.d.ts +28 -0
  42. package/dist/testing/FakeEonConsumer.d.ts.map +1 -0
  43. package/dist/testing/FakeEonConsumer.js +66 -0
  44. package/dist/testing/FakeEonConsumer.js.map +1 -0
  45. package/dist/testing/cleanup.d.ts +50 -0
  46. package/dist/testing/cleanup.d.ts.map +1 -0
  47. package/dist/testing/cleanup.js +88 -0
  48. package/dist/testing/cleanup.js.map +1 -0
  49. package/dist/testing/index.d.ts +6 -6
  50. package/dist/testing/index.d.ts.map +1 -1
  51. package/dist/testing/index.js +6 -14
  52. package/dist/testing/index.js.map +1 -1
  53. package/dist/testing/vitest.d.ts +7 -0
  54. package/dist/testing/vitest.d.ts.map +1 -0
  55. package/dist/testing/vitest.js +28 -0
  56. package/dist/testing/vitest.js.map +1 -0
  57. package/dist/tmq/EonConsumer.d.ts +99 -0
  58. package/dist/tmq/EonConsumer.d.ts.map +1 -0
  59. package/dist/tmq/EonConsumer.js +27 -0
  60. package/dist/tmq/EonConsumer.js.map +1 -0
  61. package/dist/tmq/index.d.ts +4 -0
  62. package/dist/tmq/index.d.ts.map +1 -0
  63. package/dist/tmq/index.js +4 -0
  64. package/dist/tmq/index.js.map +1 -0
  65. package/dist/tmq/websocket.d.ts +11 -0
  66. package/dist/tmq/websocket.d.ts.map +1 -0
  67. package/dist/tmq/websocket.js +189 -0
  68. package/dist/tmq/websocket.js.map +1 -0
  69. package/index.darwin-arm64.node +0 -0
  70. package/index.darwin-x64.node +0 -0
  71. package/index.linux-arm64-gnu.node +0 -0
  72. package/index.linux-x64-gnu.node +0 -0
  73. package/index.win32-x64-msvc.node +0 -0
  74. package/package.json +32 -3
  75. package/src/EonProvider.ts +61 -0
  76. package/src/configure.ts +38 -0
  77. package/src/connection/config.ts +8 -0
  78. package/src/connection/websocket.ts +17 -0
  79. package/src/health.ts +99 -0
  80. package/src/index.ts +17 -1
  81. package/src/query/TimeSeriesQuery.ts +12 -1
  82. package/src/schema/EonMigrationRunner.ts +205 -9
  83. package/src/schema/index.ts +28 -0
  84. package/src/testing/FakeEonConnection.ts +37 -7
  85. package/src/testing/FakeEonConsumer.ts +93 -0
  86. package/src/testing/cleanup.ts +120 -0
  87. package/src/testing/index.ts +11 -14
  88. package/src/testing/vitest.ts +27 -0
  89. package/src/tmq/EonConsumer.ts +111 -0
  90. package/src/tmq/index.ts +10 -0
  91. package/src/tmq/websocket.ts +217 -0
@@ -4,7 +4,7 @@
4
4
  * sorted-file discovery, a `ream_`-prefixed tracking table, batch-based
5
5
  * rollback, `init/status/migrate/rollback/reset/refresh/fresh/dryRun`.
6
6
  *
7
- * ── TWO named TDengine deviations from atlas (AC6) ──────────────────────────
7
+ * ── THREE named TDengine deviations from atlas (AC6) ────────────────────────
8
8
  *
9
9
  * 1. **No transactions / no engine rollback.** TDengine DDL is non-transactional
10
10
  * — a batch CANNOT be applied atomically. The runner executes statements
@@ -19,10 +19,22 @@
19
19
  * unique timestamp key (TDengine only allows a `DELETE` predicate on the
20
20
  * primary timestamp column).
21
21
  *
22
+ * 3. **The migration lock is a table's EXISTENCE, not a row's value.** atlas
23
+ * (Lucid/Knex parity) serialises concurrent runners with a conditional
24
+ * `UPDATE … WHERE is_locked = 0`; TDengine has no conditional UPDATE, so
25
+ * that exact shape is impossible. The equivalent guarantee comes from a
26
+ * different primitive: `CREATE TABLE` **without** `IF NOT EXISTS` is an
27
+ * atomic compare-and-swap — the mnode serialises metadata, so exactly ONE
28
+ * concurrent creator succeeds and every other gets code 1539. Creating the
29
+ * lock table IS taking the lock; dropping it is releasing it. Verified
30
+ * against a live TDengine 3.3.5.0: 12 racing connections, 1 winner, 11 ×
31
+ * 1539, three rounds. The API stays atlas's (`disableLocks`, `forceUnlock`,
32
+ * `E_..._LOCKED`) — only the primitive underneath differs.
33
+ *
22
34
  * Agnostic leaf: takes the connection structurally and a plain directory path —
23
35
  * no `@c9up/ream` import, no app helper (`project_package_extraction`).
24
36
  */
25
- import type { EonConnection } from "../connection/EonConnection.js";
37
+ import { type EonConnection } from "../connection/EonConnection.js";
26
38
  export interface EonMigrationOptions {
27
39
  /** Directory holding migration files. Default `database/eon-migrations`. */
28
40
  migrationsDir?: string;
@@ -32,11 +44,24 @@ export interface EonMigrationOptions {
32
44
  * table (`feedback_underscore_policy`) — keep it so cleanup helpers skip it.
33
45
  */
34
46
  tableName?: string;
47
+ /**
48
+ * Skip the migration lock (atlas / Lucid `disableLocks` parity). Only for a
49
+ * context where concurrent runs are impossible by construction — a single
50
+ * test process, or a one-off local run.
51
+ */
52
+ disableLocks?: boolean;
35
53
  }
36
54
  export type MigrationState = "applied" | "pending";
37
55
  export interface MigrationStatus {
38
56
  name: string;
39
- state: MigrationState;
57
+ /**
58
+ * Whether the migration has run.
59
+ *
60
+ * Spelled `status`, not `state`: it is what Lucid's `MigrationListNode`
61
+ * calls it and what atlas already called it, and ream's migration registry
62
+ * needs one shape across every store.
63
+ */
64
+ status: MigrationState;
40
65
  batch?: number;
41
66
  }
42
67
  export declare class EonMigrationRunner {
@@ -67,5 +92,12 @@ export declare class EonMigrationRunner {
67
92
  name: string;
68
93
  sql: string[];
69
94
  }>>;
95
+ /**
96
+ * Force-clear a stuck migration lock (atlas `forceUnlock`, Lucid
97
+ * `migration:unlock`). A process killed mid-migrate leaves the lock table
98
+ * behind with no owner alive to drop it, and every later run would fail to
99
+ * acquire. Returns `true` if a held lock was cleared.
100
+ */
101
+ forceUnlock(): Promise<boolean>;
70
102
  }
71
103
  //# sourceMappingURL=EonMigrationRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EonMigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/EonMigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAUpE,MAAM,WAAW,mBAAmB;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AASD,qBAAa,kBAAkB;;gBAKlB,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,mBAAwB;IAYlE,gFAAgF;IAC1E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3B,qEAAqE;IAC/D,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAa1C,oEAAoE;IAC9D,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BlC,kFAAkF;IAC5E,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BnC,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYhC,mEAAmE;IAC7D,OAAO,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAMlE,wDAAwD;IACxD,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAI1D,+EAA+E;IACzE,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAyI/D"}
1
+ {"version":3,"file":"EonMigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/EonMigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,gCAAgC,CAAC;AAcxC,MAAM,WAAW,mBAAmB;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AASD,qBAAa,kBAAkB;;gBASlB,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,mBAAwB;IAgBlE,gFAAgF;IAC1E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3B,qEAAqE;IAC/D,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAa1C,oEAAoE;IAC9D,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BlC,kFAAkF;IAC5E,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BnC,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBhC,mEAAmE;IAC7D,OAAO,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAUlE,wDAAwD;IACxD,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAI1D,+EAA+E;IACzE,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAkJ/D;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CA0HrC"}
@@ -4,7 +4,7 @@
4
4
  * sorted-file discovery, a `ream_`-prefixed tracking table, batch-based
5
5
  * rollback, `init/status/migrate/rollback/reset/refresh/fresh/dryRun`.
6
6
  *
7
- * ── TWO named TDengine deviations from atlas (AC6) ──────────────────────────
7
+ * ── THREE named TDengine deviations from atlas (AC6) ────────────────────────
8
8
  *
9
9
  * 1. **No transactions / no engine rollback.** TDengine DDL is non-transactional
10
10
  * — a batch CANNOT be applied atomically. The runner executes statements
@@ -19,13 +19,31 @@
19
19
  * unique timestamp key (TDengine only allows a `DELETE` predicate on the
20
20
  * primary timestamp column).
21
21
  *
22
+ * 3. **The migration lock is a table's EXISTENCE, not a row's value.** atlas
23
+ * (Lucid/Knex parity) serialises concurrent runners with a conditional
24
+ * `UPDATE … WHERE is_locked = 0`; TDengine has no conditional UPDATE, so
25
+ * that exact shape is impossible. The equivalent guarantee comes from a
26
+ * different primitive: `CREATE TABLE` **without** `IF NOT EXISTS` is an
27
+ * atomic compare-and-swap — the mnode serialises metadata, so exactly ONE
28
+ * concurrent creator succeeds and every other gets code 1539. Creating the
29
+ * lock table IS taking the lock; dropping it is releasing it. Verified
30
+ * against a live TDengine 3.3.5.0: 12 racing connections, 1 winner, 11 ×
31
+ * 1539, three rounds. The API stays atlas's (`disableLocks`, `forceUnlock`,
32
+ * `E_..._LOCKED`) — only the primitive underneath differs.
33
+ *
22
34
  * Agnostic leaf: takes the connection structurally and a plain directory path —
23
35
  * no `@c9up/ream` import, no app helper (`project_package_extraction`).
24
36
  */
37
+ import { randomUUID } from "node:crypto";
25
38
  import * as fsp from "node:fs/promises";
26
39
  import * as path from "node:path";
27
40
  import { pathToFileURL } from "node:url";
41
+ import { EonConnectionError, } from "../connection/EonConnection.js";
28
42
  import { compileStatementNative } from "../query/native.js";
43
+ /** TDengine's "Table already exists" code — the losing side of the lock race. */
44
+ const TABLE_ALREADY_EXISTS = 1539;
45
+ /** TDengine's "Table does not exist" code — nothing to force-unlock. */
46
+ const TABLE_DOES_NOT_EXIST = 9731;
29
47
  const DEFAULT_DIR = "database/eon-migrations";
30
48
  const DEFAULT_TABLE = "ream_eon_migrations";
31
49
  const TABLE_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
@@ -35,6 +53,10 @@ export class EonMigrationRunner {
35
53
  #conn;
36
54
  #dir;
37
55
  #table;
56
+ #lockTable;
57
+ #disableLocks;
58
+ /** Set while THIS runner holds the lock, so we never drop someone else's. */
59
+ #lockToken;
38
60
  constructor(conn, options = {}) {
39
61
  this.#conn = conn;
40
62
  this.#dir = options.migrationsDir ?? DEFAULT_DIR;
@@ -43,6 +65,10 @@ export class EonMigrationRunner {
43
65
  throw new Error(`[E_EON_MIGRATION_INVALID] invalid tracking-table name '${table}'; must match ${TABLE_NAME_PATTERN}`);
44
66
  }
45
67
  this.#table = table;
68
+ // Derived from the tracking table, so a custom `tableName` keeps its lock
69
+ // beside it; already validated by the pattern above, plus a literal suffix.
70
+ this.#lockTable = `${table}_lock`;
71
+ this.#disableLocks = options.disableLocks ?? false;
46
72
  }
47
73
  /** Create the tracking table (`IF NOT EXISTS`) via the basic-table DDL path. */
48
74
  async init() {
@@ -86,12 +112,15 @@ export class EonMigrationRunner {
86
112
  return files.map((name) => {
87
113
  const batch = byName.get(name);
88
114
  return batch === undefined
89
- ? { name, state: "pending" }
90
- : { name, state: "applied", batch };
115
+ ? { name, status: "pending" }
116
+ : { name, status: "applied", batch };
91
117
  });
92
118
  }
93
119
  /** Run every pending migration (filename order), recording each. */
94
120
  async migrate() {
121
+ return this.#withLock(() => this.#migrateLocked());
122
+ }
123
+ async #migrateLocked() {
95
124
  await this.init();
96
125
  const applied = await this.#appliedRecords();
97
126
  const appliedNames = new Set(applied.map((r) => r.name));
@@ -117,6 +146,9 @@ export class EonMigrationRunner {
117
146
  }
118
147
  /** Roll back the most-recent batch (files in reverse order), running `down()`. */
119
148
  async rollback() {
149
+ return this.#withLock(() => this.#rollbackLocked());
150
+ }
151
+ async #rollbackLocked() {
120
152
  await this.init();
121
153
  const applied = await this.#appliedRecords();
122
154
  if (applied.length === 0)
@@ -142,11 +174,16 @@ export class EonMigrationRunner {
142
174
  }
143
175
  /** Roll back every applied batch (Lucid `migrate:reset`). */
144
176
  async reset() {
177
+ return this.#withLock(() => this.#resetLocked());
178
+ }
179
+ async #resetLocked() {
145
180
  await this.init();
146
181
  const all = [];
182
+ // Loops on the LOCKED variant: `rollback()` would try to take a lock this
183
+ // runner already holds, and the CREATE would fail with 1539 against itself.
147
184
  // Guard against a stuck loop: each rollback must shrink the applied set.
148
185
  for (;;) {
149
- const rolled = await this.rollback();
186
+ const rolled = await this.#rollbackLocked();
150
187
  if (rolled.length === 0)
151
188
  break;
152
189
  all.push(...rolled);
@@ -155,9 +192,13 @@ export class EonMigrationRunner {
155
192
  }
156
193
  /** Reset then re-run every migration (Lucid `migrate:refresh`). */
157
194
  async refresh() {
158
- const rolled = await this.reset();
159
- const executed = await this.migrate();
160
- return { rolled, executed };
195
+ // ONE lock held across the WHOLE rollback + re-migrate, so no other run can
196
+ // slip into the free window between reset and migrate (atlas does the same).
197
+ return this.#withLock(async () => {
198
+ const rolled = await this.#resetLocked();
199
+ const executed = await this.#migrateLocked();
200
+ return { rolled, executed };
201
+ });
161
202
  }
162
203
  /** Alias of {@link refresh} (Lucid `migrate:fresh`). */
163
204
  fresh() {
@@ -193,6 +234,127 @@ export class EonMigrationRunner {
193
234
  executed_at: Number(r.executed_at),
194
235
  }));
195
236
  }
237
+ // ── Migration lock ─────────────────────────────────────────────────────────
238
+ // Deviation 3 (see the file header): the lock is the lock table's EXISTENCE.
239
+ // `CREATE TABLE` without `IF NOT EXISTS` is TDengine's atomic compare-and-swap.
240
+ /**
241
+ * Take the migration lock so two processes cannot migrate concurrently
242
+ * (atlas / Lucid parity — a lock TABLE; here its existence, not a row value).
243
+ *
244
+ * ATOMIC: the mnode serialises table creation, so of N concurrent creators
245
+ * exactly ONE succeeds and the rest get code 1539. Winning the CREATE IS
246
+ * holding the lock — there is no separate read-back to race against.
247
+ *
248
+ * Any OTHER failure propagates untouched: we must never read an unknown error
249
+ * as "someone else holds it" (or as "we hold it"). Either way we do not migrate.
250
+ */
251
+ async #acquireLock() {
252
+ if (this.#disableLocks)
253
+ return;
254
+ const { statements } = compileStatementNative({
255
+ kind: "createTable",
256
+ name: this.#lockTable,
257
+ ifNotExists: false,
258
+ columns: [
259
+ {
260
+ name: "locked_at",
261
+ kind: "timestamp",
262
+ length: null,
263
+ precision: null,
264
+ scale: null,
265
+ },
266
+ {
267
+ name: "token",
268
+ kind: "varchar",
269
+ length: 64,
270
+ precision: null,
271
+ scale: null,
272
+ },
273
+ ],
274
+ }, "tdengine");
275
+ const token = randomUUID();
276
+ try {
277
+ for (const sql of statements)
278
+ await this.#conn.exec(sql);
279
+ }
280
+ catch (error) {
281
+ if (error instanceof EonConnectionError &&
282
+ error.code === TABLE_ALREADY_EXISTS) {
283
+ throw new Error(`[E_EON_MIGRATION_LOCKED] could not acquire the migration lock — another migration is already running. Wait for it to finish, or clear a stuck lock with forceUnlock() (drops '${this.#lockTable}').`, { cause: error });
284
+ }
285
+ throw error;
286
+ }
287
+ this.#lockToken = token;
288
+ // Written for diagnosis only (who holds it, since when) — the lock is
289
+ // already ours the moment the CREATE returned, so a failure to record it
290
+ // must not look like a failure to acquire.
291
+ await this.#writeLockRecord(token);
292
+ }
293
+ /** Best-effort ownership stamp inside the lock table. Never fails acquisition. */
294
+ async #writeLockRecord(token) {
295
+ try {
296
+ const { statements } = compileStatementNative({
297
+ kind: "insert",
298
+ table: this.#lockTable,
299
+ columns: ["locked_at", "token"],
300
+ rows: [[Date.now(), token]],
301
+ literal: true,
302
+ }, "tdengine");
303
+ for (const sql of statements)
304
+ await this.#conn.exec(sql);
305
+ }
306
+ catch {
307
+ // Diagnostic only — swallowed on purpose.
308
+ }
309
+ }
310
+ /** Run `fn` holding the migration lock; always release, even on throw. */
311
+ async #withLock(fn) {
312
+ await this.#acquireLock();
313
+ try {
314
+ return await fn();
315
+ }
316
+ finally {
317
+ await this.#releaseLock();
318
+ }
319
+ }
320
+ /** Release the lock — only if WE took it, so we never drop someone else's. */
321
+ async #releaseLock() {
322
+ if (this.#disableLocks || this.#lockToken === undefined)
323
+ return;
324
+ this.#lockToken = undefined;
325
+ await this.#dropLockTable();
326
+ }
327
+ async #dropLockTable() {
328
+ const { statements } = compileStatementNative({ kind: "dropTable", name: this.#lockTable, ifExists: true }, "tdengine");
329
+ for (const sql of statements)
330
+ await this.#conn.exec(sql);
331
+ }
332
+ /**
333
+ * Force-clear a stuck migration lock (atlas `forceUnlock`, Lucid
334
+ * `migration:unlock`). A process killed mid-migrate leaves the lock table
335
+ * behind with no owner alive to drop it, and every later run would fail to
336
+ * acquire. Returns `true` if a held lock was cleared.
337
+ */
338
+ async forceUnlock() {
339
+ // Symmetric to acquisition: a `DROP` that omits `IF EXISTS` reports whether
340
+ // anything was there, in one atomic statement. No separate existence probe,
341
+ // which would both race and (on a missing table) read an unrelated failure
342
+ // as "no lock held".
343
+ const { statements } = compileStatementNative({ kind: "dropTable", name: this.#lockTable, ifExists: false }, "tdengine");
344
+ try {
345
+ for (const sql of statements)
346
+ await this.#conn.exec(sql);
347
+ }
348
+ catch (error) {
349
+ if (error instanceof EonConnectionError &&
350
+ error.code === TABLE_DOES_NOT_EXIST) {
351
+ return false;
352
+ }
353
+ throw error;
354
+ }
355
+ this.#lockToken = undefined;
356
+ return true;
357
+ }
196
358
  #maxBatch(records) {
197
359
  return records.reduce((max, r) => Math.max(max, r.batch), 0);
198
360
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EonMigrationRunner.js","sourceRoot":"","sources":["../../src/schema/EonMigrationRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EonMigrationRunner.js","sourceRoot":"","sources":["../../src/schema/EonMigrationRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@c9up/eon/schema` — everything a migration file needs, and nothing else.
3
+ *
4
+ * The root barrel re-exports `connectWsEon`, so importing `Migration` from
5
+ * `@c9up/eon` loads `@tdengine/websocket` as a side effect: a migration that
6
+ * only describes a schema pays for the driver. Nothing under this path touches
7
+ * the driver — `EonMigrationRunner` takes its connection structurally.
8
+ *
9
+ * Mirrors `@c9up/atlas/schema`.
10
+ */
11
+ export { type CreateStableSpec, type CreateTableSpec, TYPE_KIND_MAP, } from "./CreateStableSpec.js";
12
+ export { type EonMigrationOptions, EonMigrationRunner, type MigrationState, type MigrationStatus, } from "./EonMigrationRunner.js";
13
+ export { AlterStableBuilder, BasicTableBuilder, EonSchema, StableBuilder, } from "./EonSchema.js";
14
+ export { Migration } from "./Migration.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,aAAa,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,aAAa,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@c9up/eon/schema` — everything a migration file needs, and nothing else.
3
+ *
4
+ * The root barrel re-exports `connectWsEon`, so importing `Migration` from
5
+ * `@c9up/eon` loads `@tdengine/websocket` as a side effect: a migration that
6
+ * only describes a schema pays for the driver. Nothing under this path touches
7
+ * the driver — `EonMigrationRunner` takes its connection structurally.
8
+ *
9
+ * Mirrors `@c9up/atlas/schema`.
10
+ */
11
+ export { TYPE_KIND_MAP, } from "./CreateStableSpec.js";
12
+ export { EonMigrationRunner, } from "./EonMigrationRunner.js";
13
+ export { AlterStableBuilder, BasicTableBuilder, EonSchema, StableBuilder, } from "./EonSchema.js";
14
+ export { Migration } from "./Migration.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAGN,aAAa,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,kBAAkB,GAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,aAAa,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * through literal `exec` INSERTs, which the store DOES handle.)
18
18
  * - `ping()`/`close()` are no-ops.
19
19
  */
20
- import type { EonColumnarIngest, EonConnection, EonSchemalessOptions } from "../connection/EonConnection.js";
20
+ import { type EonColumnarIngest, type EonConnection, type EonSchemalessOptions } from "../connection/EonConnection.js";
21
21
  type Row = Record<string, unknown>;
22
22
  export declare class FakeEonConnection implements EonConnection {
23
23
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"FakeEonConnection.d.ts","sourceRoot":"","sources":["../../src/testing/FakeEonConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,MAAM,gCAAgC,CAAC;AAExC,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAInC,qBAAa,iBAAkB,YAAW,aAAa;;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IACpC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAG7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IA+B1D,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA6BnC,cAAc,CACnB,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9B,UAAU,CACf,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,mDAAmD;IACnD,KAAK,IAAI,IAAI;IAKb,6EAA6E;IAC7E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;CAmB1B"}
1
+ {"version":3,"file":"FakeEonConnection.d.ts","sourceRoot":"","sources":["../../src/testing/FakeEonConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,MAAM,gCAAgC,CAAC;AAExC,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAUnC,qBAAa,iBAAkB,YAAW,aAAa;;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IACpC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAG7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAsD1D,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA6BnC,cAAc,CACnB,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9B,UAAU,CACf,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAQV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,mDAAmD;IACnD,KAAK,IAAI,IAAI;IAKb,6EAA6E;IAC7E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;CAmB1B"}
@@ -17,7 +17,14 @@
17
17
  * through literal `exec` INSERTs, which the store DOES handle.)
18
18
  * - `ping()`/`close()` are no-ops.
19
19
  */
20
+ import { EonConnectionError, } from "../connection/EonConnection.js";
20
21
  const WINDOWED = /\b(INTERVAL|FILL|PARTITION\s+BY|SLIDING)\b/i;
22
+ /** TDengine's "Table already exists" error code. */
23
+ const TABLE_ALREADY_EXISTS = 1539;
24
+ const IF_NOT_EXISTS = /\bIF\s+NOT\s+EXISTS\b/i;
25
+ /** TDengine's "Table does not exist" error code. */
26
+ const TABLE_DOES_NOT_EXIST = 9731;
27
+ const IF_EXISTS = /\bIF\s+EXISTS\b/i;
21
28
  export class FakeEonConnection {
22
29
  transport = "fake";
23
30
  /** Every `exec`ed statement, in order — assert against this in tests. */
@@ -28,8 +35,17 @@ export class FakeEonConnection {
28
35
  const trimmed = sql.trim();
29
36
  if (/^CREATE\s+(STABLE|TABLE)\b/i.test(trimmed)) {
30
37
  const table = extractCreateTarget(trimmed);
31
- if (table !== undefined && !this.#store.has(table)) {
32
- this.#store.set(table, []);
38
+ if (table !== undefined) {
39
+ // A real server REJECTS a duplicate CREATE that omits IF NOT EXISTS,
40
+ // with code 1539 — the atomic "one winner" primitive the migration
41
+ // lock is built on (measured against a live 3.3.5.0 server: 12 racing
42
+ // connections, 1 winner, 11 × 1539). The fake has to reject it too,
43
+ // or a lock test would pass here and deadlock against a real server.
44
+ if (this.#store.has(table) && !IF_NOT_EXISTS.test(trimmed)) {
45
+ throw new EonConnectionError(`eon: exec failed for [${trimmed}]: Table already exists`, { code: TABLE_ALREADY_EXISTS });
46
+ }
47
+ if (!this.#store.has(table))
48
+ this.#store.set(table, []);
33
49
  }
34
50
  return { rowsAffected: 0 };
35
51
  }
@@ -49,8 +65,16 @@ export class FakeEonConnection {
49
65
  // DROP / USE / other DDL: recorded, no store change.
50
66
  if (/^DROP\s+(STABLE|TABLE)\b/i.test(trimmed)) {
51
67
  const table = extractDropTarget(trimmed);
52
- if (table !== undefined)
68
+ if (table !== undefined) {
69
+ // Mirror of the CREATE rule above: a real server rejects a DROP that
70
+ // omits IF EXISTS when the table is absent (code 9731, measured on
71
+ // 3.3.5.0). `forceUnlock` reads exactly that code to report whether a
72
+ // lock was actually held.
73
+ if (!this.#store.has(table) && !IF_EXISTS.test(trimmed)) {
74
+ throw new EonConnectionError(`eon: exec failed for [${trimmed}]: Table does not exist`, { code: TABLE_DOES_NOT_EXIST });
75
+ }
53
76
  this.#store.delete(table);
77
+ }
54
78
  }
55
79
  return { rowsAffected: 0 };
56
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FakeEonConnection.js","sourceRoot":"","sources":["../../src/testing/FakeEonConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FakeEonConnection.js","sourceRoot":"","sources":["../../src/testing/FakeEonConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * An in-memory {@link EonConsumer}, so a subscription handler can be tested
3
+ * without a server.
4
+ *
5
+ * The fake models the two things that actually bite: `poll` drains a queue
6
+ * rather than replaying it, and `commit` only acknowledges what was polled. A
7
+ * fake that returns the same batch forever hides the bug where a handler never
8
+ * advances.
9
+ */
10
+ import type { EonConsumer, EonMessage, EonTopicPartition } from "../tmq/EonConsumer.js";
11
+ export declare class FakeEonConsumer implements EonConsumer {
12
+ #private;
13
+ /** Queue messages a later `poll()` will return, in order. */
14
+ push(...messages: EonMessage[]): this;
15
+ /** How many messages have been acknowledged. */
16
+ get committedCount(): number;
17
+ /** Whether `close()` has run. */
18
+ get isClosed(): boolean;
19
+ subscribe(topics: string[]): Promise<void>;
20
+ subscription(): Promise<string[]>;
21
+ poll<T = Record<string, unknown>>(_timeoutMs: number): Promise<EonMessage<T>[]>;
22
+ commit(): Promise<EonTopicPartition[]>;
23
+ assignment(topics?: string[]): Promise<EonTopicPartition[]>;
24
+ seek(partition: EonTopicPartition): Promise<void>;
25
+ unsubscribe(): Promise<void>;
26
+ close(): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=FakeEonConsumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeEonConsumer.d.ts","sourceRoot":"","sources":["../../src/testing/FakeEonConsumer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,MAAM,uBAAuB,CAAC;AAG/B,qBAAa,eAAgB,YAAW,WAAW;;IAOlD,6DAA6D;IAC7D,IAAI,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAKrC,gDAAgD;IAChD,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,iCAAiC;IACjC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAMK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKjC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAQrB,MAAM,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAMtC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAK3D,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}