@casekit/orm 0.0.1-alpha.12 → 0.0.1-alpha.14

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 (229) hide show
  1. package/lib/queries/find/buildFind.js +1 -1
  2. package/lib/queries/find/buildFind.js.map +1 -1
  3. package/package.json +13 -3
  4. package/.env +0 -2
  5. package/.eslintrc.cjs +0 -69
  6. package/.github/actions/ci-setup/action.yml +0 -19
  7. package/.github/dependabot.yml +0 -12
  8. package/.github/workflows/ci.yml +0 -119
  9. package/.github/workflows/dependabot.yml +0 -26
  10. package/.github/workflows/semgrep.yml +0 -24
  11. package/.prettierrc.cjs +0 -11
  12. package/.vscode/tasks.json +0 -28
  13. package/codecov.yml +0 -7
  14. package/lib/orm.query.test.d.ts +0 -2
  15. package/lib/orm.query.test.d.ts.map +0 -1
  16. package/lib/orm.query.test.js +0 -22
  17. package/lib/orm.query.test.js.map +0 -1
  18. package/src/Connection.ts +0 -65
  19. package/src/errors.ts +0 -18
  20. package/src/index.ts +0 -16
  21. package/src/logger.ts +0 -3
  22. package/src/migrate/commands/implode.ts +0 -46
  23. package/src/migrate/index.ts +0 -1
  24. package/src/migrate/migrator.ts +0 -24
  25. package/src/migrate/sql/createExtensionsSql.test.ts +0 -26
  26. package/src/migrate/sql/createExtensionsSql.ts +0 -16
  27. package/src/migrate/sql/createForeignKeyConstraintSql.test.ts +0 -50
  28. package/src/migrate/sql/createForeignKeyConstraintSql.ts +0 -44
  29. package/src/migrate/sql/createSchemasSql.test.ts +0 -81
  30. package/src/migrate/sql/createSchemasSql.ts +0 -15
  31. package/src/migrate/sql/createTableSql.properties.ts +0 -38
  32. package/src/migrate/sql/createTableSql.test.ts +0 -74
  33. package/src/migrate/sql/createTableSql.ts +0 -53
  34. package/src/migrate/sql/createUniqueConstraintSql.ts +0 -27
  35. package/src/migrate/sql/dropSchemasSql.ts +0 -15
  36. package/src/migrate/sql/dropTableSql.ts +0 -13
  37. package/src/orm.query.test.ts +0 -28
  38. package/src/orm.ts +0 -370
  39. package/src/pull/index.ts +0 -1
  40. package/src/pull/introspect/getForeignKeys.ts +0 -64
  41. package/src/pull/introspect/getPrimaryKeys.ts +0 -26
  42. package/src/pull/introspect/getTables.ts +0 -51
  43. package/src/pull/introspect/getUniqueConstraints.ts +0 -39
  44. package/src/pull/parse/parseCreateUniqueIndexStatement.test.ts +0 -14
  45. package/src/pull/parse/parseCreateUniqueIndexStatement.ts +0 -19
  46. package/src/pull/pull.ts +0 -78
  47. package/src/pull/render/renderModel.test.ts +0 -144
  48. package/src/pull/render/renderModel.ts +0 -141
  49. package/src/pull/render/renderModelsIndex.ts +0 -24
  50. package/src/pull/render/renderRelations.ts +0 -77
  51. package/src/pull/render/renderRelationsIndex.ts +0 -24
  52. package/src/pull/types/ColumnMeta.ts +0 -10
  53. package/src/pull/types/ForeignKey.ts +0 -6
  54. package/src/pull/types/PrimaryKey.ts +0 -6
  55. package/src/pull/types/UniqueConstraint.ts +0 -8
  56. package/src/pull/util/format.ts +0 -17
  57. package/src/pull/util/quote.ts +0 -7
  58. package/src/pull/util/unquote.ts +0 -9
  59. package/src/queries/clauses/IncludeClause.ts +0 -39
  60. package/src/queries/clauses/LateralByClause.ts +0 -4
  61. package/src/queries/clauses/ReturningClause.ts +0 -7
  62. package/src/queries/clauses/SelectClause.ts +0 -7
  63. package/src/queries/clauses/WhereClause.ts +0 -16
  64. package/src/queries/clauses/helpers/OptionalColumn.ts +0 -18
  65. package/src/queries/clauses/helpers/OptionalParams.ts +0 -14
  66. package/src/queries/clauses/helpers/RequiredColumn.ts +0 -8
  67. package/src/queries/clauses/helpers/RequiredParams.ts +0 -14
  68. package/src/queries/clauses/include/IncludedRelationModel.ts +0 -13
  69. package/src/queries/clauses/include/IncludedRelationName.ts +0 -11
  70. package/src/queries/clauses/include/IncludedRelationQuery.ts +0 -20
  71. package/src/queries/clauses/where/buildWhereClause.ts +0 -121
  72. package/src/queries/clauses/where/buildWhereClauses.test.ts +0 -145
  73. package/src/queries/clauses/where/buildWhereClauses.ts +0 -45
  74. package/src/queries/clauses/where/operators.ts +0 -13
  75. package/src/queries/clauses/where/types/WhereClauseValue.ts +0 -39
  76. package/src/queries/count/buildCount.ts +0 -77
  77. package/src/queries/count/countToSql.ts +0 -66
  78. package/src/queries/count/tests/count.test.ts +0 -35
  79. package/src/queries/count/types/BaseCountParams.ts +0 -11
  80. package/src/queries/count/types/CountBuilder.ts +0 -45
  81. package/src/queries/count/types/CountParams.ts +0 -27
  82. package/src/queries/count.ts +0 -33
  83. package/src/queries/create/buildCreate.ts +0 -67
  84. package/src/queries/create/createResultSchema.ts +0 -24
  85. package/src/queries/create/createToSql.ts +0 -44
  86. package/src/queries/create/tests/createMany.varied-keys.test.ts +0 -28
  87. package/src/queries/create/tests/createOne.test-d.ts +0 -116
  88. package/src/queries/create/tests/createOne.test.ts +0 -197
  89. package/src/queries/create/types/BaseCreateManyParams.ts +0 -7
  90. package/src/queries/create/types/BaseCreateOneParams.ts +0 -7
  91. package/src/queries/create/types/CreateManyParams.ts +0 -15
  92. package/src/queries/create/types/CreateManyResult.ts +0 -17
  93. package/src/queries/create/types/CreateOneParams.ts +0 -22
  94. package/src/queries/create/types/CreateOneResult.ts +0 -17
  95. package/src/queries/createMany.ts +0 -38
  96. package/src/queries/createOne.ts +0 -27
  97. package/src/queries/delete/buildDelete.ts +0 -56
  98. package/src/queries/delete/deleteResultSchema.ts +0 -23
  99. package/src/queries/delete/deleteToSql.ts +0 -48
  100. package/src/queries/delete/tests/deleteOne.test.ts +0 -108
  101. package/src/queries/delete/types/BaseDeleteParams.ts +0 -9
  102. package/src/queries/delete/types/DeleteManyResult.ts +0 -16
  103. package/src/queries/delete/types/DeleteOneResult.ts +0 -16
  104. package/src/queries/delete/types/DeleteParams.ts +0 -12
  105. package/src/queries/deleteMany.ts +0 -33
  106. package/src/queries/deleteOne.ts +0 -32
  107. package/src/queries/find/buildFind.ts +0 -138
  108. package/src/queries/find/findResultSchema.ts +0 -32
  109. package/src/queries/find/findToSql.test.ts +0 -123
  110. package/src/queries/find/findToSql.ts +0 -141
  111. package/src/queries/find/getIncludedManyToManyRelations.ts +0 -49
  112. package/src/queries/find/getIncludedOneToManyRelations.ts +0 -44
  113. package/src/queries/find/tests/findMany.include.test.ts +0 -107
  114. package/src/queries/find/tests/findMany.limit.test-d.ts +0 -75
  115. package/src/queries/find/tests/findMany.limit.test.ts +0 -176
  116. package/src/queries/find/tests/findMany.nullable-relations.test.ts +0 -127
  117. package/src/queries/find/tests/findMany.orderBy.test-d.ts +0 -84
  118. package/src/queries/find/tests/findMany.orderBy.test.ts +0 -184
  119. package/src/queries/find/tests/findMany.select.test-d.ts +0 -117
  120. package/src/queries/find/tests/findMany.select.test.ts +0 -188
  121. package/src/queries/find/tests/findMany.too-deep.test-d.ts +0 -154
  122. package/src/queries/find/tests/findMany.where.test-d.ts +0 -85
  123. package/src/queries/find/tests/findMany.where.test.ts +0 -76
  124. package/src/queries/find/tests/middleware.find.where.test.ts +0 -467
  125. package/src/queries/find/types/BaseFindParams.ts +0 -18
  126. package/src/queries/find/types/FindBuilder.ts +0 -73
  127. package/src/queries/find/types/FindManyParams.ts +0 -24
  128. package/src/queries/find/types/FindManyResult.ts +0 -13
  129. package/src/queries/find/types/FindOneParams.ts +0 -17
  130. package/src/queries/find/types/FindOneResult.ts +0 -50
  131. package/src/queries/findMany.ts +0 -134
  132. package/src/queries/findOne.ts +0 -30
  133. package/src/queries/middleware/Middleware.ts +0 -53
  134. package/src/queries/middleware/ValuesMiddleware.ts +0 -9
  135. package/src/queries/middleware/WhereMiddleware.ts +0 -16
  136. package/src/queries/update/buildUpdate.ts +0 -76
  137. package/src/queries/update/tests/updateOne.test.ts +0 -118
  138. package/src/queries/update/types/BaseUpdateParams.ts +0 -10
  139. package/src/queries/update/types/UpdateManyResult.ts +0 -16
  140. package/src/queries/update/types/UpdateOneResult.ts +0 -16
  141. package/src/queries/update/types/UpdateParams.ts +0 -14
  142. package/src/queries/update/types/UpdateValues.ts +0 -12
  143. package/src/queries/update/updateResultSchema.ts +0 -23
  144. package/src/queries/update/updateToSql.ts +0 -43
  145. package/src/queries/updateMany.ts +0 -33
  146. package/src/queries/updateOne.ts +0 -33
  147. package/src/queries/util/hasConditions.test.ts +0 -36
  148. package/src/queries/util/hasConditions.ts +0 -14
  149. package/src/queries/util/rowToObject.test.ts +0 -76
  150. package/src/queries/util/rowToObject.ts +0 -13
  151. package/src/queries/util/tableAlias.test.ts +0 -20
  152. package/src/queries/util/tableAlias.ts +0 -10
  153. package/src/schema/populate/composeMiddleware.ts +0 -51
  154. package/src/schema/populate/populateConfiguration.ts +0 -48
  155. package/src/schema/populate/populateModel.ts +0 -98
  156. package/src/schema/populate/suggestedColumnSchema.ts +0 -62
  157. package/src/schema/types/base/BaseColumn.ts +0 -10
  158. package/src/schema/types/base/BaseConfiguration.ts +0 -14
  159. package/src/schema/types/base/BaseModel.ts +0 -12
  160. package/src/schema/types/base/BaseModels.ts +0 -3
  161. package/src/schema/types/base/BaseOrm.ts +0 -8
  162. package/src/schema/types/base/BaseRelation.ts +0 -19
  163. package/src/schema/types/base/BaseRelations.ts +0 -3
  164. package/src/schema/types/constraints/ForeignKey.ts +0 -13
  165. package/src/schema/types/constraints/UniqueConstraint.ts +0 -9
  166. package/src/schema/types/helpers/ColumnName.ts +0 -6
  167. package/src/schema/types/helpers/ColumnType.ts +0 -23
  168. package/src/schema/types/helpers/Columns.ts +0 -3
  169. package/src/schema/types/helpers/HasDefault.ts +0 -11
  170. package/src/schema/types/helpers/IsNullable.ts +0 -7
  171. package/src/schema/types/helpers/IsProvided.ts +0 -8
  172. package/src/schema/types/helpers/IsSerial.ts +0 -10
  173. package/src/schema/types/helpers/ModelName.ts +0 -6
  174. package/src/schema/types/loose/LooseColumnDefinition.ts +0 -80
  175. package/src/schema/types/loose/LooseModelDefinition.ts +0 -47
  176. package/src/schema/types/loose/LooseModelDefinitions.ts +0 -3
  177. package/src/schema/types/loose/LooseRelationDefinition.ts +0 -10
  178. package/src/schema/types/loose/LooseRelationsDefinition.ts +0 -8
  179. package/src/schema/types/loose/LooseRelationsDefinitions.ts +0 -7
  180. package/src/schema/types/postgres/DataType.ts +0 -65
  181. package/src/schema/types/relations/ManyToManyRelation.ts +0 -15
  182. package/src/schema/types/relations/ManyToOneRelation.ts +0 -14
  183. package/src/schema/types/relations/OneToManyRelation.ts +0 -12
  184. package/src/schema/types/strict/ColumnDefinition.ts +0 -81
  185. package/src/schema/types/strict/ModelDefinition.ts +0 -47
  186. package/src/schema/types/strict/ModelDefinitions.ts +0 -3
  187. package/src/schema/types/strict/RelationDefinition.ts +0 -13
  188. package/src/schema/types/strict/RelationsDefinition.ts +0 -8
  189. package/src/schema/types/strict/RelationsDefinitions.ts +0 -7
  190. package/src/schema/validate/validateConfiguration.ts +0 -9
  191. package/src/schema/validate/validateModel.ts +0 -32
  192. package/src/sql/SQLStatement.test.ts +0 -112
  193. package/src/sql/SQLStatement.ts +0 -86
  194. package/src/sql/index.ts +0 -2
  195. package/src/sql/sql.ts +0 -47
  196. package/src/test/db/index.ts +0 -27
  197. package/src/test/db/models/foo.model.ts +0 -24
  198. package/src/test/db/models/foo.relations.ts +0 -4
  199. package/src/test/db/models/post.model.ts +0 -34
  200. package/src/test/db/models/post.relations.ts +0 -21
  201. package/src/test/db/models/tenant.model.ts +0 -14
  202. package/src/test/db/models/tenant.relations.ts +0 -22
  203. package/src/test/db/models/tenantUser.model.ts +0 -23
  204. package/src/test/db/models/tenantUser.relations.ts +0 -15
  205. package/src/test/db/models/user.model.ts +0 -29
  206. package/src/test/db/models/user.relations.ts +0 -38
  207. package/src/test/db/models.ts +0 -15
  208. package/src/test/db/relations.ts +0 -13
  209. package/src/test/gen/column.ts +0 -39
  210. package/src/test/gen/index.ts +0 -2
  211. package/src/test/gen/model.ts +0 -58
  212. package/src/test/gen/sqldate.ts +0 -8
  213. package/src/test/globalSetup.ts +0 -6
  214. package/src/test/seed/index.ts +0 -75
  215. package/src/test/util/withRollback.ts +0 -18
  216. package/src/test/util/withTransaction.ts +0 -19
  217. package/src/types/ColumnName.ts +0 -6
  218. package/src/types/ColumnType.ts +0 -20
  219. package/src/types/Configuration.ts +0 -21
  220. package/src/types/ModelType.ts +0 -20
  221. package/src/types/util/DeepRequired.ts +0 -7
  222. package/src/types/util/DisallowExtraKeys.ts +0 -5
  223. package/src/types/util/NonEmptyArray.ts +0 -1
  224. package/src/types/util/Simplify.ts +0 -8
  225. package/src/util/ensureArray.ts +0 -4
  226. package/src/util/interleave.test.ts +0 -35
  227. package/src/util/interleave.ts +0 -8
  228. package/tsconfig.json +0 -18
  229. package/vitest.config.ts +0 -15
@@ -90,7 +90,7 @@ export const buildFind = (config, m, query, path = [], _tableIndex = 0) => {
90
90
  if (query.orderBy) {
91
91
  builder.orderBy = query.orderBy.map((o) => ({
92
92
  table: alias,
93
- column: Array.isArray(o) ? o[0] : o,
93
+ column: model.columns[Array.isArray(o) ? o[0] : o].name,
94
94
  direction: Array.isArray(o) ? o[1] : "asc",
95
95
  }));
96
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildFind.js","sourceRoot":"","sources":["../../../src/queries/find/buildFind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,MAAM,CAAC,MAAM,SAAS,GAAG,CACrB,MAAyB,EACzB,CAAS,EACT,KAAqB,EACrB,OAAiB,EAAE,EACnB,WAAW,GAAG,CAAC,EACJ,EAAE;IACb,MAAM,OAAO,GAAgB;QACzB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAClC,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;gBAChC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;oBACtC,MAAM;oBACN,KAAK,EAAE,CAAC;iBACX,CAAC;gBACJ,CAAC,CAAC,KAAK,CAAC,KAAK;YACjB,KAAK,EAAE,EAAE;SACZ;QACD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,UAAU,EAAE,WAAW;KAC1B,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,sDAAsD;IACtD,sDAAsD;IACtD,+BAA+B;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC;QAChB,GAAG,KAAK,CAAC,MAAM;QACf,GAAG,KAAK,CAAC,UAAU;QACnB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;KACzD,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,KAAK,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,EAAE;YAC/B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;SACrB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,SAAS,CACzB,MAAM,EACN,QAAQ,CAAC,KAAK,EACd,QAAS,EACT,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EACZ,OAAO,CAAC,UAAU,EAAE,CACvB,CAAC;YACF,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CACpB;gBACI,IAAI,EAAE;oBACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;oBAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;oBAC7B,KAAK;oBACL,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/B;iBACJ;gBACD,EAAE,EAAE;oBACA,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACrC;iBACJ;gBACD,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBAC1C,KAAK,EAAE,WAAW,CAAC,KAAK;aAC3B,EACD,GAAG,WAAW,CAAC,KAAK,CACvB,CAAC;YACF,kCAAkC;YAClC,8CAA8C;YAC9C,mDAAmD;YACnD,sCAAsC;YACtC,mDAAmD;YACnD,iBAAiB;YACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,CAAC,SAAS,GAAG;YAChB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5C,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI;gBAClC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI;gBAChC,MAAM;aACT,CAAC,CAAC;SACN,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;SAC7C,CAAC,CAAC,CAAC;IACR,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"buildFind.js","sourceRoot":"","sources":["../../../src/queries/find/buildFind.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,20 @@
1
1
  {
2
2
  "name": "@casekit/orm",
3
- "version": "0.0.1-alpha.12",
3
+ "version": "0.0.1-alpha.14",
4
4
  "description": "A simple ORM",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
- "types": "lib/index.d.js",
7
+ "types": "lib/index.d.ts",
8
+ "exports": {
9
+ ".": "./lib/index.js"
10
+ },
11
+ "files": [
12
+ "./lib/*",
13
+ "!./lib/**.test.js",
14
+ "!./lib/**.test.js.map",
15
+ "!./lib/**.test.d.ts",
16
+ "!./lib/**.test.d.ts.map"
17
+ ],
8
18
  "keywords": [],
9
19
  "author": "",
10
20
  "license": "ISC",
@@ -37,7 +47,7 @@
37
47
  "object-hash": "^3.0.0",
38
48
  "pg": "^8.11.5",
39
49
  "pg-format": "^1.0.4",
40
- "pino": "^8.20.0",
50
+ "pino": "^9.0.0",
41
51
  "pluralize": "^8.0.0",
42
52
  "prettier": "^3.2.5",
43
53
  "ts-toolbelt": "^9.6.0",
package/.env DELETED
@@ -1,2 +0,0 @@
1
- PGDATABASE=orm
2
- PGPASSWORD=password
package/.eslintrc.cjs DELETED
@@ -1,69 +0,0 @@
1
- /** @type {import('eslint').Linter.Config} */
2
- module.exports = {
3
- root: true,
4
- parserOptions: {
5
- ecmaVersion: "latest",
6
- sourceType: "module",
7
- ecmaFeatures: {
8
- jsx: true,
9
- },
10
- },
11
- env: {
12
- browser: true,
13
- commonjs: true,
14
- es6: true,
15
- },
16
-
17
- // Base config
18
- extends: ["eslint:recommended"],
19
-
20
- ignorePatterns: ["vitest.config.ts"],
21
-
22
- overrides: [
23
- // Typescript
24
- {
25
- files: ["**/*.{ts,tsx}"],
26
- plugins: ["@typescript-eslint", "import"],
27
- parser: "@typescript-eslint/parser",
28
- parserOptions: {
29
- project: "./tsconfig.json",
30
- tsconfigRootDir: "./",
31
- },
32
- settings: {
33
- "import/internal-regex": "^~/",
34
- "import/resolver": {
35
- node: {
36
- extensions: [".ts", ".tsx"],
37
- },
38
- typescript: {
39
- alwaysTryTypes: true,
40
- },
41
- },
42
- },
43
- extends: [
44
- "plugin:@typescript-eslint/recommended",
45
- "plugin:import/recommended",
46
- "plugin:import/typescript",
47
- ],
48
- rules: {
49
- "@typescript-eslint/no-unused-vars": [
50
- "error",
51
- {
52
- argsIgnorePattern: "^_",
53
- varsIgnorePattern: "^_",
54
- caughtErrorsIgnorePattern: "^_",
55
- },
56
- ],
57
- "@typescript-eslint/no-floating-promises": "error",
58
- },
59
- },
60
-
61
- // Node
62
- {
63
- files: [".eslintrc.cjs"],
64
- env: {
65
- node: true,
66
- },
67
- },
68
- ],
69
- };
@@ -1,19 +0,0 @@
1
- name: CI setup
2
- runs:
3
- using: composite
4
- steps:
5
- - uses: pnpm/action-setup@v3
6
- name: Install pnpm
7
- with:
8
- version: 8
9
- run_install: false
10
-
11
- - uses: actions/setup-node@v4
12
- with:
13
- node-version: 21
14
- cache: pnpm
15
- registry-url: "https://registry.npmjs.org"
16
-
17
- - name: Install dependencies
18
- run: pnpm install
19
- shell: bash
@@ -1,12 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "npm"
4
- directory: "/"
5
- open-pull-requests-limit: 25
6
- schedule:
7
- interval: "daily"
8
- - package-ecosystem: "github-actions"
9
- directory: "/"
10
- open-pull-requests-limit: 25
11
- schedule:
12
- interval: "daily"
@@ -1,119 +0,0 @@
1
- name: CI
2
- on:
3
- push:
4
- branches: [main]
5
- pull_request:
6
- branches: [main]
7
- permissions:
8
- contents: write
9
-
10
- jobs:
11
- test:
12
- name: "🧪 Run tests"
13
- timeout-minutes: 10
14
- runs-on: ubuntu-latest
15
- env:
16
- PGUSER: casekit
17
- PGPASSWORD: password
18
- PGDATABASE: orm
19
- services:
20
- postgres:
21
- image: postgres
22
- env:
23
- POSTGRES_USER: ${{ env.PGUSER }}
24
- POSTGRES_PASSWORD: ${{ env.PGPASSWORD }}
25
- POSTGRES_DB: ${{ env.PGDATABASE }}
26
- options: >-
27
- --health-cmd pg_isready
28
- --health-interval 10s
29
- --health-timeout 5s
30
- --health-retries 5
31
- ports:
32
- - 5432:5432
33
- steps:
34
- - uses: actions/checkout@v4
35
- - uses: ./.github/actions/ci-setup
36
-
37
- - name: Run tests
38
- run: pnpm test:coverage
39
-
40
- - name: Upload coverage reports to Codecov
41
- uses: codecov/codecov-action@v4.3.0
42
- if: ${{ github.actor != 'dependabot[bot]' }}
43
- with:
44
- token: ${{ secrets.CODECOV_TOKEN }}
45
- slug: casekit/orm
46
-
47
- typecheck:
48
- name: "📐 Typecheck"
49
- timeout-minutes: 10
50
- runs-on: ubuntu-latest
51
- steps:
52
- - uses: actions/checkout@v4
53
- - uses: ./.github/actions/ci-setup
54
- - name: Typecheck
55
- run: pnpm typecheck
56
-
57
- lint:
58
- name: "🧹 Run eslint"
59
- timeout-minutes: 10
60
- runs-on: ubuntu-latest
61
- steps:
62
- - uses: actions/checkout@v4
63
- - uses: ./.github/actions/ci-setup
64
- - name: Lint
65
- run: pnpm lint
66
-
67
- prettier:
68
- name: "💅 Run prettier"
69
- timeout-minutes: 10
70
- runs-on: ubuntu-latest
71
- steps:
72
- - uses: actions/checkout@v4
73
- - uses: ./.github/actions/ci-setup
74
- - name: Prettier
75
- run: pnpm prettier
76
-
77
- publish:
78
- name: "🔥 Publish"
79
- needs: [test, typecheck, lint, prettier]
80
- runs-on: ubuntu-latest
81
- if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
82
- steps:
83
- - uses: actions/checkout@v4
84
- - name: Set up Git config
85
- run: |
86
- git config user.name "$(git log -n 1 --pretty=format:%an)"
87
- git config user.email "$(git log -n 1 --pretty=format:%ae)"
88
- - uses: ./.github/actions/ci-setup
89
- - name: Build
90
- run: pnpm build
91
- - name: Version
92
- run: pnpm version prerelease --preid=alpha
93
- - name: Publish
94
- run: pnpm publish
95
- env:
96
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
97
- - name: Push
98
- run: git push
99
- - name: Push tag
100
- run: git push --tags
101
-
102
- dependabot:
103
- name: "🤖 Dependabot"
104
- needs: [test, typecheck, lint, prettier]
105
- runs-on: ubuntu-latest
106
- if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}}
107
- steps:
108
- - name: Fetch Dependabot metadata
109
- id: dependabot-metadata
110
- uses: dependabot/fetch-metadata@v2
111
- with:
112
- alert-lookup: true
113
- github-token: ${{ secrets.DEPENDABOT_METADATA_PAT }}
114
- - name: Enable auto-merge for Dependabot Security Updates
115
- run: gh pr merge --auto --squash "$PR_URL"
116
- env:
117
- PR_URL: ${{ github.event.pull_request.html_url }}
118
- GITHUB_TOKEN: ${{ secrets.DEPENDABOT_MERGE_PAT }}
119
- if: ${{ steps.dependabot-metadata.outputs.cvss != 0 }}
@@ -1,26 +0,0 @@
1
- name: Dependabot
2
- on:
3
- workflow_dispatch: {}
4
- schedule:
5
- # random HH:MM to avoid a load spike on GitHub Actions at 00:00
6
- - cron: 34 2 * * *
7
- permissions:
8
- contents: write
9
- statuses: read
10
- checks: read
11
- jobs:
12
- merge_prs:
13
- name: "Merge PRs > 1 week old"
14
- runs-on: ubuntu-latest
15
- steps:
16
- - name: Checkout
17
- uses: actions/checkout@v4
18
- - name: Merge PRs
19
- run: |
20
- set -e
21
- # Merge all Dependabot PRs that were created more than a week ago and have all checks passing
22
- for pr in `gh pr list --json number,author,createdAt --search "created:<=$(date -d "2 days ago" +"%Y-%m-%d") author:app/dependabot status:success" --jq '.[].number'`; do
23
- gh pr merge --squash "$pr"
24
- done
25
- env:
26
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,24 +0,0 @@
1
- on:
2
- workflow_dispatch: {}
3
- pull_request: {}
4
- push:
5
- branches:
6
- - main
7
- - master
8
- paths:
9
- - .github/workflows/semgrep.yml
10
- schedule:
11
- # random HH:MM to avoid a load spike on GitHub Actions at 00:00
12
- - cron: 53 8 * * *
13
- name: Semgrep
14
- jobs:
15
- semgrep:
16
- name: semgrep/ci
17
- runs-on: ubuntu-20.04
18
- env:
19
- SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
20
- container:
21
- image: returntocorp/semgrep
22
- steps:
23
- - uses: actions/checkout@v4
24
- - run: semgrep ci
package/.prettierrc.cjs DELETED
@@ -1,11 +0,0 @@
1
- module.exports = {
2
- printWidth: 80,
3
- tabWidth: 4,
4
- trailingComma: "all",
5
- singleQuote: false,
6
- semi: true,
7
- importOrder: ["^@casekit/(.*)$", "^[^.](.*)$", "^[./]"],
8
- importOrderSeparation: true,
9
- importOrderSortSpecifiers: true,
10
- plugins: ["@trivago/prettier-plugin-sort-imports"],
11
- };
@@ -1,28 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "tasks": [
4
- {
5
- "type": "npm",
6
- "script": "build",
7
- "group": "build",
8
- "problemMatcher": [],
9
- "label": "npm: build",
10
- "detail": "rm -rf lib && tsc"
11
- },
12
- {
13
- "type": "npm",
14
- "script": "check:all",
15
- "problemMatcher": [],
16
- "label": "npm: check:all",
17
- "detail": "CI=true pnpm test && CI=true pnpm lint && CI=true pnpm prettier && CI=true pnpm typecheck"
18
- },
19
- {
20
- "type": "npm",
21
- "script": "build",
22
- "group": "build",
23
- "problemMatcher": [],
24
- "label": "npm: build",
25
- "detail": "rm -rf lib && tsc"
26
- }
27
- ]
28
- }
package/codecov.yml DELETED
@@ -1,7 +0,0 @@
1
- coverage:
2
- status:
3
- changes: off
4
- patch: off
5
- project:
6
- default:
7
- informational: true
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=orm.query.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orm.query.test.d.ts","sourceRoot":"","sources":["../src/orm.query.test.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- import { describe, expect, test } from "vitest";
2
- import { db } from "./test/db";
3
- import { seed } from "./test/seed";
4
- describe("orm.query", () => {
5
- test("allows arbitrary sql queries to be run against the database", async () => {
6
- await db.transact(async (db) => {
7
- await seed(db, {
8
- users: [
9
- {
10
- username: "Russell",
11
- tenants: [{ name: "Popova Park", posts: 6 }],
12
- },
13
- ],
14
- });
15
- const result = await db.query `
16
- select count(1)::int as total from casekit.post;
17
- `;
18
- expect(result[0]).toEqual({ total: 6 });
19
- }, { rollback: true });
20
- });
21
- });
22
- //# sourceMappingURL=orm.query.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orm.query.test.js","sourceRoot":"","sources":["../src/orm.query.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,EAAE,CAAC,QAAQ,CACb,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,IAAI,CAAC,EAAE,EAAE;gBACX,KAAK,EAAE;oBACH;wBACI,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;qBAC/C;iBACJ;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAmB;;iBAE/C,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/src/Connection.ts DELETED
@@ -1,65 +0,0 @@
1
- import pg, { QueryResultRow } from "pg";
2
- import pgfmt from "pg-format";
3
- import * as uuid from "uuid";
4
-
5
- import { SQLStatement } from "./sql";
6
-
7
- export class Connection {
8
- constructor(
9
- private pool: pg.Pool,
10
- private client?: pg.PoolClient,
11
- ) {}
12
-
13
- public query = async <T extends QueryResultRow>(query: SQLStatement) => {
14
- if (this.client) {
15
- return this.client.query<T>(query);
16
- } else {
17
- return this.pool.query(query);
18
- }
19
- };
20
-
21
- public transact = async <T>(
22
- fn: (conn: Connection) => Promise<T>,
23
- { rollback = false }: { rollback?: boolean } = {},
24
- ) => {
25
- if (this.client) {
26
- const savepoint = uuid.v4();
27
- try {
28
- await this.client.query(pgfmt("SAVEPOINT %I", savepoint));
29
- const result = await fn(this);
30
- if (rollback) {
31
- await this.client.query(
32
- pgfmt("ROLLBACK TO SAVEPOINT %I", savepoint),
33
- );
34
- } else {
35
- await this.client.query(
36
- pgfmt("RELEASE SAVEPOINT %I", savepoint),
37
- );
38
- }
39
- return result;
40
- } catch (e) {
41
- await this.client.query(
42
- pgfmt("ROLLBACK TO SAVEPOINT %I", savepoint),
43
- );
44
- throw e;
45
- }
46
- } else {
47
- const client = await this.pool.connect();
48
- try {
49
- await client.query("BEGIN");
50
- const result = await fn(new Connection(this.pool, client));
51
- if (rollback) {
52
- await client.query("ROLLBACK");
53
- } else {
54
- await client.query("COMMIT");
55
- }
56
- return result;
57
- } catch (e) {
58
- await client.query("ROLLBACK");
59
- throw e;
60
- } finally {
61
- client.release();
62
- }
63
- }
64
- };
65
- }
package/src/errors.ts DELETED
@@ -1,18 +0,0 @@
1
- import { BaseModel } from "./schema/types/base/BaseModel";
2
-
3
- type OrmErrorMeta = {
4
- model?: [string, BaseModel];
5
- data?: Record<string, unknown>;
6
- };
7
-
8
- export class OrmError extends Error {
9
- meta: OrmErrorMeta | undefined;
10
-
11
- constructor(message: string, meta?: OrmErrorMeta) {
12
- super();
13
- this.message = message;
14
- this.meta = meta;
15
- }
16
- }
17
-
18
- export class InvalidModelDefinitionError extends OrmError {}
package/src/index.ts DELETED
@@ -1,16 +0,0 @@
1
- export { OrmError } from "./errors";
2
- export { migrator, type Migrator } from "./migrate";
3
- export { Orm, orm } from "./orm";
4
- export { pull } from "./pull";
5
- export * from "./queries/clauses/where/operators";
6
- export { type Middleware } from "./queries/middleware/Middleware";
7
- /**
8
- * TODO find a way to use the strict definitions here
9
- * without destroying VS Code autocomplete performance
10
- */
11
- export { type LooseModelDefinition as ModelDefinition } from "./schema/types/loose/LooseModelDefinition";
12
- export { type LooseRelationsDefinition as RelationsDefinition } from "./schema/types/loose/LooseRelationsDefinition";
13
- export { SQLStatement, sql } from "./sql";
14
- export type { ColumnName } from "./types/ColumnName";
15
- export type { ColumnType } from "./types/ColumnType";
16
- export type { ModelType } from "./types/ModelType";
package/src/logger.ts DELETED
@@ -1,3 +0,0 @@
1
- import pino from "pino";
2
-
3
- export const logger = pino({ enabled: process.env.NODE_ENV !== "test" });
@@ -1,46 +0,0 @@
1
- import { BaseOrm } from "../../schema/types/base/BaseOrm";
2
- import { SQLStatement } from "../../sql";
3
- import { createExtensionsSql } from "../sql/createExtensionsSql";
4
- import { createForeignKeyConstraintSql } from "../sql/createForeignKeyConstraintSql";
5
- import { createSchemasSql } from "../sql/createSchemasSql";
6
- import { createTableSql } from "../sql/createTableSql";
7
- import { createUniqueConstraintSql } from "../sql/createUniqueConstraintSql";
8
- import { dropSchemasSql } from "../sql/dropSchemasSql";
9
-
10
- export const implode = async (
11
- db: BaseOrm,
12
- { dryRun, output }: { dryRun: boolean; output: boolean },
13
- ) => {
14
- const statement = new SQLStatement();
15
-
16
- statement.push(dropSchemasSql(db), "\n");
17
- statement.push(createSchemasSql(db), "\n");
18
- statement.push(createExtensionsSql(db), "\n");
19
-
20
- for (const model of Object.values(db.models)) {
21
- statement.push(createTableSql(model), "\n");
22
- for (const constraint of model.uniqueConstraints) {
23
- statement.push(createUniqueConstraintSql(model, constraint), "\n");
24
- }
25
- }
26
-
27
- for (const model of Object.values(db.models)) {
28
- for (const foreignKey of model.foreignKeys) {
29
- statement.push(
30
- createForeignKeyConstraintSql(model, foreignKey),
31
- "\n",
32
- );
33
- }
34
- }
35
-
36
- if (output || process.env.ORM_VERBOSE_LOGGING) console.log(statement.text);
37
-
38
- if (!dryRun) {
39
- try {
40
- await db.connection.query(statement);
41
- } catch (e) {
42
- console.log(e);
43
- throw e;
44
- }
45
- }
46
- };
@@ -1 +0,0 @@
1
- export { type Migrator, migrator } from "./migrator";
@@ -1,24 +0,0 @@
1
- import { Orm } from "..";
2
- import { BaseOrm } from "../schema/types/base/BaseOrm";
3
- import { LooseModelDefinitions } from "../schema/types/loose/LooseModelDefinitions";
4
- import { LooseRelationsDefinitions } from "../schema/types/loose/LooseRelationsDefinitions";
5
- import { implode } from "./commands/implode";
6
-
7
- export class Migrator {
8
- public db: BaseOrm;
9
-
10
- constructor(db: BaseOrm) {
11
- this.db = db;
12
- }
13
-
14
- public async implode(opts = { dryRun: true, output: true }) {
15
- await implode(this.db, opts);
16
- }
17
- }
18
-
19
- export const migrator = <
20
- Models extends LooseModelDefinitions,
21
- Relations extends LooseRelationsDefinitions<Models>,
22
- >(
23
- db: Orm<Models, Relations>,
24
- ) => new Migrator(db as BaseOrm);
@@ -1,26 +0,0 @@
1
- import { unindent } from "@casekit/unindent";
2
-
3
- import pg from "pg";
4
- import { describe, expect, test } from "vitest";
5
-
6
- import { orm } from "../../orm";
7
- import { createExtensionsSql } from "./createExtensionsSql";
8
-
9
- describe("createExtensionsSql", () => {
10
- test("it generates a CREATE EXTENSION command for each extension", () => {
11
- const db = orm({
12
- extensions: ["uuid-ossp", "postgis"],
13
- models: {},
14
- pool: new pg.Pool(),
15
- });
16
- expect(createExtensionsSql(db)?.text).toEqual(unindent`
17
- CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
18
- CREATE EXTENSION IF NOT EXISTS postgis;
19
- `);
20
- });
21
-
22
- test("if no extensions are specified, it returns null", () => {
23
- const db = orm({ models: {}, pool: new pg.Pool() });
24
- expect(createExtensionsSql(db)).toEqual(null);
25
- });
26
- });
@@ -1,16 +0,0 @@
1
- import pgfmt from "pg-format";
2
-
3
- import { BaseOrm } from "../../schema/types/base/BaseOrm";
4
- import { SQLStatement } from "../../sql";
5
-
6
- export const createExtensionsSql = (db: BaseOrm): SQLStatement | null => {
7
- if (db.config.extensions?.length === 0) return null;
8
-
9
- return (
10
- new SQLStatement(
11
- db.config.extensions
12
- ?.map((e) => pgfmt("CREATE EXTENSION IF NOT EXISTS %I;", e))
13
- .join("\n"),
14
- ) ?? null
15
- );
16
- };