@fragno-dev/db 0.1.1 → 0.1.3

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 (222) hide show
  1. package/.turbo/turbo-build.log +196 -137
  2. package/CHANGELOG.md +18 -0
  3. package/LICENSE.md +16 -0
  4. package/dist/adapters/adapters.d.ts +11 -1
  5. package/dist/adapters/adapters.d.ts.map +1 -1
  6. package/dist/adapters/drizzle/drizzle-adapter.d.ts +9 -2
  7. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
  8. package/dist/adapters/drizzle/drizzle-adapter.js +23 -39
  9. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
  10. package/dist/adapters/drizzle/drizzle-query.d.ts.map +1 -1
  11. package/dist/adapters/drizzle/drizzle-query.js +5 -4
  12. package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
  13. package/dist/adapters/drizzle/drizzle-uow-compiler.js +12 -10
  14. package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -1
  15. package/dist/adapters/drizzle/drizzle-uow-decoder.js +14 -4
  16. package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +1 -1
  17. package/dist/adapters/drizzle/drizzle-uow-executor.js +78 -60
  18. package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -1
  19. package/dist/adapters/drizzle/generate.js +111 -37
  20. package/dist/adapters/drizzle/generate.js.map +1 -1
  21. package/dist/adapters/drizzle/shared.js +14 -1
  22. package/dist/adapters/drizzle/shared.js.map +1 -1
  23. package/dist/adapters/kysely/kysely-adapter.d.ts +2 -1
  24. package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
  25. package/dist/adapters/kysely/kysely-adapter.js +25 -30
  26. package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
  27. package/dist/adapters/kysely/kysely-query-builder.js +48 -44
  28. package/dist/adapters/kysely/kysely-query-builder.js.map +1 -1
  29. package/dist/adapters/kysely/kysely-query-compiler.js +2 -2
  30. package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
  31. package/dist/adapters/kysely/kysely-query.js +3 -2
  32. package/dist/adapters/kysely/kysely-query.js.map +1 -1
  33. package/dist/adapters/kysely/kysely-shared.js +18 -0
  34. package/dist/adapters/kysely/kysely-shared.js.map +1 -0
  35. package/dist/adapters/kysely/kysely-uow-compiler.js +4 -3
  36. package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
  37. package/dist/adapters/kysely/migration/execute.js +15 -12
  38. package/dist/adapters/kysely/migration/execute.js.map +1 -1
  39. package/dist/migration-engine/auto-from-schema.js +2 -8
  40. package/dist/migration-engine/auto-from-schema.js.map +1 -1
  41. package/dist/migration-engine/create.d.ts +1 -5
  42. package/dist/migration-engine/create.js +1 -1
  43. package/dist/migration-engine/create.js.map +1 -1
  44. package/dist/migration-engine/generation-engine.d.ts +51 -0
  45. package/dist/migration-engine/generation-engine.d.ts.map +1 -0
  46. package/dist/migration-engine/generation-engine.js +165 -0
  47. package/dist/migration-engine/generation-engine.js.map +1 -0
  48. package/dist/migration-engine/shared.d.ts +5 -2
  49. package/dist/migration-engine/shared.d.ts.map +1 -1
  50. package/dist/migration-engine/shared.js.map +1 -1
  51. package/dist/mod.d.ts +0 -8
  52. package/dist/mod.d.ts.map +1 -1
  53. package/dist/mod.js +0 -32
  54. package/dist/mod.js.map +1 -1
  55. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/alias.js +77 -0
  56. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/alias.js.map +1 -0
  57. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/casing.js +49 -0
  58. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/casing.js.map +1 -0
  59. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/column-builder.js +1 -1
  60. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column-builder.js.map +1 -0
  61. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/column.js +1 -1
  62. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column.js.map +1 -0
  63. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/entity.js +1 -1
  64. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/entity.js.map +1 -0
  65. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/errors.js +21 -0
  66. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/errors.js.map +1 -0
  67. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/pg-core/columns/common.js +1 -1
  68. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/common.js.map +1 -0
  69. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/pg-core/columns/enum.js +1 -1
  70. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/enum.js.map +1 -0
  71. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/pg-core/foreign-keys.js +1 -1
  72. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +1 -0
  73. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/pg-core/unique-constraint.js +1 -1
  74. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +1 -0
  75. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/pg-core/utils/array.js +1 -1
  76. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/utils/array.js.map +1 -0
  77. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-builders/query-builder.js +14 -0
  78. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-builders/query-builder.js.map +1 -0
  79. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-promise.js +26 -0
  80. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-promise.js.map +1 -0
  81. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/relations.js +127 -0
  82. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/relations.js.map +1 -0
  83. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/selection-proxy.js +47 -0
  84. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/selection-proxy.js.map +1 -0
  85. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/sql/expressions/conditions.js +20 -2
  86. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/conditions.js.map +1 -0
  87. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/select.js +13 -0
  88. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/select.js.map +1 -0
  89. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/functions/aggregate.js +10 -0
  90. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/functions/aggregate.js.map +1 -0
  91. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/sql/sql.js +1 -1
  92. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/sql.js.map +1 -0
  93. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/columns/common.js +60 -0
  94. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +1 -0
  95. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/db.js +269 -0
  96. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/db.js.map +1 -0
  97. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/dialect.js +457 -0
  98. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/dialect.js.map +1 -0
  99. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/foreign-keys.js +68 -0
  100. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +1 -0
  101. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/count.js +41 -0
  102. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +1 -0
  103. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js +119 -0
  104. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +1 -0
  105. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js +170 -0
  106. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +1 -0
  107. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js +75 -0
  108. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +1 -0
  109. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query.js +107 -0
  110. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +1 -0
  111. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js +37 -0
  112. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +1 -0
  113. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/select.js +621 -0
  114. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +1 -0
  115. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/update.js +170 -0
  116. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +1 -0
  117. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/table.js +20 -0
  118. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/table.js.map +1 -0
  119. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/unique-constraint.js +48 -0
  120. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +1 -0
  121. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/utils.js +17 -0
  122. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/utils.js.map +1 -0
  123. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/view-base.js +11 -0
  124. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/view-base.js.map +1 -0
  125. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/subquery.js +2 -2
  126. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/subquery.js.map +1 -0
  127. package/dist/node_modules/{.bun/drizzle-orm@0.44.6_4fae081eecb963e2 → .pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8}/node_modules/drizzle-orm/table.js +8 -2
  128. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.js.map +1 -0
  129. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js +6 -0
  130. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js.map +1 -0
  131. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js +8 -0
  132. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js.map +1 -0
  133. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js +8 -0
  134. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js.map +1 -0
  135. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/utils.js +53 -0
  136. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/utils.js.map +1 -0
  137. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js +6 -0
  138. package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js.map +1 -0
  139. package/dist/query/condition-builder.js.map +1 -1
  140. package/dist/query/result-transform.js +2 -1
  141. package/dist/query/result-transform.js.map +1 -1
  142. package/dist/schema/create.d.ts +74 -16
  143. package/dist/schema/create.d.ts.map +1 -1
  144. package/dist/schema/create.js +76 -11
  145. package/dist/schema/create.js.map +1 -1
  146. package/dist/schema/serialize.js +3 -0
  147. package/dist/schema/serialize.js.map +1 -1
  148. package/dist/shared/settings-schema.js +36 -0
  149. package/dist/shared/settings-schema.js.map +1 -0
  150. package/dist/util/import-generator.js.map +1 -1
  151. package/dist/util/parse.js.map +1 -1
  152. package/package.json +20 -23
  153. package/src/adapters/adapters.ts +10 -3
  154. package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +11 -7
  155. package/src/adapters/drizzle/drizzle-adapter-sqlite.test.ts +585 -0
  156. package/src/adapters/drizzle/drizzle-adapter.test.ts +78 -30
  157. package/src/adapters/drizzle/drizzle-adapter.ts +38 -78
  158. package/src/adapters/drizzle/drizzle-query.ts +6 -9
  159. package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +10 -4
  160. package/src/adapters/drizzle/drizzle-uow-compiler.ts +12 -6
  161. package/src/adapters/drizzle/drizzle-uow-decoder.ts +22 -5
  162. package/src/adapters/drizzle/drizzle-uow-executor.ts +156 -116
  163. package/src/adapters/drizzle/generate.test.ts +582 -159
  164. package/src/adapters/drizzle/generate.ts +196 -41
  165. package/src/adapters/drizzle/migrate-drizzle.test.ts +30 -6
  166. package/src/adapters/drizzle/shared.ts +31 -1
  167. package/src/adapters/drizzle/test-utils.ts +3 -1
  168. package/src/adapters/kysely/kysely-adapter-pglite.test.ts +25 -27
  169. package/src/adapters/kysely/kysely-adapter.ts +35 -58
  170. package/src/adapters/kysely/kysely-query-builder.ts +75 -44
  171. package/src/adapters/kysely/kysely-query-compiler.ts +3 -1
  172. package/src/adapters/kysely/kysely-query.ts +8 -2
  173. package/src/adapters/kysely/kysely-shared.ts +23 -0
  174. package/src/adapters/kysely/kysely-uow-compiler.ts +5 -2
  175. package/src/adapters/kysely/migration/execute-mysql.test.ts +2 -2
  176. package/src/adapters/kysely/migration/execute-postgres.test.ts +19 -19
  177. package/src/adapters/kysely/migration/execute.ts +48 -17
  178. package/src/adapters/kysely/migration/kysely-migrator.test.ts +19 -37
  179. package/src/fragment.test.ts +1 -0
  180. package/src/migration-engine/auto-from-schema.ts +14 -18
  181. package/src/migration-engine/create.ts +1 -6
  182. package/src/migration-engine/generation-engine.test.ts +597 -0
  183. package/src/migration-engine/generation-engine.ts +356 -0
  184. package/src/migration-engine/shared.ts +1 -4
  185. package/src/mod.ts +0 -66
  186. package/src/query/condition-builder.ts +24 -8
  187. package/src/query/result-transform.ts +7 -1
  188. package/src/schema/create.test.ts +4 -1
  189. package/src/schema/create.ts +132 -24
  190. package/src/schema/serialize.test.ts +1 -0
  191. package/src/schema/serialize.ts +28 -7
  192. package/src/shared/settings-schema.ts +61 -0
  193. package/src/util/deep-equal.ts +21 -7
  194. package/src/util/import-generator.ts +3 -1
  195. package/src/util/parse.ts +3 -1
  196. package/tsdown.config.ts +1 -0
  197. package/.turbo/turbo-test.log +0 -37
  198. package/.turbo/turbo-types$colon$check.log +0 -1
  199. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js.map +0 -1
  200. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js.map +0 -1
  201. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js.map +0 -1
  202. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js.map +0 -1
  203. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js.map +0 -1
  204. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +0 -1
  205. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +0 -1
  206. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js.map +0 -1
  207. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js.map +0 -1
  208. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js +0 -13
  209. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js.map +0 -1
  210. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js +0 -10
  211. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js.map +0 -1
  212. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js.map +0 -1
  213. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js.map +0 -1
  214. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js.map +0 -1
  215. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js +0 -6
  216. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js.map +0 -1
  217. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js +0 -8
  218. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js.map +0 -1
  219. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js +0 -8
  220. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js.map +0 -1
  221. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js +0 -6
  222. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js.map +0 -1
@@ -151,15 +151,35 @@ export interface Table<
151
151
  getVersionColumn: () => AnyColumn;
152
152
  }
153
153
 
154
- type DefaultFunctionMap = {
155
- date: "now";
156
- timestamp: "now";
157
- string: "auto";
158
- } & Record<`varchar(${number})`, "auto">;
154
+ type DBSpecial = { tag: "special"; value: "now" };
155
+ type RuntimeSpecial = { tag: "special"; value: "cuid" | "now" };
159
156
 
160
- type DefaultFunction<TType extends keyof TypeMap> =
161
- | (TType extends keyof DefaultFunctionMap ? DefaultFunctionMap[TType] : never)
162
- | (() => TypeMap[TType]);
157
+ /**
158
+ * Builder for database-level default values.
159
+ */
160
+ export interface DefaultBuilder {
161
+ /** Database-generated timestamp (DEFAULT NOW()) */
162
+ now(): DBSpecial;
163
+ }
164
+
165
+ /**
166
+ * Builder for runtime-generated default values.
167
+ */
168
+ export interface RuntimeDefaultBuilder {
169
+ /** Generate CUID identifier */
170
+ cuid(): RuntimeSpecial;
171
+ /** Generate current timestamp */
172
+ now(): RuntimeSpecial;
173
+ }
174
+
175
+ const defaultBuilder: DefaultBuilder = {
176
+ now: () => ({ tag: "special", value: "now" }),
177
+ };
178
+
179
+ const runtimeDefaultBuilder: RuntimeDefaultBuilder = {
180
+ cuid: () => ({ tag: "special", value: "cuid" }),
181
+ now: () => ({ tag: "special", value: "now" }),
182
+ };
163
183
 
164
184
  type IdColumnType = `varchar(${number})`;
165
185
 
@@ -188,9 +208,8 @@ export class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown>
188
208
 
189
209
  default?:
190
210
  | { value: TypeMap[TType] }
191
- | {
192
- runtime: DefaultFunction<TType>;
193
- };
211
+ | { dbSpecial: "now" }
212
+ | { runtime: "cuid" | "now" | (() => TypeMap[TType]) };
194
213
 
195
214
  tableName: string = "";
196
215
 
@@ -214,25 +233,99 @@ export class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown>
214
233
  }
215
234
 
216
235
  /**
217
- * Generate default value on runtime
236
+ * Generate default value at runtime in application code (not in the database).
237
+ *
238
+ * Use this when you need values generated in your application code, either because:
239
+ * - Your database doesn't support the operation (e.g., generating CUIDs)
240
+ * - You want consistent behavior across all databases
241
+ * - You need custom generation logic
242
+ *
243
+ * @param value - Either a literal value or builder callback:
244
+ * - Literal: Any static value of the column type
245
+ * - `(b) => b.cuid()` - Generate a CUID identifier
246
+ * - `(b) => b.now()` - Generate current timestamp
247
+ * - `(b) => ...` - Custom function that returns the default value
248
+ *
249
+ * @example
250
+ * ```ts
251
+ * column("string").defaultTo$((b) => b.cuid()) // Generate CUID at runtime
252
+ * column("timestamp").defaultTo$((b) => b.now()) // Generate timestamp at runtime
253
+ * column("integer").defaultTo$(42) // Static literal
254
+ * column("integer").defaultTo$((b) => Math.floor(Math.random() * 100)) // Custom function
255
+ * ```
218
256
  */
219
- defaultTo$(fn: DefaultFunction<TType>): Column<TType, TIn | null, TOut> {
220
- this.default = { runtime: fn };
257
+ defaultTo$(
258
+ value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType]),
259
+ ): Column<TType, TIn | null, TOut> {
260
+ if (typeof value === "function") {
261
+ const fn = value as (builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType];
262
+ const result = fn(runtimeDefaultBuilder);
263
+ if (
264
+ typeof result === "object" &&
265
+ result !== null &&
266
+ "tag" in result &&
267
+ result.tag === "special"
268
+ ) {
269
+ this.default = { runtime: result.value };
270
+ } else {
271
+ // Custom function - we need to wrap the callback to call it again later
272
+ this.default = { runtime: () => fn(runtimeDefaultBuilder) as TypeMap[TType] };
273
+ }
274
+ } else {
275
+ // Direct literal value - wrap it in a function for runtime generation
276
+ this.default = { runtime: () => value };
277
+ }
221
278
  return this;
222
279
  }
223
280
 
224
281
  /**
225
- * Set a database-level default value
282
+ * Set a database-level default value (generated by the database, not application code).
283
+ *
284
+ * The database will generate the default value when inserting rows. If the database
285
+ * doesn't support the operation, Fragno will fall back to generating the value in
286
+ * application code.
287
+ *
288
+ * @param value - Either a literal value or builder callback:
289
+ * - Literal: Any static value of the column type
290
+ * - `(b) => b.now()` - Database-generated timestamp
226
291
  *
227
- * For schemaless database, it's still generated on runtime
292
+ * @example
293
+ * ```ts
294
+ * // Static defaults
295
+ * column("string").defaultTo("active")
296
+ * column("integer").defaultTo(0)
297
+ * column("boolean").defaultTo(true)
298
+ *
299
+ * // Database-generated timestamp (with fallback)
300
+ * column("timestamp").defaultTo((b) => b.now())
301
+ * ```
228
302
  */
229
- defaultTo(value: TypeMap[TType]): Column<TType, TIn | null, TOut> {
230
- this.default = { value };
303
+ defaultTo(
304
+ value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType]),
305
+ ): Column<TType, TIn | null, TOut> {
306
+ if (typeof value === "function") {
307
+ const fn = value as (builder: DefaultBuilder) => DBSpecial | TypeMap[TType];
308
+ const result = fn(defaultBuilder);
309
+ if (
310
+ typeof result === "object" &&
311
+ result !== null &&
312
+ "tag" in result &&
313
+ result.tag === "special"
314
+ ) {
315
+ this.default = { dbSpecial: result.value };
316
+ } else {
317
+ this.default = { value: result as TypeMap[TType] };
318
+ }
319
+ } else {
320
+ this.default = { value };
321
+ }
231
322
  return this;
232
323
  }
233
324
 
234
325
  /**
235
- * Generate default value for the column on runtime.
326
+ * Generate default value for the column at runtime.
327
+ * Used for both runtime defaults (defaultTo$) and fallback generation for
328
+ * database defaults (defaultTo) when the database doesn't support them.
236
329
  */
237
330
  generateDefaultValue(): TypeMap[TType] | undefined {
238
331
  if (!this.default) {
@@ -242,13 +335,24 @@ export class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown>
242
335
  if ("value" in this.default) {
243
336
  return this.default.value;
244
337
  }
245
- if (this.default.runtime === "auto") {
338
+
339
+ if ("dbSpecial" in this.default) {
340
+ // Fallback generation for database-level special functions
341
+ if (this.default.dbSpecial === "now") {
342
+ return new Date(Date.now()) as TypeMap[TType];
343
+ }
344
+ return;
345
+ }
346
+
347
+ // Runtime defaults (defaultTo$)
348
+ if (this.default.runtime === "cuid") {
246
349
  return createId() as TypeMap[TType];
247
350
  }
248
351
  if (this.default.runtime === "now") {
249
352
  return new Date(Date.now()) as TypeMap[TType];
250
353
  }
251
354
 
355
+ // Custom function
252
356
  return this.default.runtime();
253
357
  }
254
358
 
@@ -276,11 +380,15 @@ export class IdColumn<
276
380
  > extends Column<TType, TIn, TOut> {
277
381
  id = true;
278
382
 
279
- override defaultTo$(fn: DefaultFunction<TType>) {
280
- return super.defaultTo$(fn) as IdColumn<TType, TIn | null, TOut>;
383
+ override defaultTo$(
384
+ value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType]),
385
+ ) {
386
+ return super.defaultTo$(value) as IdColumn<TType, TIn | null, TOut>;
281
387
  }
282
388
 
283
- override defaultTo(value: TypeMap[TType]) {
389
+ override defaultTo(
390
+ value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType]),
391
+ ) {
284
392
  return super.defaultTo(value) as IdColumn<TType, TIn | null, TOut>;
285
393
  }
286
394
  }
@@ -342,7 +450,7 @@ export function referenceColumn(): Column<
342
450
  export function idColumn(): IdColumn<"varchar(30)", string | FragnoId | null, FragnoId> {
343
451
  const col = new IdColumn<"varchar(30)", string | FragnoId | null, FragnoId>("varchar(30)");
344
452
  col.role = "external-id";
345
- col.defaultTo$("auto");
453
+ col.defaultTo$((b) => b.cuid());
346
454
  return col;
347
455
  }
348
456
 
@@ -514,6 +514,7 @@ describe("serialize", () => {
514
514
 
515
515
  expect(serialize(fragnoId, referenceCol, "postgresql")).toBe(BigInt(456));
516
516
  expect(serialize(fragnoId, referenceCol, "sqlite")).toBe(BigInt(456));
517
+ expect(serialize(fragnoId, referenceCol, "mysql")).toBe(BigInt(456));
517
518
  });
518
519
 
519
520
  it("should fallback to external ID for reference column when internal ID unavailable", () => {
@@ -188,6 +188,13 @@ export function schemaToDBType(
188
188
  }
189
189
  }
190
190
 
191
+ if ("role" in column && column.role === "reference") {
192
+ if (provider === "sqlite") {
193
+ return "integer";
194
+ }
195
+ // Other providers use bigint for references
196
+ }
197
+
191
198
  if (provider === "sqlite") {
192
199
  switch (type) {
193
200
  case "integer":
@@ -205,7 +212,9 @@ export function schemaToDBType(
205
212
  return "real";
206
213
  default:
207
214
  // sqlite doesn't support varchar
208
- if (type.startsWith("varchar")) return "text";
215
+ if (type.startsWith("varchar")) {
216
+ return "text";
217
+ }
209
218
  }
210
219
  }
211
220
 
@@ -225,7 +234,9 @@ export function schemaToDBType(
225
234
  case "json":
226
235
  return "varchar(max)";
227
236
  default:
228
- if (type.startsWith("varchar")) return type as `varchar(${number})`;
237
+ if (type.startsWith("varchar")) {
238
+ return type as `varchar(${number})`;
239
+ }
229
240
  return type;
230
241
  }
231
242
  }
@@ -241,7 +252,9 @@ export function schemaToDBType(
241
252
  case "binary":
242
253
  return "bytea";
243
254
  default:
244
- if (type.startsWith("varchar")) return type as `varchar(${number})`;
255
+ if (type.startsWith("varchar")) {
256
+ return type as `varchar(${number})`;
257
+ }
245
258
  return type;
246
259
  }
247
260
  }
@@ -255,7 +268,9 @@ export function schemaToDBType(
255
268
  case "binary":
256
269
  return "longblob";
257
270
  default:
258
- if (type.startsWith("varchar")) return type as `varchar(${number})`;
271
+ if (type.startsWith("varchar")) {
272
+ return type as `varchar(${number})`;
273
+ }
259
274
  return type;
260
275
  }
261
276
  }
@@ -269,7 +284,9 @@ const supportJson: SQLProvider[] = ["postgresql", "cockroachdb", "mysql"];
269
284
  * Parse from driver value
270
285
  */
271
286
  export function deserialize(value: unknown, col: AnyColumn, provider: SQLProvider) {
272
- if (value === null) return null;
287
+ if (value === null) {
288
+ return null;
289
+ }
273
290
 
274
291
  if (!supportJson.includes(provider) && col.type === "json" && typeof value === "string") {
275
292
  return JSON.parse(value);
@@ -283,7 +300,9 @@ export function deserialize(value: unknown, col: AnyColumn, provider: SQLProvide
283
300
  return new Date(value);
284
301
  }
285
302
 
286
- if (col.type === "bool" && typeof value === "number") return value === 1;
303
+ if (col.type === "bool" && typeof value === "number") {
304
+ return value === 1;
305
+ }
287
306
 
288
307
  if (col.type === "bigint" && value instanceof Buffer) {
289
308
  return value.readBigInt64BE(0);
@@ -342,7 +361,9 @@ export function serialize(value: unknown, col: AnyColumn, provider: SQLProvider)
342
361
  return value.getTime();
343
362
  }
344
363
 
345
- if (provider === "sqlite" && typeof value === "boolean") return value ? 1 : 0;
364
+ if (provider === "sqlite" && typeof value === "boolean") {
365
+ return value ? 1 : 0;
366
+ }
346
367
 
347
368
  if (provider === "sqlite" && typeof value === "bigint") {
348
369
  const buf = Buffer.alloc(8);
@@ -0,0 +1,61 @@
1
+ import type { AbstractQuery } from "../query/query";
2
+ import { schema, idColumn, column, type FragnoId } from "../schema/create";
3
+
4
+ export const SETTINGS_TABLE_NAME = "fragno_db_settings" as const;
5
+ export const SETTINGS_NAMESPACE = "fragno-db-settings" as const;
6
+
7
+ export const settingsSchema = schema((s) => {
8
+ return s.addTable(SETTINGS_TABLE_NAME, (t) => {
9
+ return t
10
+ .addColumn("id", idColumn())
11
+ .addColumn("key", column("string"))
12
+ .addColumn("value", column("string"))
13
+ .createIndex("unique_key", ["key"], { unique: true });
14
+ });
15
+ });
16
+
17
+ export function createSettingsManager(
18
+ // oxlint-disable-next-line no-explicit-any
19
+ queryEngine: AbstractQuery<typeof settingsSchema, any>,
20
+ namespace: string,
21
+ ) {
22
+ return {
23
+ async get(key: string): Promise<{ id: FragnoId; key: string; value: string } | undefined> {
24
+ const uow = queryEngine
25
+ .createUnitOfWork()
26
+ .find(SETTINGS_TABLE_NAME, (b) =>
27
+ b.whereIndex("unique_key", (eb) => eb("key", "=", `${namespace}.${key}`)),
28
+ );
29
+ const [[result]] = await uow.executeRetrieve();
30
+ return result; // Safe: result can be undefined if key doesn't exist
31
+ },
32
+
33
+ async set(key: string, value: string) {
34
+ const uow = queryEngine
35
+ .createUnitOfWork("createSettingsManager#set")
36
+ .find(SETTINGS_TABLE_NAME, (b) =>
37
+ b.whereIndex("unique_key", (eb) => eb("key", "=", `${namespace}.${key}`)),
38
+ );
39
+ const [[existing]] = await uow.executeRetrieve();
40
+
41
+ if (existing) {
42
+ uow.update(SETTINGS_TABLE_NAME, existing.id, (b) => b.set({ value }).check());
43
+ } else {
44
+ uow.create(SETTINGS_TABLE_NAME, {
45
+ key: `${namespace}.${key}`,
46
+ value,
47
+ });
48
+ }
49
+
50
+ const { success } = await uow.executeMutations();
51
+
52
+ if (!success) {
53
+ throw new Error("Failed to set schema version");
54
+ }
55
+ },
56
+
57
+ async delete(id: FragnoId) {
58
+ await queryEngine.delete(SETTINGS_TABLE_NAME, id);
59
+ },
60
+ };
61
+ }
@@ -1,13 +1,21 @@
1
1
  // Minimal deep equal utility for primitives, arrays, and plain objects
2
2
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
3
  export function deepEqual(a: any, b: any): boolean {
4
- if (a === b) return true;
5
- if (typeof a !== typeof b) return false;
4
+ if (a === b) {
5
+ return true;
6
+ }
7
+ if (typeof a !== typeof b) {
8
+ return false;
9
+ }
6
10
 
7
11
  if (Array.isArray(a) && Array.isArray(b)) {
8
- if (a.length !== b.length) return false;
12
+ if (a.length !== b.length) {
13
+ return false;
14
+ }
9
15
  for (let i = 0; i < a.length; i++) {
10
- if (!deepEqual(a[i], b[i])) return false;
16
+ if (!deepEqual(a[i], b[i])) {
17
+ return false;
18
+ }
11
19
  }
12
20
  return true;
13
21
  }
@@ -15,11 +23,17 @@ export function deepEqual(a: any, b: any): boolean {
15
23
  if (typeof a === "object" && typeof b === "object") {
16
24
  const aKeys = Object.keys(a);
17
25
  const bKeys = Object.keys(b);
18
- if (aKeys.length !== bKeys.length) return false;
26
+ if (aKeys.length !== bKeys.length) {
27
+ return false;
28
+ }
19
29
  for (const key of aKeys) {
20
- if (!(key in b)) return false;
30
+ if (!(key in b)) {
31
+ return false;
32
+ }
21
33
 
22
- if (!Object.hasOwn(b, key) || !deepEqual(a[key], b[key])) return false;
34
+ if (!Object.hasOwn(b, key) || !deepEqual(a[key], b[key])) {
35
+ return false;
36
+ }
23
37
  }
24
38
 
25
39
  return true;
@@ -17,7 +17,9 @@ export function importGenerator() {
17
17
  format(): string {
18
18
  const v: string[] = [];
19
19
  for (const [specifier, names] of map) {
20
- if (names.length === 0) continue;
20
+ if (names.length === 0) {
21
+ continue;
22
+ }
21
23
 
22
24
  v.push(`import { ${names.join(", ")} } from "${specifier}"`);
23
25
  }
package/src/util/parse.ts CHANGED
@@ -2,7 +2,9 @@ const RegexVarchar = /^varchar\((\d+)\)$/;
2
2
 
3
3
  export function parseVarchar(template: string): number {
4
4
  const match = RegexVarchar.exec(template);
5
- if (!match) throw new Error("Failed to match varchar(n)");
5
+ if (!match) {
6
+ throw new Error("Failed to match varchar(n)");
7
+ }
6
8
  return Number(match[1]);
7
9
  }
8
10
 
package/tsdown.config.ts CHANGED
@@ -11,6 +11,7 @@ export default defineConfig({
11
11
  "./src/query/unit-of-work.ts",
12
12
  "./src/query/cursor.ts",
13
13
  "./src/fragment.ts",
14
+ "./src/migration-engine/generation-engine.ts",
14
15
  ],
15
16
  dts: true,
16
17
  unbundle: true,
@@ -1,37 +0,0 @@
1
- $ vitest run
2
-
3
-  RUN  v3.2.4 /home/runner/work/fragno/fragno/packages/fragno-db
4
- Coverage enabled with istanbul
5
-
6
- ✓ src/adapters/kysely/migration/execute-postgres.test.ts (50 tests) 779ms
7
- ✓ src/adapters/kysely/kysely-query-builder.test.ts (83 tests) 575ms
8
- ✓ src/adapters/kysely/kysely-uow-joins.test.ts (26 tests) 422ms
9
- ✓ src/adapters/kysely/kysely-uow-compiler.test.ts (42 tests) 467ms
10
- ✓ src/schema/create.test.ts (28 tests) 208ms
11
- ✓ src/adapters/kysely/migration/execute-mysql.test.ts (36 tests) 331ms
12
- ✓ src/query/unit-of-work.test.ts (30 tests) 262ms
13
- ✓ src/adapters/drizzle/generate.test.ts (13 tests) 154ms
14
- ✓ src/query/result-transform.test.ts (47 tests) 173ms
15
- ✓ src/schema/serialize.test.ts (86 tests) 206ms
16
- ✓ src/adapters/drizzle/drizzle-uow-compiler.test.ts (45 tests) 24852ms
17
- ✓ src/adapters/kysely/kysely-adapter-pglite.test.ts (7 tests) 10686ms
18
- ✓ KyselyAdapter PGLite > should run migrations and basic queries  623ms
19
- ✓ KyselyAdapter PGLite > should support many-to-many queries through junction table  343ms
20
- ✓ src/query/query-type.test.ts (29 tests) 29ms
21
- ✓ src/query/condition-builder.test.ts (20 tests) 34ms
22
- ✓ src/migration-engine/create.test.ts (20 tests) 56ms
23
- ✓ src/migration-engine/auto-from-schema.test.ts (13 tests) 76ms
24
- ✓ src/adapters/drizzle/drizzle-adapter-pglite.test.ts (5 tests) 8905ms
25
- ✓ src/adapters/drizzle/migrate-drizzle.test.ts (1 test) 491ms
26
- ✓ src/fragment.test.ts (11 tests) 57ms
27
- ✓ src/query/cursor.test.ts (18 tests) 41ms
28
- ✓ src/query/unit-of-work-types.test.ts (5 tests) 37ms
29
- ✓ src/adapters/kysely/migration/kysely-migrator.test.ts (9 tests) 142ms
30
- ✓ src/adapters/drizzle/drizzle-adapter.test.ts (4 tests) 53ms
31
- ✓ src/adapters/drizzle/join-column-utils.test.ts (8 tests) 23ms
32
-
33
-  Test Files  24 passed (24)
34
-  Tests  636 passed (636)
35
-  Start at  12:33:42
36
-  Duration  47.25s (transform 20.15s, setup 0ms, collect 51.86s, tests 49.06s, environment 119ms, prepare 11.76s)
37
-
@@ -1 +0,0 @@
1
- $ tsc --noEmit
@@ -1 +0,0 @@
1
- {"version":3,"file":"column-builder.js","names":[],"sources":["../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass ColumnBuilder {\n static [entityKind] = \"ColumnBuilder\";\n config;\n constructor(name, dataType, columnType) {\n this.config = {\n name,\n keyAsName: name === \"\",\n notNull: false,\n default: void 0,\n hasDefault: false,\n primaryKey: false,\n isUnique: false,\n uniqueName: void 0,\n uniqueType: void 0,\n dataType,\n columnType,\n generated: void 0\n };\n }\n /**\n * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n *\n * @example\n * ```ts\n * const users = pgTable('users', {\n * \tid: integer('id').$type<UserId>().primaryKey(),\n * \tdetails: json('details').$type<UserDetails>().notNull(),\n * });\n * ```\n */\n $type() {\n return this;\n }\n /**\n * Adds a `not null` clause to the column definition.\n *\n * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n */\n notNull() {\n this.config.notNull = true;\n return this;\n }\n /**\n * Adds a `default <value>` clause to the column definition.\n *\n * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n *\n * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n */\n default(value) {\n this.config.default = value;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Adds a dynamic default value to the column.\n * The function will be called when the row is inserted, and the returned value will be used as the column value.\n *\n * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n */\n $defaultFn(fn) {\n this.config.defaultFn = fn;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Alias for {@link $defaultFn}.\n */\n $default = this.$defaultFn;\n /**\n * Adds a dynamic update value to the column.\n * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n *\n * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n */\n $onUpdateFn(fn) {\n this.config.onUpdateFn = fn;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Alias for {@link $onUpdateFn}.\n */\n $onUpdate = this.$onUpdateFn;\n /**\n * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n *\n * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n */\n primaryKey() {\n this.config.primaryKey = true;\n this.config.notNull = true;\n return this;\n }\n /** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n setName(name) {\n if (this.config.name !== \"\") return;\n this.config.name = name;\n }\n}\nexport {\n ColumnBuilder\n};\n//# sourceMappingURL=column-builder.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,gBAAN,MAAoB;CAClB,QAAQ,cAAc;CACtB;CACA,YAAY,MAAM,UAAU,YAAY;AACtC,OAAK,SAAS;GACZ;GACA,WAAW,SAAS;GACpB,SAAS;GACT,SAAS,KAAK;GACd,YAAY;GACZ,YAAY;GACZ,UAAU;GACV,YAAY,KAAK;GACjB,YAAY,KAAK;GACjB;GACA;GACA,WAAW,KAAK;GACjB;;;;;;;;;;;;;CAaH,QAAQ;AACN,SAAO;;;;;;;CAOT,UAAU;AACR,OAAK,OAAO,UAAU;AACtB,SAAO;;;;;;;;;CAST,QAAQ,OAAO;AACb,OAAK,OAAO,UAAU;AACtB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;;;;CAQT,WAAW,IAAI;AACb,OAAK,OAAO,YAAY;AACxB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;CAKT,WAAW,KAAK;;;;;;;;CAQhB,YAAY,IAAI;AACd,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;CAKT,YAAY,KAAK;;;;;;CAMjB,aAAa;AACX,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,UAAU;AACtB,SAAO;;;CAGT,QAAQ,MAAM;AACZ,MAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,OAAK,OAAO,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"column.js","names":[],"sources":["../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/column.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass Column {\n constructor(table, config) {\n this.table = table;\n this.config = config;\n this.name = config.name;\n this.keyAsName = config.keyAsName;\n this.notNull = config.notNull;\n this.default = config.default;\n this.defaultFn = config.defaultFn;\n this.onUpdateFn = config.onUpdateFn;\n this.hasDefault = config.hasDefault;\n this.primary = config.primaryKey;\n this.isUnique = config.isUnique;\n this.uniqueName = config.uniqueName;\n this.uniqueType = config.uniqueType;\n this.dataType = config.dataType;\n this.columnType = config.columnType;\n this.generated = config.generated;\n this.generatedIdentity = config.generatedIdentity;\n }\n static [entityKind] = \"Column\";\n name;\n keyAsName;\n primary;\n notNull;\n default;\n defaultFn;\n onUpdateFn;\n hasDefault;\n isUnique;\n uniqueName;\n uniqueType;\n dataType;\n columnType;\n enumValues = void 0;\n generated = void 0;\n generatedIdentity = void 0;\n config;\n mapFromDriverValue(value) {\n return value;\n }\n mapToDriverValue(value) {\n return value;\n }\n // ** @internal */\n shouldDisableInsert() {\n return this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n }\n}\nexport {\n Column\n};\n//# sourceMappingURL=column.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,SAAN,MAAa;CACX,YAAY,OAAO,QAAQ;AACzB,OAAK,QAAQ;AACb,OAAK,SAAS;AACd,OAAK,OAAO,OAAO;AACnB,OAAK,YAAY,OAAO;AACxB,OAAK,UAAU,OAAO;AACtB,OAAK,UAAU,OAAO;AACtB,OAAK,YAAY,OAAO;AACxB,OAAK,aAAa,OAAO;AACzB,OAAK,aAAa,OAAO;AACzB,OAAK,UAAU,OAAO;AACtB,OAAK,WAAW,OAAO;AACvB,OAAK,aAAa,OAAO;AACzB,OAAK,aAAa,OAAO;AACzB,OAAK,WAAW,OAAO;AACvB,OAAK,aAAa,OAAO;AACzB,OAAK,YAAY,OAAO;AACxB,OAAK,oBAAoB,OAAO;;CAElC,QAAQ,cAAc;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,aAAa,KAAK;CAClB,YAAY,KAAK;CACjB,oBAAoB,KAAK;CACzB;CACA,mBAAmB,OAAO;AACxB,SAAO;;CAET,iBAAiB,OAAO;AACtB,SAAO;;CAGT,sBAAsB;AACpB,SAAO,KAAK,OAAO,cAAc,KAAK,KAAK,KAAK,OAAO,UAAU,SAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.js","names":[],"sources":["../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/entity.js"],"sourcesContent":["const entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (value instanceof type) {\n return true;\n }\n if (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n throw new Error(\n `Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`\n );\n }\n let cls = Object.getPrototypeOf(value).constructor;\n if (cls) {\n while (cls) {\n if (entityKind in cls && cls[entityKind] === type[entityKind]) {\n return true;\n }\n cls = Object.getPrototypeOf(cls);\n }\n }\n return false;\n}\nexport {\n entityKind,\n hasOwnEntityKind,\n is\n};\n//# sourceMappingURL=entity.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,MAAM,aAAa,OAAO,IAAI,qBAAqB;AACnD,MAAM,mBAAmB,OAAO,IAAI,2BAA2B;AAC/D,SAAS,GAAG,OAAO,MAAM;AACvB,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;AAET,KAAI,iBAAiB,KACnB,QAAO;AAET,KAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,WAAW,CACzD,OAAM,IAAI,MACR,UAAU,KAAK,QAAQ,YAAY,+HACpC;CAEH,IAAI,MAAM,OAAO,eAAe,MAAM,CAAC;AACvC,KAAI,IACF,QAAO,KAAK;AACV,MAAI,cAAc,OAAO,IAAI,gBAAgB,KAAK,YAChD,QAAO;AAET,QAAM,OAAO,eAAe,IAAI;;AAGpC,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js"],"sourcesContent":["import { ColumnBuilder } from \"../../column-builder.js\";\nimport { Column } from \"../../column.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { ForeignKeyBuilder } from \"../foreign-keys.js\";\nimport { iife } from \"../../tracing-utils.js\";\nimport { uniqueKeyName } from \"../unique-constraint.js\";\nimport { makePgArray, parsePgArray } from \"../utils/array.js\";\nclass PgColumnBuilder extends ColumnBuilder {\n foreignKeyConfigs = [];\n static [entityKind] = \"PgColumnBuilder\";\n array(size) {\n return new PgArrayBuilder(this.config.name, this, size);\n }\n references(ref, actions = {}) {\n this.foreignKeyConfigs.push({ ref, actions });\n return this;\n }\n unique(name, config) {\n this.config.isUnique = true;\n this.config.uniqueName = name;\n this.config.uniqueType = config?.nulls;\n return this;\n }\n generatedAlwaysAs(as) {\n this.config.generated = {\n as,\n type: \"always\",\n mode: \"stored\"\n };\n return this;\n }\n /** @internal */\n buildForeignKeys(column, table) {\n return this.foreignKeyConfigs.map(({ ref, actions }) => {\n return iife(\n (ref2, actions2) => {\n const builder = new ForeignKeyBuilder(() => {\n const foreignColumn = ref2();\n return { columns: [column], foreignColumns: [foreignColumn] };\n });\n if (actions2.onUpdate) {\n builder.onUpdate(actions2.onUpdate);\n }\n if (actions2.onDelete) {\n builder.onDelete(actions2.onDelete);\n }\n return builder.build(table);\n },\n ref,\n actions\n );\n });\n }\n /** @internal */\n buildExtraConfigColumn(table) {\n return new ExtraConfigColumn(table, this.config);\n }\n}\nclass PgColumn extends Column {\n constructor(table, config) {\n if (!config.uniqueName) {\n config.uniqueName = uniqueKeyName(table, [config.name]);\n }\n super(table, config);\n this.table = table;\n }\n static [entityKind] = \"PgColumn\";\n}\nclass ExtraConfigColumn extends PgColumn {\n static [entityKind] = \"ExtraConfigColumn\";\n getSQLType() {\n return this.getSQLType();\n }\n indexConfig = {\n order: this.config.order ?? \"asc\",\n nulls: this.config.nulls ?? \"last\",\n opClass: this.config.opClass\n };\n defaultConfig = {\n order: \"asc\",\n nulls: \"last\",\n opClass: void 0\n };\n asc() {\n this.indexConfig.order = \"asc\";\n return this;\n }\n desc() {\n this.indexConfig.order = \"desc\";\n return this;\n }\n nullsFirst() {\n this.indexConfig.nulls = \"first\";\n return this;\n }\n nullsLast() {\n this.indexConfig.nulls = \"last\";\n return this;\n }\n /**\n * ### PostgreSQL documentation quote\n *\n * > An operator class with optional parameters can be specified for each column of an index.\n * The operator class identifies the operators to be used by the index for that column.\n * For example, a B-tree index on four-byte integers would use the int4_ops class;\n * this operator class includes comparison functions for four-byte integers.\n * In practice the default operator class for the column's data type is usually sufficient.\n * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n * More information about operator classes check:\n *\n * ### Useful links\n * https://www.postgresql.org/docs/current/sql-createindex.html\n *\n * https://www.postgresql.org/docs/current/indexes-opclass.html\n *\n * https://www.postgresql.org/docs/current/xindex.html\n *\n * ### Additional types\n * If you have the `pg_vector` extension installed in your database, you can use the\n * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n *\n * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n *\n * @param opClass\n * @returns\n */\n op(opClass) {\n this.indexConfig.opClass = opClass;\n return this;\n }\n}\nclass IndexedColumn {\n static [entityKind] = \"IndexedColumn\";\n constructor(name, keyAsName, type, indexConfig) {\n this.name = name;\n this.keyAsName = keyAsName;\n this.type = type;\n this.indexConfig = indexConfig;\n }\n name;\n keyAsName;\n type;\n indexConfig;\n}\nclass PgArrayBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgArrayBuilder\";\n constructor(name, baseBuilder, size) {\n super(name, \"array\", \"PgArray\");\n this.config.baseBuilder = baseBuilder;\n this.config.size = size;\n }\n /** @internal */\n build(table) {\n const baseColumn = this.config.baseBuilder.build(table);\n return new PgArray(\n table,\n this.config,\n baseColumn\n );\n }\n}\nclass PgArray extends PgColumn {\n constructor(table, config, baseColumn, range) {\n super(table, config);\n this.baseColumn = baseColumn;\n this.range = range;\n this.size = config.size;\n }\n size;\n static [entityKind] = \"PgArray\";\n getSQLType() {\n return `${this.baseColumn.getSQLType()}[${typeof this.size === \"number\" ? this.size : \"\"}]`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n value = parsePgArray(value);\n }\n return value.map((v) => this.baseColumn.mapFromDriverValue(v));\n }\n mapToDriverValue(value, isNestedArray = false) {\n const a = value.map(\n (v) => v === null ? null : is(this.baseColumn, PgArray) ? this.baseColumn.mapToDriverValue(v, true) : this.baseColumn.mapToDriverValue(v)\n );\n if (isNestedArray) return a;\n return makePgArray(a);\n }\n}\nexport {\n ExtraConfigColumn,\n IndexedColumn,\n PgArray,\n PgArrayBuilder,\n PgColumn,\n PgColumnBuilder\n};\n//# sourceMappingURL=common.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AAOA,IAAM,kBAAN,cAA8B,cAAc;CAC1C,oBAAoB,EAAE;CACtB,QAAQ,cAAc;CACtB,MAAM,MAAM;AACV,SAAO,IAAI,eAAe,KAAK,OAAO,MAAM,MAAM,KAAK;;CAEzD,WAAW,KAAK,UAAU,EAAE,EAAE;AAC5B,OAAK,kBAAkB,KAAK;GAAE;GAAK;GAAS,CAAC;AAC7C,SAAO;;CAET,OAAO,MAAM,QAAQ;AACnB,OAAK,OAAO,WAAW;AACvB,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,aAAa,QAAQ;AACjC,SAAO;;CAET,kBAAkB,IAAI;AACpB,OAAK,OAAO,YAAY;GACtB;GACA,MAAM;GACN,MAAM;GACP;AACD,SAAO;;;CAGT,iBAAiB,QAAQ,OAAO;AAC9B,SAAO,KAAK,kBAAkB,KAAK,EAAE,KAAK,cAAc;AACtD,UAAO,MACJ,MAAM,aAAa;IAClB,MAAM,UAAU,IAAI,wBAAwB;KAC1C,MAAM,gBAAgB,MAAM;AAC5B,YAAO;MAAE,SAAS,CAAC,OAAO;MAAE,gBAAgB,CAAC,cAAc;MAAE;MAC7D;AACF,QAAI,SAAS,SACX,SAAQ,SAAS,SAAS,SAAS;AAErC,QAAI,SAAS,SACX,SAAQ,SAAS,SAAS,SAAS;AAErC,WAAO,QAAQ,MAAM,MAAM;MAE7B,KACA,QACD;IACD;;;CAGJ,uBAAuB,OAAO;AAC5B,SAAO,IAAI,kBAAkB,OAAO,KAAK,OAAO;;;AAGpD,IAAM,WAAN,cAAuB,OAAO;CAC5B,YAAY,OAAO,QAAQ;AACzB,MAAI,CAAC,OAAO,WACV,QAAO,aAAa,cAAc,OAAO,CAAC,OAAO,KAAK,CAAC;AAEzD,QAAM,OAAO,OAAO;AACpB,OAAK,QAAQ;;CAEf,QAAQ,cAAc;;AAExB,IAAM,oBAAN,cAAgC,SAAS;CACvC,QAAQ,cAAc;CACtB,aAAa;AACX,SAAO,KAAK,YAAY;;CAE1B,cAAc;EACZ,OAAO,KAAK,OAAO,SAAS;EAC5B,OAAO,KAAK,OAAO,SAAS;EAC5B,SAAS,KAAK,OAAO;EACtB;CACD,gBAAgB;EACd,OAAO;EACP,OAAO;EACP,SAAS,KAAK;EACf;CACD,MAAM;AACJ,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAET,OAAO;AACL,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAET,aAAa;AACX,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAET,YAAY;AACV,OAAK,YAAY,QAAQ;AACzB,SAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BT,GAAG,SAAS;AACV,OAAK,YAAY,UAAU;AAC3B,SAAO;;;AAGX,IAAM,gBAAN,MAAoB;CAClB,QAAQ,cAAc;CACtB,YAAY,MAAM,WAAW,MAAM,aAAa;AAC9C,OAAK,OAAO;AACZ,OAAK,YAAY;AACjB,OAAK,OAAO;AACZ,OAAK,cAAc;;CAErB;CACA;CACA;CACA;;AAEF,IAAM,iBAAN,cAA6B,gBAAgB;CAC3C,QAAQ,cAAc;CACtB,YAAY,MAAM,aAAa,MAAM;AACnC,QAAM,MAAM,SAAS,UAAU;AAC/B,OAAK,OAAO,cAAc;AAC1B,OAAK,OAAO,OAAO;;;CAGrB,MAAM,OAAO;EACX,MAAM,aAAa,KAAK,OAAO,YAAY,MAAM,MAAM;AACvD,SAAO,IAAI,QACT,OACA,KAAK,QACL,WACD;;;AAGL,IAAM,UAAN,MAAM,gBAAgB,SAAS;CAC7B,YAAY,OAAO,QAAQ,YAAY,OAAO;AAC5C,QAAM,OAAO,OAAO;AACpB,OAAK,aAAa;AAClB,OAAK,QAAQ;AACb,OAAK,OAAO,OAAO;;CAErB;CACA,QAAQ,cAAc;CACtB,aAAa;AACX,SAAO,GAAG,KAAK,WAAW,YAAY,CAAC,GAAG,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,GAAG;;CAE3F,mBAAmB,OAAO;AACxB,MAAI,OAAO,UAAU,SACnB,SAAQ,aAAa,MAAM;AAE7B,SAAO,MAAM,KAAK,MAAM,KAAK,WAAW,mBAAmB,EAAE,CAAC;;CAEhE,iBAAiB,OAAO,gBAAgB,OAAO;EAC7C,MAAM,IAAI,MAAM,KACb,MAAM,MAAM,OAAO,OAAO,GAAG,KAAK,YAAY,QAAQ,GAAG,KAAK,WAAW,iBAAiB,GAAG,KAAK,GAAG,KAAK,WAAW,iBAAiB,EAAE,CAC1I;AACD,MAAI,cAAe,QAAO;AAC1B,SAAO,YAAY,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js"],"sourcesContent":["import { entityKind } from \"../../entity.js\";\nimport { PgColumn, PgColumnBuilder } from \"./common.js\";\nclass PgEnumObjectColumnBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgEnumObjectColumnBuilder\";\n constructor(name, enumInstance) {\n super(name, \"string\", \"PgEnumObjectColumn\");\n this.config.enum = enumInstance;\n }\n /** @internal */\n build(table) {\n return new PgEnumObjectColumn(\n table,\n this.config\n );\n }\n}\nclass PgEnumObjectColumn extends PgColumn {\n static [entityKind] = \"PgEnumObjectColumn\";\n enum;\n enumValues = this.config.enum.enumValues;\n constructor(table, config) {\n super(table, config);\n this.enum = config.enum;\n }\n getSQLType() {\n return this.enum.enumName;\n }\n}\nconst isPgEnumSym = Symbol.for(\"drizzle:isPgEnum\");\nfunction isPgEnum(obj) {\n return !!obj && typeof obj === \"function\" && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\nclass PgEnumColumnBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgEnumColumnBuilder\";\n constructor(name, enumInstance) {\n super(name, \"string\", \"PgEnumColumn\");\n this.config.enum = enumInstance;\n }\n /** @internal */\n build(table) {\n return new PgEnumColumn(\n table,\n this.config\n );\n }\n}\nclass PgEnumColumn extends PgColumn {\n static [entityKind] = \"PgEnumColumn\";\n enum = this.config.enum;\n enumValues = this.config.enum.enumValues;\n constructor(table, config) {\n super(table, config);\n this.enum = config.enum;\n }\n getSQLType() {\n return this.enum.enumName;\n }\n}\nfunction pgEnum(enumName, input) {\n return Array.isArray(input) ? pgEnumWithSchema(enumName, [...input], void 0) : pgEnumObjectWithSchema(enumName, input, void 0);\n}\nfunction pgEnumWithSchema(enumName, values, schema) {\n const enumInstance = Object.assign(\n (name) => new PgEnumColumnBuilder(name ?? \"\", enumInstance),\n {\n enumName,\n enumValues: values,\n schema,\n [isPgEnumSym]: true\n }\n );\n return enumInstance;\n}\nfunction pgEnumObjectWithSchema(enumName, values, schema) {\n const enumInstance = Object.assign(\n (name) => new PgEnumObjectColumnBuilder(name ?? \"\", enumInstance),\n {\n enumName,\n enumValues: Object.values(values),\n schema,\n [isPgEnumSym]: true\n }\n );\n return enumInstance;\n}\nexport {\n PgEnumColumn,\n PgEnumColumnBuilder,\n PgEnumObjectColumn,\n PgEnumObjectColumnBuilder,\n isPgEnum,\n pgEnum,\n pgEnumObjectWithSchema,\n pgEnumWithSchema\n};\n//# sourceMappingURL=enum.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,IAAM,4BAAN,cAAwC,gBAAgB;CACtD,QAAQ,cAAc;CACtB,YAAY,MAAM,cAAc;AAC9B,QAAM,MAAM,UAAU,qBAAqB;AAC3C,OAAK,OAAO,OAAO;;;CAGrB,MAAM,OAAO;AACX,SAAO,IAAI,mBACT,OACA,KAAK,OACN;;;AAGL,IAAM,qBAAN,cAAiC,SAAS;CACxC,QAAQ,cAAc;CACtB;CACA,aAAa,KAAK,OAAO,KAAK;CAC9B,YAAY,OAAO,QAAQ;AACzB,QAAM,OAAO,OAAO;AACpB,OAAK,OAAO,OAAO;;CAErB,aAAa;AACX,SAAO,KAAK,KAAK;;;AAGrB,MAAM,cAAc,OAAO,IAAI,mBAAmB;AAClD,SAAS,SAAS,KAAK;AACrB,QAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,iBAAiB;;AAE1F,IAAM,sBAAN,cAAkC,gBAAgB;CAChD,QAAQ,cAAc;CACtB,YAAY,MAAM,cAAc;AAC9B,QAAM,MAAM,UAAU,eAAe;AACrC,OAAK,OAAO,OAAO;;;CAGrB,MAAM,OAAO;AACX,SAAO,IAAI,aACT,OACA,KAAK,OACN;;;AAGL,IAAM,eAAN,cAA2B,SAAS;CAClC,QAAQ,cAAc;CACtB,OAAO,KAAK,OAAO;CACnB,aAAa,KAAK,OAAO,KAAK;CAC9B,YAAY,OAAO,QAAQ;AACzB,QAAM,OAAO,OAAO;AACpB,OAAK,OAAO,OAAO;;CAErB,aAAa;AACX,SAAO,KAAK,KAAK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"foreign-keys.js","names":[],"sources":["../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nclass ForeignKeyBuilder {\n static [entityKind] = \"PgForeignKeyBuilder\";\n /** @internal */\n reference;\n /** @internal */\n _onUpdate = \"no action\";\n /** @internal */\n _onDelete = \"no action\";\n constructor(config, actions) {\n this.reference = () => {\n const { name, columns, foreignColumns } = config();\n return { name, columns, foreignTable: foreignColumns[0].table, foreignColumns };\n };\n if (actions) {\n this._onUpdate = actions.onUpdate;\n this._onDelete = actions.onDelete;\n }\n }\n onUpdate(action) {\n this._onUpdate = action === void 0 ? \"no action\" : action;\n return this;\n }\n onDelete(action) {\n this._onDelete = action === void 0 ? \"no action\" : action;\n return this;\n }\n /** @internal */\n build(table) {\n return new ForeignKey(table, this);\n }\n}\nclass ForeignKey {\n constructor(table, builder) {\n this.table = table;\n this.reference = builder.reference;\n this.onUpdate = builder._onUpdate;\n this.onDelete = builder._onDelete;\n }\n static [entityKind] = \"PgForeignKey\";\n reference;\n onUpdate;\n onDelete;\n getName() {\n const { name, columns, foreignColumns } = this.reference();\n const columnNames = columns.map((column) => column.name);\n const foreignColumnNames = foreignColumns.map((column) => column.name);\n const chunks = [\n this.table[TableName],\n ...columnNames,\n foreignColumns[0].table[TableName],\n ...foreignColumnNames\n ];\n return name ?? `${chunks.join(\"_\")}_fk`;\n }\n}\nfunction foreignKey(config) {\n function mappedConfig() {\n const { name, columns, foreignColumns } = config;\n return {\n name,\n columns,\n foreignColumns\n };\n }\n return new ForeignKeyBuilder(mappedConfig);\n}\nexport {\n ForeignKey,\n ForeignKeyBuilder,\n foreignKey\n};\n//# sourceMappingURL=foreign-keys.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,IAAM,oBAAN,MAAwB;CACtB,QAAQ,cAAc;;CAEtB;;CAEA,YAAY;;CAEZ,YAAY;CACZ,YAAY,QAAQ,SAAS;AAC3B,OAAK,kBAAkB;GACrB,MAAM,EAAE,MAAM,SAAS,mBAAmB,QAAQ;AAClD,UAAO;IAAE;IAAM;IAAS,cAAc,eAAe,GAAG;IAAO;IAAgB;;AAEjF,MAAI,SAAS;AACX,QAAK,YAAY,QAAQ;AACzB,QAAK,YAAY,QAAQ;;;CAG7B,SAAS,QAAQ;AACf,OAAK,YAAY,WAAW,KAAK,IAAI,cAAc;AACnD,SAAO;;CAET,SAAS,QAAQ;AACf,OAAK,YAAY,WAAW,KAAK,IAAI,cAAc;AACnD,SAAO;;;CAGT,MAAM,OAAO;AACX,SAAO,IAAI,WAAW,OAAO,KAAK;;;AAGtC,IAAM,aAAN,MAAiB;CACf,YAAY,OAAO,SAAS;AAC1B,OAAK,QAAQ;AACb,OAAK,YAAY,QAAQ;AACzB,OAAK,WAAW,QAAQ;AACxB,OAAK,WAAW,QAAQ;;CAE1B,QAAQ,cAAc;CACtB;CACA;CACA;CACA,UAAU;EACR,MAAM,EAAE,MAAM,SAAS,mBAAmB,KAAK,WAAW;EAC1D,MAAM,cAAc,QAAQ,KAAK,WAAW,OAAO,KAAK;EACxD,MAAM,qBAAqB,eAAe,KAAK,WAAW,OAAO,KAAK;EACtE,MAAM,SAAS;GACb,KAAK,MAAM;GACX,GAAG;GACH,eAAe,GAAG,MAAM;GACxB,GAAG;GACJ;AACD,SAAO,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"unique-constraint.js","names":[],"sources":["../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nfunction uniqueKeyName(table, columns) {\n return `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name) {\n this.name = name;\n this.columns = columns;\n }\n static [entityKind] = \"PgUniqueConstraintBuilder\";\n /** @internal */\n columns;\n /** @internal */\n nullsNotDistinctConfig = false;\n nullsNotDistinct() {\n this.nullsNotDistinctConfig = true;\n return this;\n }\n /** @internal */\n build(table) {\n return new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static [entityKind] = \"PgUniqueOnConstraintBuilder\";\n /** @internal */\n name;\n constructor(name) {\n this.name = name;\n }\n on(...columns) {\n return new UniqueConstraintBuilder(columns, this.name);\n }\n}\nclass UniqueConstraint {\n constructor(table, columns, nullsNotDistinct, name) {\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n this.nullsNotDistinct = nullsNotDistinct;\n }\n static [entityKind] = \"PgUniqueConstraint\";\n columns;\n name;\n nullsNotDistinct = false;\n getName() {\n return this.name;\n }\n}\nexport {\n UniqueConstraint,\n UniqueConstraintBuilder,\n UniqueOnConstraintBuilder,\n unique,\n uniqueKeyName\n};\n//# sourceMappingURL=unique-constraint.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAKA,SAAS,cAAc,OAAO,SAAS;AACrC,QAAO,GAAG,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;;AAElD,IAAM,0BAAN,MAA8B;CAC5B,YAAY,SAAS,MAAM;AACzB,OAAK,OAAO;AACZ,OAAK,UAAU;;CAEjB,QAAQ,cAAc;;CAEtB;;CAEA,yBAAyB;CACzB,mBAAmB;AACjB,OAAK,yBAAyB;AAC9B,SAAO;;;CAGT,MAAM,OAAO;AACX,SAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,wBAAwB,KAAK,KAAK;;;AAG5F,IAAM,4BAAN,MAAgC;CAC9B,QAAQ,cAAc;;CAEtB;CACA,YAAY,MAAM;AAChB,OAAK,OAAO;;CAEd,GAAG,GAAG,SAAS;AACb,SAAO,IAAI,wBAAwB,SAAS,KAAK,KAAK;;;AAG1D,IAAM,mBAAN,MAAuB;CACrB,YAAY,OAAO,SAAS,kBAAkB,MAAM;AAClD,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK,CAAC;AACxF,OAAK,mBAAmB;;CAE1B,QAAQ,cAAc;CACtB;CACA;CACA,mBAAmB;CACnB,UAAU;AACR,SAAO,KAAK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"array.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js"],"sourcesContent":["function parsePgArrayValue(arrayString, startFrom, inQuotes) {\n for (let i = startFrom; i < arrayString.length; i++) {\n const char = arrayString[i];\n if (char === \"\\\\\") {\n i++;\n continue;\n }\n if (char === '\"') {\n return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i + 1];\n }\n if (inQuotes) {\n continue;\n }\n if (char === \",\" || char === \"}\") {\n return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i];\n }\n }\n return [arrayString.slice(startFrom).replace(/\\\\/g, \"\"), arrayString.length];\n}\nfunction parsePgNestedArray(arrayString, startFrom = 0) {\n const result = [];\n let i = startFrom;\n let lastCharIsComma = false;\n while (i < arrayString.length) {\n const char = arrayString[i];\n if (char === \",\") {\n if (lastCharIsComma || i === startFrom) {\n result.push(\"\");\n }\n lastCharIsComma = true;\n i++;\n continue;\n }\n lastCharIsComma = false;\n if (char === \"\\\\\") {\n i += 2;\n continue;\n }\n if (char === '\"') {\n const [value2, startFrom2] = parsePgArrayValue(arrayString, i + 1, true);\n result.push(value2);\n i = startFrom2;\n continue;\n }\n if (char === \"}\") {\n return [result, i + 1];\n }\n if (char === \"{\") {\n const [value2, startFrom2] = parsePgNestedArray(arrayString, i + 1);\n result.push(value2);\n i = startFrom2;\n continue;\n }\n const [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);\n result.push(value);\n i = newStartFrom;\n }\n return [result, i];\n}\nfunction parsePgArray(arrayString) {\n const [result] = parsePgNestedArray(arrayString, 1);\n return result;\n}\nfunction makePgArray(array) {\n return `{${array.map((item) => {\n if (Array.isArray(item)) {\n return makePgArray(item);\n }\n if (typeof item === \"string\") {\n return `\"${item.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"')}\"`;\n }\n return `${item}`;\n }).join(\",\")}}`;\n}\nexport {\n makePgArray,\n parsePgArray,\n parsePgNestedArray\n};\n//# sourceMappingURL=array.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAS,kBAAkB,aAAa,WAAW,UAAU;AAC3D,MAAK,IAAI,IAAI,WAAW,IAAI,YAAY,QAAQ,KAAK;EACnD,MAAM,OAAO,YAAY;AACzB,MAAI,SAAS,MAAM;AACjB;AACA;;AAEF,MAAI,SAAS,KACX,QAAO,CAAC,YAAY,MAAM,WAAW,EAAE,CAAC,QAAQ,OAAO,GAAG,EAAE,IAAI,EAAE;AAEpE,MAAI,SACF;AAEF,MAAI,SAAS,OAAO,SAAS,IAC3B,QAAO,CAAC,YAAY,MAAM,WAAW,EAAE,CAAC,QAAQ,OAAO,GAAG,EAAE,EAAE;;AAGlE,QAAO,CAAC,YAAY,MAAM,UAAU,CAAC,QAAQ,OAAO,GAAG,EAAE,YAAY,OAAO;;AAE9E,SAAS,mBAAmB,aAAa,YAAY,GAAG;CACtD,MAAM,SAAS,EAAE;CACjB,IAAI,IAAI;CACR,IAAI,kBAAkB;AACtB,QAAO,IAAI,YAAY,QAAQ;EAC7B,MAAM,OAAO,YAAY;AACzB,MAAI,SAAS,KAAK;AAChB,OAAI,mBAAmB,MAAM,UAC3B,QAAO,KAAK,GAAG;AAEjB,qBAAkB;AAClB;AACA;;AAEF,oBAAkB;AAClB,MAAI,SAAS,MAAM;AACjB,QAAK;AACL;;AAEF,MAAI,SAAS,MAAK;GAChB,MAAM,CAAC,QAAQ,cAAc,kBAAkB,aAAa,IAAI,GAAG,KAAK;AACxE,UAAO,KAAK,OAAO;AACnB,OAAI;AACJ;;AAEF,MAAI,SAAS,IACX,QAAO,CAAC,QAAQ,IAAI,EAAE;AAExB,MAAI,SAAS,KAAK;GAChB,MAAM,CAAC,QAAQ,cAAc,mBAAmB,aAAa,IAAI,EAAE;AACnE,UAAO,KAAK,OAAO;AACnB,OAAI;AACJ;;EAEF,MAAM,CAAC,OAAO,gBAAgB,kBAAkB,aAAa,GAAG,MAAM;AACtE,SAAO,KAAK,MAAM;AAClB,MAAI;;AAEN,QAAO,CAAC,QAAQ,EAAE;;AAEpB,SAAS,aAAa,aAAa;CACjC,MAAM,CAAC,UAAU,mBAAmB,aAAa,EAAE;AACnD,QAAO;;AAET,SAAS,YAAY,OAAO;AAC1B,QAAO,IAAI,MAAM,KAAK,SAAS;AAC7B,MAAI,MAAM,QAAQ,KAAK,CACrB,QAAO,YAAY,KAAK;AAE1B,MAAI,OAAO,SAAS,SAClB,QAAO,IAAI,KAAK,QAAQ,OAAO,OAAO,CAAC,QAAQ,MAAM,OAAM,CAAC;AAE9D,SAAO,GAAG;GACV,CAAC,KAAK,IAAI,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"conditions.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js"],"sourcesContent":["import { Column } from \"../../column.js\";\nimport { is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport {\n isDriverValueEncoder,\n isSQLWrapper,\n Param,\n Placeholder,\n SQL,\n sql,\n StringChunk,\n View\n} from \"../sql.js\";\nfunction bindIfParam(value, column) {\n if (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) {\n return new Param(value, column);\n }\n return value;\n}\nconst eq = (left, right) => {\n return sql`${left} = ${bindIfParam(right, left)}`;\n};\nconst ne = (left, right) => {\n return sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n const conditions = unfilteredConditions.filter(\n (c) => c !== void 0\n );\n if (conditions.length === 0) {\n return void 0;\n }\n if (conditions.length === 1) {\n return new SQL(conditions);\n }\n return new SQL([\n new StringChunk(\"(\"),\n sql.join(conditions, new StringChunk(\" and \")),\n new StringChunk(\")\")\n ]);\n}\nfunction or(...unfilteredConditions) {\n const conditions = unfilteredConditions.filter(\n (c) => c !== void 0\n );\n if (conditions.length === 0) {\n return void 0;\n }\n if (conditions.length === 1) {\n return new SQL(conditions);\n }\n return new SQL([\n new StringChunk(\"(\"),\n sql.join(conditions, new StringChunk(\" or \")),\n new StringChunk(\")\")\n ]);\n}\nfunction not(condition) {\n return sql`not ${condition}`;\n}\nconst gt = (left, right) => {\n return sql`${left} > ${bindIfParam(right, left)}`;\n};\nconst gte = (left, right) => {\n return sql`${left} >= ${bindIfParam(right, left)}`;\n};\nconst lt = (left, right) => {\n return sql`${left} < ${bindIfParam(right, left)}`;\n};\nconst lte = (left, right) => {\n return sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n return sql`false`;\n }\n return sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n }\n return sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n return sql`true`;\n }\n return sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n }\n return sql`${column} not in ${bindIfParam(values, column)}`;\n}\nfunction isNull(value) {\n return sql`${value} is null`;\n}\nfunction isNotNull(value) {\n return sql`${value} is not null`;\n}\nfunction exists(subquery) {\n return sql`exists ${subquery}`;\n}\nfunction notExists(subquery) {\n return sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n return sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(\n max,\n column\n )}`;\n}\nfunction notBetween(column, min, max) {\n return sql`${column} not between ${bindIfParam(\n min,\n column\n )} and ${bindIfParam(max, column)}`;\n}\nfunction like(column, value) {\n return sql`${column} like ${value}`;\n}\nfunction notLike(column, value) {\n return sql`${column} not like ${value}`;\n}\nfunction ilike(column, value) {\n return sql`${column} ilike ${value}`;\n}\nfunction notIlike(column, value) {\n return sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayContains requires at least one value\");\n }\n const array = sql`${bindIfParam(values, column)}`;\n return sql`${column} @> ${array}`;\n }\n return sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayContained requires at least one value\");\n }\n const array = sql`${bindIfParam(values, column)}`;\n return sql`${column} <@ ${array}`;\n }\n return sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayOverlaps requires at least one value\");\n }\n const array = sql`${bindIfParam(values, column)}`;\n return sql`${column} && ${array}`;\n }\n return sql`${column} && ${bindIfParam(values, column)}`;\n}\nexport {\n and,\n arrayContained,\n arrayContains,\n arrayOverlaps,\n between,\n bindIfParam,\n eq,\n exists,\n gt,\n gte,\n ilike,\n inArray,\n isNotNull,\n isNull,\n like,\n lt,\n lte,\n ne,\n not,\n notBetween,\n notExists,\n notIlike,\n notInArray,\n notLike,\n or\n};\n//# sourceMappingURL=conditions.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;AAaA,SAAS,YAAY,OAAO,QAAQ;AAClC,KAAI,qBAAqB,OAAO,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,GAAG,OAAO,MAAM,IAAI,CAAC,GAAG,OAAO,YAAY,IAAI,CAAC,GAAG,OAAO,OAAO,IAAI,CAAC,GAAG,OAAO,MAAM,IAAI,CAAC,GAAG,OAAO,KAAK,CACrK,QAAO,IAAI,MAAM,OAAO,OAAO;AAEjC,QAAO;;AAET,MAAM,MAAM,MAAM,UAAU;AAC1B,QAAO,GAAG,GAAG,KAAK,KAAK,YAAY,OAAO,KAAK;;AAEjD,MAAM,MAAM,MAAM,UAAU;AAC1B,QAAO,GAAG,GAAG,KAAK,MAAM,YAAY,OAAO,KAAK;;AAElD,SAAS,IAAI,GAAG,sBAAsB;CACpC,MAAM,aAAa,qBAAqB,QACrC,MAAM,MAAM,KAAK,EACnB;AACD,KAAI,WAAW,WAAW,EACxB;AAEF,KAAI,WAAW,WAAW,EACxB,QAAO,IAAI,IAAI,WAAW;AAE5B,QAAO,IAAI,IAAI;EACb,IAAI,YAAY,IAAI;EACpB,IAAI,KAAK,YAAY,IAAI,YAAY,QAAQ,CAAC;EAC9C,IAAI,YAAY,IAAI;EACrB,CAAC;;AAEJ,SAAS,GAAG,GAAG,sBAAsB;CACnC,MAAM,aAAa,qBAAqB,QACrC,MAAM,MAAM,KAAK,EACnB;AACD,KAAI,WAAW,WAAW,EACxB;AAEF,KAAI,WAAW,WAAW,EACxB,QAAO,IAAI,IAAI,WAAW;AAE5B,QAAO,IAAI,IAAI;EACb,IAAI,YAAY,IAAI;EACpB,IAAI,KAAK,YAAY,IAAI,YAAY,OAAO,CAAC;EAC7C,IAAI,YAAY,IAAI;EACrB,CAAC;;AAEJ,SAAS,IAAI,WAAW;AACtB,QAAO,GAAG,OAAO;;AAEnB,MAAM,MAAM,MAAM,UAAU;AAC1B,QAAO,GAAG,GAAG,KAAK,KAAK,YAAY,OAAO,KAAK;;AAEjD,MAAM,OAAO,MAAM,UAAU;AAC3B,QAAO,GAAG,GAAG,KAAK,MAAM,YAAY,OAAO,KAAK;;AAElD,MAAM,MAAM,MAAM,UAAU;AAC1B,QAAO,GAAG,GAAG,KAAK,KAAK,YAAY,OAAO,KAAK;;AAEjD,MAAM,OAAO,MAAM,UAAU;AAC3B,QAAO,GAAG,GAAG,KAAK,MAAM,YAAY,OAAO,KAAK;;AAElD,SAAS,QAAQ,QAAQ,QAAQ;AAC/B,KAAI,MAAM,QAAQ,OAAO,EAAE;AACzB,MAAI,OAAO,WAAW,EACpB,QAAO,GAAG;AAEZ,SAAO,GAAG,GAAG,OAAO,MAAM,OAAO,KAAK,MAAM,YAAY,GAAG,OAAO,CAAC;;AAErE,QAAO,GAAG,GAAG,OAAO,MAAM,YAAY,QAAQ,OAAO;;AAEvD,SAAS,WAAW,QAAQ,QAAQ;AAClC,KAAI,MAAM,QAAQ,OAAO,EAAE;AACzB,MAAI,OAAO,WAAW,EACpB,QAAO,GAAG;AAEZ,SAAO,GAAG,GAAG,OAAO,UAAU,OAAO,KAAK,MAAM,YAAY,GAAG,OAAO,CAAC;;AAEzE,QAAO,GAAG,GAAG,OAAO,UAAU,YAAY,QAAQ,OAAO;;AAE3D,SAAS,OAAO,OAAO;AACrB,QAAO,GAAG,GAAG,MAAM;;AAErB,SAAS,UAAU,OAAO;AACxB,QAAO,GAAG,GAAG,MAAM;;AAoBrB,SAAS,KAAK,QAAQ,OAAO;AAC3B,QAAO,GAAG,GAAG,OAAO,QAAQ;;AAE9B,SAAS,QAAQ,QAAQ,OAAO;AAC9B,QAAO,GAAG,GAAG,OAAO,YAAY"}
@@ -1,13 +0,0 @@
1
- import { sql } from "../sql.js";
2
-
3
- //#region ../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js
4
- function asc(column) {
5
- return sql`${column} asc`;
6
- }
7
- function desc(column) {
8
- return sql`${column} desc`;
9
- }
10
-
11
- //#endregion
12
- export { asc, desc };
13
- //# sourceMappingURL=select.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js"],"sourcesContent":["import { sql } from \"../sql.js\";\nfunction asc(column) {\n return sql`${column} asc`;\n}\nfunction desc(column) {\n return sql`${column} desc`;\n}\nexport {\n asc,\n desc\n};\n//# sourceMappingURL=select.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,SAAS,IAAI,QAAQ;AACnB,QAAO,GAAG,GAAG,OAAO;;AAEtB,SAAS,KAAK,QAAQ;AACpB,QAAO,GAAG,GAAG,OAAO"}
@@ -1,10 +0,0 @@
1
- import { sql } from "../sql.js";
2
-
3
- //#region ../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js
4
- function count(expression) {
5
- return sql`count(${expression || sql.raw("*")})`.mapWith(Number);
6
- }
7
-
8
- //#endregion
9
- export { count };
10
- //# sourceMappingURL=aggregate.js.map