@c9up/atlas 0.2.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 (234) hide show
  1. package/README.md +8 -0
  2. package/db.darwin-arm64.node +0 -0
  3. package/db.darwin-x64.node +0 -0
  4. package/db.linux-arm64-gnu.node +0 -0
  5. package/db.linux-x64-gnu.node +0 -0
  6. package/db.win32-x64-msvc.node +0 -0
  7. package/dist/AtlasProvider.d.ts +60 -7
  8. package/dist/AtlasProvider.d.ts.map +1 -1
  9. package/dist/AtlasProvider.js +204 -38
  10. package/dist/AtlasProvider.js.map +1 -1
  11. package/dist/BaseEntity.d.ts +17 -0
  12. package/dist/BaseEntity.d.ts.map +1 -1
  13. package/dist/BaseEntity.js.map +1 -1
  14. package/dist/BaseModel.d.ts +63 -27
  15. package/dist/BaseModel.d.ts.map +1 -1
  16. package/dist/BaseModel.js +108 -51
  17. package/dist/BaseModel.js.map +1 -1
  18. package/dist/BaseRepository.d.ts +11 -1
  19. package/dist/BaseRepository.d.ts.map +1 -1
  20. package/dist/BaseRepository.js +95 -20
  21. package/dist/BaseRepository.js.map +1 -1
  22. package/dist/ConnectionManager.d.ts +106 -0
  23. package/dist/ConnectionManager.d.ts.map +1 -0
  24. package/dist/ConnectionManager.js +228 -0
  25. package/dist/ConnectionManager.js.map +1 -0
  26. package/dist/ModelQuery.d.ts +256 -43
  27. package/dist/ModelQuery.d.ts.map +1 -1
  28. package/dist/ModelQuery.js +899 -231
  29. package/dist/ModelQuery.js.map +1 -1
  30. package/dist/Transaction.d.ts +54 -1
  31. package/dist/Transaction.d.ts.map +1 -1
  32. package/dist/Transaction.js +121 -59
  33. package/dist/Transaction.js.map +1 -1
  34. package/dist/adapters/NapiDbAdapter.d.ts +11 -0
  35. package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
  36. package/dist/adapters/NapiDbAdapter.js +35 -7
  37. package/dist/adapters/NapiDbAdapter.js.map +1 -1
  38. package/dist/console/contract.d.ts +62 -0
  39. package/dist/console/contract.d.ts.map +1 -0
  40. package/dist/console/contract.js +38 -0
  41. package/dist/console/contract.js.map +1 -0
  42. package/dist/console/factoryCommands.d.ts +23 -0
  43. package/dist/console/factoryCommands.d.ts.map +1 -0
  44. package/dist/console/factoryCommands.js +62 -0
  45. package/dist/console/factoryCommands.js.map +1 -0
  46. package/dist/console/migrationCommands.d.ts +38 -8
  47. package/dist/console/migrationCommands.d.ts.map +1 -1
  48. package/dist/console/migrationCommands.js +157 -50
  49. package/dist/console/migrationCommands.js.map +1 -1
  50. package/dist/console/schemaCheckCommand.d.ts +11 -17
  51. package/dist/console/schemaCheckCommand.d.ts.map +1 -1
  52. package/dist/console/schemaCheckCommand.js +21 -15
  53. package/dist/console/schemaCheckCommand.js.map +1 -1
  54. package/dist/console/schemaDumpCommand.d.ts +30 -0
  55. package/dist/console/schemaDumpCommand.d.ts.map +1 -0
  56. package/dist/console/schemaDumpCommand.js +69 -0
  57. package/dist/console/schemaDumpCommand.js.map +1 -0
  58. package/dist/console/schemaGenerateCommand.d.ts +100 -0
  59. package/dist/console/schemaGenerateCommand.d.ts.map +1 -0
  60. package/dist/console/schemaGenerateCommand.js +246 -0
  61. package/dist/console/schemaGenerateCommand.js.map +1 -0
  62. package/dist/console/seederCommands.d.ts +46 -0
  63. package/dist/console/seederCommands.d.ts.map +1 -0
  64. package/dist/console/seederCommands.js +136 -0
  65. package/dist/console/seederCommands.js.map +1 -0
  66. package/dist/decorators/entity.d.ts +13 -2
  67. package/dist/decorators/entity.d.ts.map +1 -1
  68. package/dist/decorators/entity.js +10 -0
  69. package/dist/decorators/entity.js.map +1 -1
  70. package/dist/decorators/hooks.d.ts +3 -3
  71. package/dist/decorators/hooks.d.ts.map +1 -1
  72. package/dist/decorators/hooks.js.map +1 -1
  73. package/dist/events.d.ts +5 -0
  74. package/dist/events.d.ts.map +1 -1
  75. package/dist/events.js.map +1 -1
  76. package/dist/factories.d.ts +8 -0
  77. package/dist/factories.d.ts.map +1 -0
  78. package/dist/factories.js +8 -0
  79. package/dist/factories.js.map +1 -0
  80. package/dist/index.d.ts +11 -5
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +12 -4
  83. package/dist/index.js.map +1 -1
  84. package/dist/lucid-schema.d.ts +15 -0
  85. package/dist/lucid-schema.d.ts.map +1 -0
  86. package/dist/lucid-schema.js +16 -0
  87. package/dist/lucid-schema.js.map +1 -0
  88. package/dist/orm.d.ts +14 -0
  89. package/dist/orm.d.ts.map +1 -0
  90. package/dist/orm.js +14 -0
  91. package/dist/orm.js.map +1 -0
  92. package/dist/query/DatabaseQueryBuilder.d.ts +557 -0
  93. package/dist/query/DatabaseQueryBuilder.d.ts.map +1 -0
  94. package/dist/query/DatabaseQueryBuilder.js +1798 -0
  95. package/dist/query/DatabaseQueryBuilder.js.map +1 -0
  96. package/dist/query/DmlBuilder.d.ts +62 -0
  97. package/dist/query/DmlBuilder.d.ts.map +1 -0
  98. package/dist/query/DmlBuilder.js +84 -0
  99. package/dist/query/DmlBuilder.js.map +1 -0
  100. package/dist/query/QueryBuilder.d.ts +5 -0
  101. package/dist/query/QueryBuilder.d.ts.map +1 -1
  102. package/dist/query/QueryBuilder.js +7 -0
  103. package/dist/query/QueryBuilder.js.map +1 -1
  104. package/dist/query/RawQueryBuilder.d.ts +47 -0
  105. package/dist/query/RawQueryBuilder.d.ts.map +1 -0
  106. package/dist/query/RawQueryBuilder.js +138 -0
  107. package/dist/query/RawQueryBuilder.js.map +1 -0
  108. package/dist/query/interpolate.d.ts +45 -0
  109. package/dist/query/interpolate.d.ts.map +1 -0
  110. package/dist/query/interpolate.js +51 -0
  111. package/dist/query/interpolate.js.map +1 -0
  112. package/dist/query/native.d.ts +8 -0
  113. package/dist/query/native.d.ts.map +1 -1
  114. package/dist/query/native.js +14 -0
  115. package/dist/query/native.js.map +1 -1
  116. package/dist/query/operators.d.ts +4 -0
  117. package/dist/query/operators.d.ts.map +1 -0
  118. package/dist/query/operators.js +27 -0
  119. package/dist/query/operators.js.map +1 -0
  120. package/dist/schema/Migration.d.ts +31 -7
  121. package/dist/schema/Migration.d.ts.map +1 -1
  122. package/dist/schema/Migration.js +34 -7
  123. package/dist/schema/Migration.js.map +1 -1
  124. package/dist/schema/MigrationRunner.d.ts +56 -6
  125. package/dist/schema/MigrationRunner.d.ts.map +1 -1
  126. package/dist/schema/MigrationRunner.js +382 -112
  127. package/dist/schema/MigrationRunner.js.map +1 -1
  128. package/dist/schema/Schema.d.ts +59 -2
  129. package/dist/schema/Schema.d.ts.map +1 -1
  130. package/dist/schema/Schema.js +143 -9
  131. package/dist/schema/Schema.js.map +1 -1
  132. package/dist/schema/SchemaDumper.d.ts +121 -0
  133. package/dist/schema/SchemaDumper.d.ts.map +1 -0
  134. package/dist/schema/SchemaDumper.js +365 -0
  135. package/dist/schema/SchemaDumper.js.map +1 -0
  136. package/dist/schema/Seeder.d.ts +13 -0
  137. package/dist/schema/Seeder.d.ts.map +1 -1
  138. package/dist/schema/Seeder.js +28 -5
  139. package/dist/schema/Seeder.js.map +1 -1
  140. package/dist/schema/TableBuilder.d.ts +27 -8
  141. package/dist/schema/TableBuilder.d.ts.map +1 -1
  142. package/dist/schema/TableBuilder.js +50 -12
  143. package/dist/schema/TableBuilder.js.map +1 -1
  144. package/dist/schema/catalog.d.ts +25 -1
  145. package/dist/schema/catalog.d.ts.map +1 -1
  146. package/dist/schema/catalog.js +69 -22
  147. package/dist/schema/catalog.js.map +1 -1
  148. package/dist/schema/introspect.d.ts +1 -1
  149. package/dist/schema/introspect.d.ts.map +1 -1
  150. package/dist/schema/introspect.js +26 -11
  151. package/dist/schema/introspect.js.map +1 -1
  152. package/dist/seeders.d.ts +7 -0
  153. package/dist/seeders.d.ts.map +1 -0
  154. package/dist/seeders.js +7 -0
  155. package/dist/seeders.js.map +1 -0
  156. package/dist/services/db.d.ts +120 -9
  157. package/dist/services/db.d.ts.map +1 -1
  158. package/dist/services/db.js +182 -26
  159. package/dist/services/db.js.map +1 -1
  160. package/dist/testing/DatabaseCleanup.d.ts +29 -6
  161. package/dist/testing/DatabaseCleanup.d.ts.map +1 -1
  162. package/dist/testing/DatabaseCleanup.js +44 -17
  163. package/dist/testing/DatabaseCleanup.js.map +1 -1
  164. package/dist/testing/DbAssertions.d.ts +48 -0
  165. package/dist/testing/DbAssertions.d.ts.map +1 -0
  166. package/dist/testing/DbAssertions.js +80 -0
  167. package/dist/testing/DbAssertions.js.map +1 -0
  168. package/dist/testing/Factory.d.ts +111 -25
  169. package/dist/testing/Factory.d.ts.map +1 -1
  170. package/dist/testing/Factory.js +331 -56
  171. package/dist/testing/Factory.js.map +1 -1
  172. package/dist/testing/TestUtils.d.ts +49 -0
  173. package/dist/testing/TestUtils.d.ts.map +1 -0
  174. package/dist/testing/TestUtils.js +79 -0
  175. package/dist/testing/TestUtils.js.map +1 -0
  176. package/dist/testing/index.d.ts +3 -1
  177. package/dist/testing/index.d.ts.map +1 -1
  178. package/dist/testing/index.js +3 -1
  179. package/dist/testing/index.js.map +1 -1
  180. package/dist/types/relations.d.ts +31 -0
  181. package/dist/types/relations.d.ts.map +1 -0
  182. package/dist/types/relations.js +20 -0
  183. package/dist/types/relations.js.map +1 -0
  184. package/index.darwin-arm64.node +0 -0
  185. package/index.darwin-x64.node +0 -0
  186. package/index.linux-arm64-gnu.node +0 -0
  187. package/index.linux-x64-gnu.node +0 -0
  188. package/index.win32-x64-msvc.node +0 -0
  189. package/package.json +30 -2
  190. package/src/AtlasProvider.ts +297 -51
  191. package/src/BaseEntity.ts +29 -0
  192. package/src/BaseModel.ts +174 -37
  193. package/src/BaseRepository.ts +136 -17
  194. package/src/ConnectionManager.ts +298 -0
  195. package/src/ModelQuery.ts +1309 -260
  196. package/src/Transaction.ts +194 -60
  197. package/src/adapters/NapiDbAdapter.ts +72 -14
  198. package/src/console/contract.ts +96 -0
  199. package/src/console/factoryCommands.ts +73 -0
  200. package/src/console/migrationCommands.ts +253 -63
  201. package/src/console/schemaCheckCommand.ts +26 -22
  202. package/src/console/schemaDumpCommand.ts +96 -0
  203. package/src/console/schemaGenerateCommand.ts +380 -0
  204. package/src/console/seederCommands.ts +174 -0
  205. package/src/decorators/entity.ts +18 -2
  206. package/src/decorators/hooks.ts +5 -3
  207. package/src/events.ts +5 -0
  208. package/src/factories.ts +10 -0
  209. package/src/index.ts +50 -3
  210. package/src/lucid-schema.ts +22 -0
  211. package/src/orm.ts +13 -0
  212. package/src/query/DatabaseQueryBuilder.ts +2724 -0
  213. package/src/query/DmlBuilder.ts +131 -0
  214. package/src/query/QueryBuilder.ts +8 -0
  215. package/src/query/RawQueryBuilder.ts +173 -0
  216. package/src/query/interpolate.ts +73 -0
  217. package/src/query/native.ts +29 -0
  218. package/src/query/operators.ts +27 -0
  219. package/src/schema/Migration.ts +36 -7
  220. package/src/schema/MigrationRunner.ts +483 -119
  221. package/src/schema/Schema.ts +168 -19
  222. package/src/schema/SchemaDumper.ts +518 -0
  223. package/src/schema/Seeder.ts +47 -10
  224. package/src/schema/TableBuilder.ts +48 -11
  225. package/src/schema/catalog.ts +94 -24
  226. package/src/schema/introspect.ts +26 -9
  227. package/src/seeders.ts +16 -0
  228. package/src/services/db.ts +343 -31
  229. package/src/testing/DatabaseCleanup.ts +73 -21
  230. package/src/testing/DbAssertions.ts +127 -0
  231. package/src/testing/Factory.ts +559 -79
  232. package/src/testing/TestUtils.ts +123 -0
  233. package/src/testing/index.ts +12 -1
  234. package/src/types/relations.ts +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestUtils.d.ts","sourceRoot":"","sources":["../../src/testing/TestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAM5E,OAAO,EACN,KAAK,eAAe,EAGpB,MAAM,sBAAsB,CAAC;AA0B9B,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IAClC,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC3B,mEAAmE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,yEAAyE;IACzE,QAAQ,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,qDAAqD;IACrD,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C;;;OAGG;IACH,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CAClD;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CACxB,IAAI,EAAE,uBAAuB,EAC7B,OAAO,GAAE,kBAAuB,GAC9B;IAAE,EAAE,IAAI,WAAW,CAAA;CAAE,CAqCvB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * `testUtils.db()` — the AdonisJS `testUtils.db()` facade for test state
3
+ * management, wired to atlas's migration/seed/truncate/transaction bricks:
4
+ *
5
+ * const t = testUtils(connection, { migrationsDir, seedersDir });
6
+ * test.group("users", (group) => {
7
+ * group.each.setup(() => t.db().truncate()); // teardown truncates
8
+ * });
9
+ *
10
+ * Each method returns the TEARDOWN function a Japa/helix hook uses (Adonis
11
+ * parity): `group.each.setup(() => testUtils.db().truncate())`.
12
+ *
13
+ * NOTE (named atlas deviation): Lucid's `withGlobalTransaction()` transparently
14
+ * routes EVERY query through a hidden connection-global transaction. atlas
15
+ * deliberately does NOT bind a global transaction (it caused silent pool-scatter
16
+ * bugs — see `useTransaction`); instead it hands back a PINNED trx the test
17
+ * drives explicitly. So `withGlobalTransaction()` returns `{ trx, rollback }` —
18
+ * run the test's queries through `trx`, not the pooled connection.
19
+ */
20
+ import { MigrationRunner, } from "../schema/MigrationRunner.js";
21
+ import { runSeederDirectory } from "../schema/Seeder.js";
22
+ import { truncateAll, useTransaction, } from "./DatabaseCleanup.js";
23
+ /**
24
+ * Adapt a real connection to the {@link DatabaseAdapter} shape MigrationRunner
25
+ * needs — the only mismatch is `execute` (the connection returns row counts,
26
+ * the adapter wants `void`). Forwards the interactive-transaction hooks so
27
+ * transactional migrations + FK suspension keep working.
28
+ */
29
+ function connToAdapter(conn) {
30
+ const adapter = {
31
+ execute: async (sql, params) => {
32
+ await conn.execute(sql, params);
33
+ },
34
+ query: (sql, params) => conn.query(sql, params),
35
+ close: () => conn.close(),
36
+ };
37
+ if (conn.runInTransaction) {
38
+ adapter.runInTransaction = (batch) => conn.runInTransaction(batch);
39
+ }
40
+ // `conn.transaction()` is the MANUAL (pinned) form; DatabaseAdapter.transaction
41
+ // is the MANAGED (callback) form — different shapes, so it isn't forwarded.
42
+ // runInTransaction covers atomic migration batches; the managed hook is only
43
+ // needed for `defer()`/MySQL-FK migrations, which a bare test connection skips.
44
+ return adapter;
45
+ }
46
+ /** AdonisJS `testUtils` facade (db slice) bound to a connection. */
47
+ export function testUtils(conn, options = {}) {
48
+ return {
49
+ db() {
50
+ return {
51
+ async migrate() {
52
+ const runner = new MigrationRunner(connToAdapter(conn), {
53
+ migrationsDir: options.migrationsDir,
54
+ dialect: conn.dialect,
55
+ });
56
+ await runner.migrate();
57
+ return async () => {
58
+ await runner.rollback();
59
+ };
60
+ },
61
+ truncate() {
62
+ return async () => {
63
+ await truncateAll(conn, options.ignoreTables);
64
+ };
65
+ },
66
+ async seed(files) {
67
+ if (!options.seedersDir) {
68
+ throw new Error("testUtils.db().seed() needs a `seedersDir` (pass it to testUtils()).");
69
+ }
70
+ await runSeederDirectory(options.seedersDir, conn, files ? { files } : undefined);
71
+ },
72
+ withGlobalTransaction() {
73
+ return useTransaction(conn);
74
+ },
75
+ };
76
+ },
77
+ };
78
+ }
79
+ //# sourceMappingURL=TestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestUtils.js","sourceRoot":"","sources":["../../src/testing/TestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAEN,eAAe,GACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEN,WAAW,EACX,cAAc,GACd,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAA6B;IACnD,MAAM,OAAO,GAAoB;QAChC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;QAC/C,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;KACzB,CAAC;IACF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,OAAO,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACD,gFAAgF;IAChF,4EAA4E;IAC5E,6EAA6E;IAC7E,gFAAgF;IAChF,OAAO,OAAO,CAAC;AAChB,CAAC;AA2BD,oEAAoE;AACpE,MAAM,UAAU,SAAS,CACxB,IAA6B,EAC7B,UAA8B,EAAE;IAEhC,OAAO;QACN,EAAE;YACD,OAAO;gBACN,KAAK,CAAC,OAAO;oBACZ,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;wBACvD,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;qBACrB,CAAC,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,KAAK,IAAI,EAAE;wBACjB,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACzB,CAAC,CAAC;gBACH,CAAC;gBACD,QAAQ;oBACP,OAAO,KAAK,IAAI,EAAE;wBACjB,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC/C,CAAC,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,KAAK;oBACf,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBACzB,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;oBACH,CAAC;oBACD,MAAM,kBAAkB,CACvB,OAAO,CAAC,UAAU,EAClB,IAAI,EACJ,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAC7B,CAAC;gBACH,CAAC;gBACD,qBAAqB;oBACpB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;aACD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { truncateAll, useTransaction } from "./DatabaseCleanup.js";
2
- export { type FactoryBuilder, factory } from "./Factory.js";
2
+ export { createDbAssertions, type DbAssertions, type DbConnectionLike, db, } from "./DbAssertions.js";
3
+ export { Factory, type FactoryBuilder, factory } from "./Factory.js";
3
4
  export { Database } from "./TestDatabase.js";
5
+ export { type DbTestUtils, type DbTestUtilsOptions, testUtils, } from "./TestUtils.js";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,KAAK,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACN,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,EAAE,GACF,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,SAAS,GACT,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { truncateAll, useTransaction } from "./DatabaseCleanup.js";
2
- export { factory } from "./Factory.js";
2
+ export { createDbAssertions, db, } from "./DbAssertions.js";
3
+ export { Factory, factory } from "./Factory.js";
3
4
  export { Database } from "./TestDatabase.js";
5
+ export { testUtils, } from "./TestUtils.js";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAuB,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACN,kBAAkB,EAGlB,EAAE,GACF,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAuB,OAAO,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAGN,SAAS,GACT,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `@c9up/atlas/types/relations` — Adonis Lucid `@adonisjs/lucid/types/relations`
3
+ * parity subpath.
4
+ *
5
+ * Lucid declares relation properties as `declare posts: HasMany<typeof Post>`.
6
+ * Atlas declares them as the plain related shape (`declare posts: Post[]`), so
7
+ * these helpers simply RESOLVE to that shape — a Lucid-style declaration
8
+ * type-checks against atlas's decorators and hydration unchanged:
9
+ *
10
+ * import type { HasMany, BelongsTo } from '@c9up/atlas/types/relations'
11
+ *
12
+ * class Post extends BaseModel {
13
+ * @belongsTo(() => User) declare author: BelongsTo<typeof User>
14
+ * }
15
+ * class User extends BaseModel {
16
+ * @hasMany(() => Post) declare posts: HasMany<typeof Post>
17
+ * }
18
+ */
19
+ /** A `hasOne` related row, or `null` when absent (resolves to `InstanceType<Related>`). */
20
+ export type HasOne<Related extends new (...args: never[]) => unknown> = InstanceType<Related> | null;
21
+ /** A `belongsTo` owner row, or `null` when absent. */
22
+ export type BelongsTo<Related extends new (...args: never[]) => unknown> = InstanceType<Related> | null;
23
+ /** A `hasMany` collection. */
24
+ export type HasMany<Related extends new (...args: never[]) => unknown> = Array<InstanceType<Related>>;
25
+ /** A `manyToMany` collection. */
26
+ export type ManyToMany<Related extends new (...args: never[]) => unknown> = Array<InstanceType<Related>>;
27
+ /** A `hasOneThrough` related row, or `null` when absent. */
28
+ export type HasOneThrough<Related extends new (...args: never[]) => unknown> = InstanceType<Related> | null;
29
+ /** A `hasManyThrough` collection. */
30
+ export type HasManyThrough<Related extends new (...args: never[]) => unknown> = Array<InstanceType<Related>>;
31
+ //# sourceMappingURL=relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/types/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,2FAA2F;AAC3F,MAAM,MAAM,MAAM,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IACnE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE9B,sDAAsD;AACtD,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IACtE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE9B,8BAA8B;AAC9B,MAAM,MAAM,OAAO,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAAI,KAAK,CAC7E,YAAY,CAAC,OAAO,CAAC,CACrB,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IACvE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9B,4DAA4D;AAC5D,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAC1E,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE9B,qCAAqC;AACrC,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAC3E,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `@c9up/atlas/types/relations` — Adonis Lucid `@adonisjs/lucid/types/relations`
3
+ * parity subpath.
4
+ *
5
+ * Lucid declares relation properties as `declare posts: HasMany<typeof Post>`.
6
+ * Atlas declares them as the plain related shape (`declare posts: Post[]`), so
7
+ * these helpers simply RESOLVE to that shape — a Lucid-style declaration
8
+ * type-checks against atlas's decorators and hydration unchanged:
9
+ *
10
+ * import type { HasMany, BelongsTo } from '@c9up/atlas/types/relations'
11
+ *
12
+ * class Post extends BaseModel {
13
+ * @belongsTo(() => User) declare author: BelongsTo<typeof User>
14
+ * }
15
+ * class User extends BaseModel {
16
+ * @hasMany(() => Post) declare posts: HasMany<typeof Post>
17
+ * }
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/types/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "@c9up/atlas",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Atlas — Data Mapper ORM for the Ream framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
9
  "files": [
10
- "AUDIT-migration-templates.md",
11
10
  "LICENSE",
12
11
  "README.md",
13
12
  "db.*.node",
@@ -36,6 +35,26 @@
36
35
  "./testing": {
37
36
  "types": "./dist/testing/index.d.ts",
38
37
  "import": "./dist/testing/index.js"
38
+ },
39
+ "./orm": {
40
+ "types": "./dist/orm.d.ts",
41
+ "import": "./dist/orm.js"
42
+ },
43
+ "./schema": {
44
+ "types": "./dist/lucid-schema.d.ts",
45
+ "import": "./dist/lucid-schema.js"
46
+ },
47
+ "./factories": {
48
+ "types": "./dist/factories.d.ts",
49
+ "import": "./dist/factories.js"
50
+ },
51
+ "./seeders": {
52
+ "types": "./dist/seeders.d.ts",
53
+ "import": "./dist/seeders.js"
54
+ },
55
+ "./types/relations": {
56
+ "types": "./dist/types/relations.d.ts",
57
+ "import": "./dist/types/relations.js"
39
58
  }
40
59
  },
41
60
  "dependencies": {
@@ -43,8 +62,17 @@
43
62
  "@faker-js/faker": "^9",
44
63
  "reflect-metadata": "^0.2"
45
64
  },
65
+ "peerDependencies": {
66
+ "@c9up/helix": "^0.1.0"
67
+ },
68
+ "peerDependenciesMeta": {
69
+ "@c9up/helix": {
70
+ "optional": true
71
+ }
72
+ },
46
73
  "devDependencies": {
47
74
  "@biomejs/biome": "^2.4.10",
75
+ "@c9up/helix": "^0.1.0",
48
76
  "typescript": "^6.0.2",
49
77
  "vitest": "^4.1.2",
50
78
  "@types/node": "^22"