@fragno-dev/db 0.1.2 → 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 (137) hide show
  1. package/.turbo/turbo-build.log +195 -144
  2. package/CHANGELOG.md +6 -0
  3. package/LICENSE.md +16 -0
  4. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
  5. package/dist/adapters/drizzle/drizzle-adapter.js +4 -2
  6. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
  7. package/dist/adapters/drizzle/drizzle-query.js +2 -2
  8. package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
  9. package/dist/adapters/drizzle/drizzle-uow-compiler.js +4 -4
  10. package/dist/adapters/drizzle/drizzle-uow-decoder.js +14 -4
  11. package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +1 -1
  12. package/dist/adapters/drizzle/drizzle-uow-executor.js +78 -60
  13. package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -1
  14. package/dist/adapters/drizzle/generate.js +4 -3
  15. package/dist/adapters/drizzle/generate.js.map +1 -1
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  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/sqlite-core/columns/common.js.map +1 -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/sqlite-core/db.js +269 -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/sqlite-core/db.js.map +1 -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/sqlite-core/dialect.js +457 -0
  59. 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
  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/sqlite-core/foreign-keys.js +68 -0
  61. 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
  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/sqlite-core/query-builders/count.js +41 -0
  63. 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
  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/sqlite-core/query-builders/delete.js +119 -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/sqlite-core/query-builders/delete.js.map +1 -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/sqlite-core/query-builders/insert.js +170 -0
  67. 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
  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/sqlite-core/query-builders/query-builder.js +75 -0
  69. 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
  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/sqlite-core/query-builders/query.js +107 -0
  71. 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
  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/sqlite-core/query-builders/raw.js +37 -0
  73. 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
  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/sqlite-core/query-builders/select.js +621 -0
  75. 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
  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/sqlite-core/query-builders/update.js +170 -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/sqlite-core/query-builders/update.js.map +1 -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/sqlite-core/table.js +20 -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/sqlite-core/table.js.map +1 -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/sqlite-core/unique-constraint.js +48 -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/sqlite-core/unique-constraint.js.map +1 -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/sqlite-core/utils.js +17 -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/sqlite-core/utils.js.map +1 -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/sqlite-core/view-base.js +11 -0
  85. 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
  86. 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
  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/subquery.js.map +1 -0
  88. 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
  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/table.js.map +1 -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/table.utils.js +6 -0
  91. 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
  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/tracing-utils.js +8 -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/tracing-utils.js.map +1 -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/tracing.js +8 -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/tracing.js.map +1 -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/utils.js +53 -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/utils.js.map +1 -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/view-common.js +6 -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/view-common.js.map +1 -0
  100. package/dist/schema/serialize.js +3 -0
  101. package/dist/schema/serialize.js.map +1 -1
  102. package/package.json +15 -24
  103. package/src/adapters/drizzle/drizzle-adapter-sqlite.test.ts +585 -0
  104. package/src/adapters/drizzle/drizzle-adapter.test.ts +2 -2
  105. package/src/adapters/drizzle/drizzle-adapter.ts +11 -4
  106. package/src/adapters/drizzle/drizzle-query.ts +2 -2
  107. package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +1 -1
  108. package/src/adapters/drizzle/drizzle-uow-decoder.ts +21 -4
  109. package/src/adapters/drizzle/drizzle-uow-executor.ts +155 -115
  110. package/src/adapters/drizzle/generate.test.ts +14 -14
  111. package/src/adapters/drizzle/generate.ts +9 -5
  112. package/src/schema/serialize.test.ts +1 -0
  113. package/src/schema/serialize.ts +7 -0
  114. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js.map +0 -1
  115. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js.map +0 -1
  116. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js.map +0 -1
  117. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js.map +0 -1
  118. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js.map +0 -1
  119. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +0 -1
  120. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +0 -1
  121. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js.map +0 -1
  122. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js.map +0 -1
  123. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js +0 -13
  124. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js.map +0 -1
  125. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js +0 -10
  126. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js.map +0 -1
  127. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js.map +0 -1
  128. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js.map +0 -1
  129. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js.map +0 -1
  130. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js +0 -6
  131. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js.map +0 -1
  132. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js +0 -8
  133. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js.map +0 -1
  134. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js +0 -8
  135. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js.map +0 -1
  136. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js +0 -6
  137. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js.map +0 -1
@@ -0,0 +1,170 @@
1
+ import { entityKind, is } from "../../entity.js";
2
+ import { Subquery } from "../../subquery.js";
3
+ import { ViewBaseConfig } from "../../view-common.js";
4
+ import { Table } from "../../table.js";
5
+ import { QueryPromise } from "../../query-promise.js";
6
+ import { getTableLikeName, mapUpdateSet, orderSelectedFields } from "../../utils.js";
7
+ import { SelectionProxyHandler } from "../../selection-proxy.js";
8
+ import { SQLiteTable } from "../table.js";
9
+ import { extractUsedTable } from "../utils.js";
10
+ import { SQLiteViewBase } from "../view-base.js";
11
+
12
+ //#region ../../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
13
+ var SQLiteUpdateBuilder = class {
14
+ constructor(table, session, dialect, withList) {
15
+ this.table = table;
16
+ this.session = session;
17
+ this.dialect = dialect;
18
+ this.withList = withList;
19
+ }
20
+ static [entityKind] = "SQLiteUpdateBuilder";
21
+ set(values) {
22
+ return new SQLiteUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);
23
+ }
24
+ };
25
+ var SQLiteUpdateBase = class extends QueryPromise {
26
+ constructor(table, set, session, dialect, withList) {
27
+ super();
28
+ this.session = session;
29
+ this.dialect = dialect;
30
+ this.config = {
31
+ set,
32
+ table,
33
+ withList,
34
+ joins: []
35
+ };
36
+ }
37
+ static [entityKind] = "SQLiteUpdate";
38
+ /** @internal */
39
+ config;
40
+ from(source) {
41
+ this.config.from = source;
42
+ return this;
43
+ }
44
+ createJoin(joinType) {
45
+ return (table, on) => {
46
+ const tableName = getTableLikeName(table);
47
+ if (typeof tableName === "string" && this.config.joins.some((join) => join.alias === tableName)) throw new Error(`Alias "${tableName}" is already used in this query`);
48
+ if (typeof on === "function") {
49
+ const from = this.config.from ? is(table, SQLiteTable) ? table[Table.Symbol.Columns] : is(table, Subquery) ? table._.selectedFields : is(table, SQLiteViewBase) ? table[ViewBaseConfig].selectedFields : void 0 : void 0;
50
+ on = on(new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({
51
+ sqlAliasedBehavior: "sql",
52
+ sqlBehavior: "sql"
53
+ })), from && new Proxy(from, new SelectionProxyHandler({
54
+ sqlAliasedBehavior: "sql",
55
+ sqlBehavior: "sql"
56
+ })));
57
+ }
58
+ this.config.joins.push({
59
+ on,
60
+ table,
61
+ joinType,
62
+ alias: tableName
63
+ });
64
+ return this;
65
+ };
66
+ }
67
+ leftJoin = this.createJoin("left");
68
+ rightJoin = this.createJoin("right");
69
+ innerJoin = this.createJoin("inner");
70
+ fullJoin = this.createJoin("full");
71
+ /**
72
+ * Adds a 'where' clause to the query.
73
+ *
74
+ * Calling this method will update only those rows that fulfill a specified condition.
75
+ *
76
+ * See docs: {@link https://orm.drizzle.team/docs/update}
77
+ *
78
+ * @param where the 'where' clause.
79
+ *
80
+ * @example
81
+ * You can use conditional operators and `sql function` to filter the rows to be updated.
82
+ *
83
+ * ```ts
84
+ * // Update all cars with green color
85
+ * db.update(cars).set({ color: 'red' })
86
+ * .where(eq(cars.color, 'green'));
87
+ * // or
88
+ * db.update(cars).set({ color: 'red' })
89
+ * .where(sql`${cars.color} = 'green'`)
90
+ * ```
91
+ *
92
+ * You can logically combine conditional operators with `and()` and `or()` operators:
93
+ *
94
+ * ```ts
95
+ * // Update all BMW cars with a green color
96
+ * db.update(cars).set({ color: 'red' })
97
+ * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
98
+ *
99
+ * // Update all cars with the green or blue color
100
+ * db.update(cars).set({ color: 'red' })
101
+ * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
102
+ * ```
103
+ */
104
+ where(where) {
105
+ this.config.where = where;
106
+ return this;
107
+ }
108
+ orderBy(...columns) {
109
+ if (typeof columns[0] === "function") {
110
+ const orderBy = columns[0](new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({
111
+ sqlAliasedBehavior: "alias",
112
+ sqlBehavior: "sql"
113
+ })));
114
+ const orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];
115
+ this.config.orderBy = orderByArray;
116
+ } else {
117
+ const orderByArray = columns;
118
+ this.config.orderBy = orderByArray;
119
+ }
120
+ return this;
121
+ }
122
+ limit(limit) {
123
+ this.config.limit = limit;
124
+ return this;
125
+ }
126
+ returning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {
127
+ this.config.returning = orderSelectedFields(fields);
128
+ return this;
129
+ }
130
+ /** @internal */
131
+ getSQL() {
132
+ return this.dialect.buildUpdateQuery(this.config);
133
+ }
134
+ toSQL() {
135
+ const { typings: _typings,...rest } = this.dialect.sqlToQuery(this.getSQL());
136
+ return rest;
137
+ }
138
+ /** @internal */
139
+ _prepare(isOneTimeQuery = true) {
140
+ return this.session[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](this.dialect.sqlToQuery(this.getSQL()), this.config.returning, this.config.returning ? "all" : "run", true, void 0, {
141
+ type: "insert",
142
+ tables: extractUsedTable(this.config.table)
143
+ });
144
+ }
145
+ prepare() {
146
+ return this._prepare(false);
147
+ }
148
+ run = (placeholderValues) => {
149
+ return this._prepare().run(placeholderValues);
150
+ };
151
+ all = (placeholderValues) => {
152
+ return this._prepare().all(placeholderValues);
153
+ };
154
+ get = (placeholderValues) => {
155
+ return this._prepare().get(placeholderValues);
156
+ };
157
+ values = (placeholderValues) => {
158
+ return this._prepare().values(placeholderValues);
159
+ };
160
+ async execute() {
161
+ return this.config.returning ? this.all() : this.run();
162
+ }
163
+ $dynamic() {
164
+ return this;
165
+ }
166
+ };
167
+
168
+ //#endregion
169
+ export { SQLiteUpdateBuilder };
170
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","names":[],"sources":["../../../../../../../../../../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"],"sourcesContent":["import { entityKind, is } from \"../../entity.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { SQLiteTable } from \"../table.js\";\nimport { Subquery } from \"../../subquery.js\";\nimport { Table } from \"../../table.js\";\nimport {\n getTableLikeName,\n mapUpdateSet,\n orderSelectedFields\n} from \"../../utils.js\";\nimport { ViewBaseConfig } from \"../../view-common.js\";\nimport { extractUsedTable } from \"../utils.js\";\nimport { SQLiteViewBase } from \"../view-base.js\";\nclass SQLiteUpdateBuilder {\n constructor(table, session, dialect, withList) {\n this.table = table;\n this.session = session;\n this.dialect = dialect;\n this.withList = withList;\n }\n static [entityKind] = \"SQLiteUpdateBuilder\";\n set(values) {\n return new SQLiteUpdateBase(\n this.table,\n mapUpdateSet(this.table, values),\n this.session,\n this.dialect,\n this.withList\n );\n }\n}\nclass SQLiteUpdateBase extends QueryPromise {\n constructor(table, set, session, dialect, withList) {\n super();\n this.session = session;\n this.dialect = dialect;\n this.config = { set, table, withList, joins: [] };\n }\n static [entityKind] = \"SQLiteUpdate\";\n /** @internal */\n config;\n from(source) {\n this.config.from = source;\n return this;\n }\n createJoin(joinType) {\n return (table, on) => {\n const tableName = getTableLikeName(table);\n if (typeof tableName === \"string\" && this.config.joins.some((join) => join.alias === tableName)) {\n throw new Error(`Alias \"${tableName}\" is already used in this query`);\n }\n if (typeof on === \"function\") {\n const from = this.config.from ? is(table, SQLiteTable) ? table[Table.Symbol.Columns] : is(table, Subquery) ? table._.selectedFields : is(table, SQLiteViewBase) ? table[ViewBaseConfig].selectedFields : void 0 : void 0;\n on = on(\n new Proxy(\n this.config.table[Table.Symbol.Columns],\n new SelectionProxyHandler({ sqlAliasedBehavior: \"sql\", sqlBehavior: \"sql\" })\n ),\n from && new Proxy(\n from,\n new SelectionProxyHandler({ sqlAliasedBehavior: \"sql\", sqlBehavior: \"sql\" })\n )\n );\n }\n this.config.joins.push({ on, table, joinType, alias: tableName });\n return this;\n };\n }\n leftJoin = this.createJoin(\"left\");\n rightJoin = this.createJoin(\"right\");\n innerJoin = this.createJoin(\"inner\");\n fullJoin = this.createJoin(\"full\");\n /**\n * Adds a 'where' clause to the query.\n *\n * Calling this method will update only those rows that fulfill a specified condition.\n *\n * See docs: {@link https://orm.drizzle.team/docs/update}\n *\n * @param where the 'where' clause.\n *\n * @example\n * You can use conditional operators and `sql function` to filter the rows to be updated.\n *\n * ```ts\n * // Update all cars with green color\n * db.update(cars).set({ color: 'red' })\n * .where(eq(cars.color, 'green'));\n * // or\n * db.update(cars).set({ color: 'red' })\n * .where(sql`${cars.color} = 'green'`)\n * ```\n *\n * You can logically combine conditional operators with `and()` and `or()` operators:\n *\n * ```ts\n * // Update all BMW cars with a green color\n * db.update(cars).set({ color: 'red' })\n * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n *\n * // Update all cars with the green or blue color\n * db.update(cars).set({ color: 'red' })\n * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n * ```\n */\n where(where) {\n this.config.where = where;\n return this;\n }\n orderBy(...columns) {\n if (typeof columns[0] === \"function\") {\n const orderBy = columns[0](\n new Proxy(\n this.config.table[Table.Symbol.Columns],\n new SelectionProxyHandler({ sqlAliasedBehavior: \"alias\", sqlBehavior: \"sql\" })\n )\n );\n const orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n this.config.orderBy = orderByArray;\n } else {\n const orderByArray = columns;\n this.config.orderBy = orderByArray;\n }\n return this;\n }\n limit(limit) {\n this.config.limit = limit;\n return this;\n }\n returning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {\n this.config.returning = orderSelectedFields(fields);\n return this;\n }\n /** @internal */\n getSQL() {\n return this.dialect.buildUpdateQuery(this.config);\n }\n toSQL() {\n const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n return rest;\n }\n /** @internal */\n _prepare(isOneTimeQuery = true) {\n return this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](\n this.dialect.sqlToQuery(this.getSQL()),\n this.config.returning,\n this.config.returning ? \"all\" : \"run\",\n true,\n void 0,\n {\n type: \"insert\",\n tables: extractUsedTable(this.config.table)\n }\n );\n }\n prepare() {\n return this._prepare(false);\n }\n run = (placeholderValues) => {\n return this._prepare().run(placeholderValues);\n };\n all = (placeholderValues) => {\n return this._prepare().all(placeholderValues);\n };\n get = (placeholderValues) => {\n return this._prepare().get(placeholderValues);\n };\n values = (placeholderValues) => {\n return this._prepare().values(placeholderValues);\n };\n async execute() {\n return this.config.returning ? this.all() : this.run();\n }\n $dynamic() {\n return this;\n }\n}\nexport {\n SQLiteUpdateBase,\n SQLiteUpdateBuilder\n};\n//# sourceMappingURL=update.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;AAcA,IAAM,sBAAN,MAA0B;CACxB,YAAY,OAAO,SAAS,SAAS,UAAU;AAC7C,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,UAAU;AACf,OAAK,WAAW;;CAElB,QAAQ,cAAc;CACtB,IAAI,QAAQ;AACV,SAAO,IAAI,iBACT,KAAK,OACL,aAAa,KAAK,OAAO,OAAO,EAChC,KAAK,SACL,KAAK,SACL,KAAK,SACN;;;AAGL,IAAM,mBAAN,cAA+B,aAAa;CAC1C,YAAY,OAAO,KAAK,SAAS,SAAS,UAAU;AAClD,SAAO;AACP,OAAK,UAAU;AACf,OAAK,UAAU;AACf,OAAK,SAAS;GAAE;GAAK;GAAO;GAAU,OAAO,EAAE;GAAE;;CAEnD,QAAQ,cAAc;;CAEtB;CACA,KAAK,QAAQ;AACX,OAAK,OAAO,OAAO;AACnB,SAAO;;CAET,WAAW,UAAU;AACnB,UAAQ,OAAO,OAAO;GACpB,MAAM,YAAY,iBAAiB,MAAM;AACzC,OAAI,OAAO,cAAc,YAAY,KAAK,OAAO,MAAM,MAAM,SAAS,KAAK,UAAU,UAAU,CAC7F,OAAM,IAAI,MAAM,UAAU,UAAU,iCAAiC;AAEvE,OAAI,OAAO,OAAO,YAAY;IAC5B,MAAM,OAAO,KAAK,OAAO,OAAO,GAAG,OAAO,YAAY,GAAG,MAAM,MAAM,OAAO,WAAW,GAAG,OAAO,SAAS,GAAG,MAAM,EAAE,iBAAiB,GAAG,OAAO,eAAe,GAAG,MAAM,gBAAgB,iBAAiB,KAAK,IAAI,KAAK;AACvN,SAAK,GACH,IAAI,MACF,KAAK,OAAO,MAAM,MAAM,OAAO,UAC/B,IAAI,sBAAsB;KAAE,oBAAoB;KAAO,aAAa;KAAO,CAAC,CAC7E,EACD,QAAQ,IAAI,MACV,MACA,IAAI,sBAAsB;KAAE,oBAAoB;KAAO,aAAa;KAAO,CAAC,CAC7E,CACF;;AAEH,QAAK,OAAO,MAAM,KAAK;IAAE;IAAI;IAAO;IAAU,OAAO;IAAW,CAAC;AACjE,UAAO;;;CAGX,WAAW,KAAK,WAAW,OAAO;CAClC,YAAY,KAAK,WAAW,QAAQ;CACpC,YAAY,KAAK,WAAW,QAAQ;CACpC,WAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClC,MAAM,OAAO;AACX,OAAK,OAAO,QAAQ;AACpB,SAAO;;CAET,QAAQ,GAAG,SAAS;AAClB,MAAI,OAAO,QAAQ,OAAO,YAAY;GACpC,MAAM,UAAU,QAAQ,GACtB,IAAI,MACF,KAAK,OAAO,MAAM,MAAM,OAAO,UAC/B,IAAI,sBAAsB;IAAE,oBAAoB;IAAS,aAAa;IAAO,CAAC,CAC/E,CACF;GACD,MAAM,eAAe,MAAM,QAAQ,QAAQ,GAAG,UAAU,CAAC,QAAQ;AACjE,QAAK,OAAO,UAAU;SACjB;GACL,MAAM,eAAe;AACrB,QAAK,OAAO,UAAU;;AAExB,SAAO;;CAET,MAAM,OAAO;AACX,OAAK,OAAO,QAAQ;AACpB,SAAO;;CAET,UAAU,SAAS,KAAK,OAAO,MAAM,YAAY,OAAO,UAAU;AAChE,OAAK,OAAO,YAAY,oBAAoB,OAAO;AACnD,SAAO;;;CAGT,SAAS;AACP,SAAO,KAAK,QAAQ,iBAAiB,KAAK,OAAO;;CAEnD,QAAQ;EACN,MAAM,EAAE,SAAS,SAAU,GAAG,SAAS,KAAK,QAAQ,WAAW,KAAK,QAAQ,CAAC;AAC7E,SAAO;;;CAGT,SAAS,iBAAiB,MAAM;AAC9B,SAAO,KAAK,QAAQ,iBAAiB,wBAAwB,gBAC3D,KAAK,QAAQ,WAAW,KAAK,QAAQ,CAAC,EACtC,KAAK,OAAO,WACZ,KAAK,OAAO,YAAY,QAAQ,OAChC,MACA,KAAK,GACL;GACE,MAAM;GACN,QAAQ,iBAAiB,KAAK,OAAO,MAAM;GAC5C,CACF;;CAEH,UAAU;AACR,SAAO,KAAK,SAAS,MAAM;;CAE7B,OAAO,sBAAsB;AAC3B,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAE/C,OAAO,sBAAsB;AAC3B,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAE/C,OAAO,sBAAsB;AAC3B,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAE/C,UAAU,sBAAsB;AAC9B,SAAO,KAAK,UAAU,CAAC,OAAO,kBAAkB;;CAElD,MAAM,UAAU;AACd,SAAO,KAAK,OAAO,YAAY,KAAK,KAAK,GAAG,KAAK,KAAK;;CAExD,WAAW;AACT,SAAO"}
@@ -0,0 +1,20 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { Table } from "../table.js";
3
+
4
+ //#region ../../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
5
+ const InlineForeignKeys = Symbol.for("drizzle:SQLiteInlineForeignKeys");
6
+ var SQLiteTable = class extends Table {
7
+ static [entityKind] = "SQLiteTable";
8
+ /** @internal */
9
+ static Symbol = Object.assign({}, Table.Symbol, { InlineForeignKeys });
10
+ /** @internal */
11
+ [Table.Symbol.Columns];
12
+ /** @internal */
13
+ [InlineForeignKeys] = [];
14
+ /** @internal */
15
+ [Table.Symbol.ExtraConfigBuilder] = void 0;
16
+ };
17
+
18
+ //#endregion
19
+ export { SQLiteTable };
20
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../../../../../../../../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"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { Table } from \"../table.js\";\nimport { getSQLiteColumnBuilders } from \"./columns/all.js\";\nconst InlineForeignKeys = Symbol.for(\"drizzle:SQLiteInlineForeignKeys\");\nclass SQLiteTable extends Table {\n static [entityKind] = \"SQLiteTable\";\n /** @internal */\n static Symbol = Object.assign({}, Table.Symbol, {\n InlineForeignKeys\n });\n /** @internal */\n [Table.Symbol.Columns];\n /** @internal */\n [InlineForeignKeys] = [];\n /** @internal */\n [Table.Symbol.ExtraConfigBuilder] = void 0;\n}\nfunction sqliteTableBase(name, columns, extraConfig, schema, baseName = name) {\n const rawTable = new SQLiteTable(name, schema, baseName);\n const parsedColumns = typeof columns === \"function\" ? columns(getSQLiteColumnBuilders()) : columns;\n const builtColumns = Object.fromEntries(\n Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {\n const colBuilder = colBuilderBase;\n colBuilder.setName(name2);\n const column = colBuilder.build(rawTable);\n rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n return [name2, column];\n })\n );\n const table = Object.assign(rawTable, builtColumns);\n table[Table.Symbol.Columns] = builtColumns;\n table[Table.Symbol.ExtraConfigColumns] = builtColumns;\n if (extraConfig) {\n table[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig;\n }\n return table;\n}\nconst sqliteTable = (name, columns, extraConfig) => {\n return sqliteTableBase(name, columns, extraConfig);\n};\nfunction sqliteTableCreator(customizeTableName) {\n return (name, columns, extraConfig) => {\n return sqliteTableBase(customizeTableName(name), columns, extraConfig, void 0, name);\n };\n}\nexport {\n InlineForeignKeys,\n SQLiteTable,\n sqliteTable,\n sqliteTableCreator\n};\n//# sourceMappingURL=table.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAGA,MAAM,oBAAoB,OAAO,IAAI,kCAAkC;AACvE,IAAM,cAAN,cAA0B,MAAM;CAC9B,QAAQ,cAAc;;CAEtB,OAAO,SAAS,OAAO,OAAO,EAAE,EAAE,MAAM,QAAQ,EAC9C,mBACD,CAAC;;CAEF,CAAC,MAAM,OAAO;;CAEd,CAAC,qBAAqB,EAAE;;CAExB,CAAC,MAAM,OAAO,sBAAsB,KAAK"}
@@ -0,0 +1,48 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { TableName } from "../table.utils.js";
3
+
4
+ //#region ../../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
5
+ function uniqueKeyName(table, columns) {
6
+ return `${table[TableName]}_${columns.join("_")}_unique`;
7
+ }
8
+ var UniqueConstraintBuilder = class {
9
+ constructor(columns, name) {
10
+ this.name = name;
11
+ this.columns = columns;
12
+ }
13
+ static [entityKind] = "SQLiteUniqueConstraintBuilder";
14
+ /** @internal */
15
+ columns;
16
+ /** @internal */
17
+ build(table) {
18
+ return new UniqueConstraint(table, this.columns, this.name);
19
+ }
20
+ };
21
+ var UniqueOnConstraintBuilder = class {
22
+ static [entityKind] = "SQLiteUniqueOnConstraintBuilder";
23
+ /** @internal */
24
+ name;
25
+ constructor(name) {
26
+ this.name = name;
27
+ }
28
+ on(...columns) {
29
+ return new UniqueConstraintBuilder(columns, this.name);
30
+ }
31
+ };
32
+ var UniqueConstraint = class {
33
+ constructor(table, columns, name) {
34
+ this.table = table;
35
+ this.columns = columns;
36
+ this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));
37
+ }
38
+ static [entityKind] = "SQLiteUniqueConstraint";
39
+ columns;
40
+ name;
41
+ getName() {
42
+ return this.name;
43
+ }
44
+ };
45
+
46
+ //#endregion
47
+ export { uniqueKeyName };
48
+ //# sourceMappingURL=unique-constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique-constraint.js","names":[],"sources":["../../../../../../../../../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"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nfunction uniqueKeyName(table, columns) {\n return `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name) {\n this.name = name;\n this.columns = columns;\n }\n static [entityKind] = \"SQLiteUniqueConstraintBuilder\";\n /** @internal */\n columns;\n /** @internal */\n build(table) {\n return new UniqueConstraint(table, this.columns, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static [entityKind] = \"SQLiteUniqueOnConstraintBuilder\";\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, name) {\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n }\n static [entityKind] = \"SQLiteUniqueConstraint\";\n columns;\n name;\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":";;;;AAEA,SAAS,cAAc,OAAO,SAAS;AACrC,QAAO,GAAG,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;;AAKlD,IAAM,0BAAN,MAA8B;CAC5B,YAAY,SAAS,MAAM;AACzB,OAAK,OAAO;AACZ,OAAK,UAAU;;CAEjB,QAAQ,cAAc;;CAEtB;;CAEA,MAAM,OAAO;AACX,SAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,KAAK;;;AAG/D,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,MAAM;AAChC,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK,CAAC;;CAE1F,QAAQ,cAAc;CACtB;CACA;CACA,UAAU;AACR,SAAO,KAAK"}
@@ -0,0 +1,17 @@
1
+ import { is } from "../entity.js";
2
+ import { Subquery } from "../subquery.js";
3
+ import { Table } from "../table.js";
4
+ import { SQL } from "../sql/sql.js";
5
+ import { SQLiteTable } from "./table.js";
6
+
7
+ //#region ../../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
8
+ function extractUsedTable(table) {
9
+ if (is(table, SQLiteTable)) return [`${table[Table.Symbol.BaseName]}`];
10
+ if (is(table, Subquery)) return table._.usedTables ?? [];
11
+ if (is(table, SQL)) return table.usedTables ?? [];
12
+ return [];
13
+ }
14
+
15
+ //#endregion
16
+ export { extractUsedTable };
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../../../../../../../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"],"sourcesContent":["import { is } from \"../entity.js\";\nimport { SQL } from \"../sql/sql.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { Table } from \"../table.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\nimport { CheckBuilder } from \"./checks.js\";\nimport { ForeignKeyBuilder } from \"./foreign-keys.js\";\nimport { IndexBuilder } from \"./indexes.js\";\nimport { PrimaryKeyBuilder } from \"./primary-keys.js\";\nimport { SQLiteTable } from \"./table.js\";\nimport { UniqueConstraintBuilder } from \"./unique-constraint.js\";\nfunction getTableConfig(table) {\n const columns = Object.values(table[SQLiteTable.Symbol.Columns]);\n const indexes = [];\n const checks = [];\n const primaryKeys = [];\n const uniqueConstraints = [];\n const foreignKeys = Object.values(table[SQLiteTable.Symbol.InlineForeignKeys]);\n const name = table[Table.Symbol.Name];\n const extraConfigBuilder = table[SQLiteTable.Symbol.ExtraConfigBuilder];\n if (extraConfigBuilder !== void 0) {\n const extraConfig = extraConfigBuilder(table[SQLiteTable.Symbol.Columns]);\n const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);\n for (const builder of Object.values(extraValues)) {\n if (is(builder, IndexBuilder)) {\n indexes.push(builder.build(table));\n } else if (is(builder, CheckBuilder)) {\n checks.push(builder.build(table));\n } else if (is(builder, UniqueConstraintBuilder)) {\n uniqueConstraints.push(builder.build(table));\n } else if (is(builder, PrimaryKeyBuilder)) {\n primaryKeys.push(builder.build(table));\n } else if (is(builder, ForeignKeyBuilder)) {\n foreignKeys.push(builder.build(table));\n }\n }\n }\n return {\n columns,\n indexes,\n foreignKeys,\n checks,\n primaryKeys,\n uniqueConstraints,\n name\n };\n}\nfunction extractUsedTable(table) {\n if (is(table, SQLiteTable)) {\n return [`${table[Table.Symbol.BaseName]}`];\n }\n if (is(table, Subquery)) {\n return table._.usedTables ?? [];\n }\n if (is(table, SQL)) {\n return table.usedTables ?? [];\n }\n return [];\n}\nfunction getViewConfig(view) {\n return {\n ...view[ViewBaseConfig]\n // ...view[SQLiteViewConfig],\n };\n}\nexport {\n extractUsedTable,\n getTableConfig,\n getViewConfig\n};\n//# sourceMappingURL=utils.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AA+CA,SAAS,iBAAiB,OAAO;AAC/B,KAAI,GAAG,OAAO,YAAY,CACxB,QAAO,CAAC,GAAG,MAAM,MAAM,OAAO,YAAY;AAE5C,KAAI,GAAG,OAAO,SAAS,CACrB,QAAO,MAAM,EAAE,cAAc,EAAE;AAEjC,KAAI,GAAG,OAAO,IAAI,CAChB,QAAO,MAAM,cAAc,EAAE;AAE/B,QAAO,EAAE"}
@@ -0,0 +1,11 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { View } from "../sql/sql.js";
3
+
4
+ //#region ../../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
5
+ var SQLiteViewBase = class extends View {
6
+ static [entityKind] = "SQLiteViewBase";
7
+ };
8
+
9
+ //#endregion
10
+ export { SQLiteViewBase };
11
+ //# sourceMappingURL=view-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-base.js","names":[],"sources":["../../../../../../../../../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"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { View } from \"../sql/sql.js\";\nclass SQLiteViewBase extends View {\n static [entityKind] = \"SQLiteViewBase\";\n}\nexport {\n SQLiteViewBase\n};\n//# sourceMappingURL=view-base.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,IAAM,iBAAN,cAA6B,KAAK;CAChC,QAAQ,cAAc"}
@@ -1,6 +1,6 @@
1
1
  import { entityKind } from "./entity.js";
2
2
 
3
- //#region ../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/subquery.js
3
+ //#region ../../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
4
4
  var Subquery = class {
5
5
  static [entityKind] = "Subquery";
6
6
  constructor(sql, fields, alias, isWith = false, usedTables = []) {
@@ -19,5 +19,5 @@ var WithSubquery = class extends Subquery {
19
19
  };
20
20
 
21
21
  //#endregion
22
- export { Subquery };
22
+ export { Subquery, WithSubquery };
23
23
  //# sourceMappingURL=subquery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subquery.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass Subquery {\n static [entityKind] = \"Subquery\";\n constructor(sql, fields, alias, isWith = false, usedTables = []) {\n this._ = {\n brand: \"Subquery\",\n sql,\n selectedFields: fields,\n alias,\n isWith,\n usedTables\n };\n }\n // getSQL(): SQL<unknown> {\n // \treturn new SQL([this]);\n // }\n}\nclass WithSubquery extends Subquery {\n static [entityKind] = \"WithSubquery\";\n}\nexport {\n Subquery,\n WithSubquery\n};\n//# sourceMappingURL=subquery.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,WAAN,MAAe;CACb,QAAQ,cAAc;CACtB,YAAY,KAAK,QAAQ,OAAO,SAAS,OAAO,aAAa,EAAE,EAAE;AAC/D,OAAK,IAAI;GACP,OAAO;GACP;GACA,gBAAgB;GAChB;GACA;GACA;GACD;;;AAML,IAAM,eAAN,cAA2B,SAAS;CAClC,QAAQ,cAAc"}
@@ -1,7 +1,7 @@
1
1
  import { entityKind } from "./entity.js";
2
2
  import { TableName } from "./table.utils.js";
3
3
 
4
- //#region ../../node_modules/.bun/drizzle-orm@0.44.6+4fae081eecb963e2/node_modules/drizzle-orm/table.js
4
+ //#region ../../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
5
5
  const Schema = Symbol.for("drizzle:Schema");
6
6
  const Columns = Symbol.for("drizzle:Columns");
7
7
  const ExtraConfigColumns = Symbol.for("drizzle:ExtraConfigColumns");
@@ -56,7 +56,13 @@ var Table = class {
56
56
  this[BaseName] = baseName;
57
57
  }
58
58
  };
59
+ function getTableName(table) {
60
+ return table[TableName];
61
+ }
62
+ function getTableUniqueName(table) {
63
+ return `${table[Schema] ?? "public"}.${table[TableName]}`;
64
+ }
59
65
 
60
66
  //#endregion
61
- export { IsAlias, Table };
67
+ export { Columns, IsAlias, Table, getTableName, getTableUniqueName };
62
68
  //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nimport { TableName } from \"./table.utils.js\";\nconst Schema = Symbol.for(\"drizzle:Schema\");\nconst Columns = Symbol.for(\"drizzle:Columns\");\nconst ExtraConfigColumns = Symbol.for(\"drizzle:ExtraConfigColumns\");\nconst OriginalName = Symbol.for(\"drizzle:OriginalName\");\nconst BaseName = Symbol.for(\"drizzle:BaseName\");\nconst IsAlias = Symbol.for(\"drizzle:IsAlias\");\nconst ExtraConfigBuilder = Symbol.for(\"drizzle:ExtraConfigBuilder\");\nconst IsDrizzleTable = Symbol.for(\"drizzle:IsDrizzleTable\");\nclass Table {\n static [entityKind] = \"Table\";\n /** @internal */\n static Symbol = {\n Name: TableName,\n Schema,\n OriginalName,\n Columns,\n ExtraConfigColumns,\n BaseName,\n IsAlias,\n ExtraConfigBuilder\n };\n /**\n * @internal\n * Can be changed if the table is aliased.\n */\n [TableName];\n /**\n * @internal\n * Used to store the original name of the table, before any aliasing.\n */\n [OriginalName];\n /** @internal */\n [Schema];\n /** @internal */\n [Columns];\n /** @internal */\n [ExtraConfigColumns];\n /**\n * @internal\n * Used to store the table name before the transformation via the `tableCreator` functions.\n */\n [BaseName];\n /** @internal */\n [IsAlias] = false;\n /** @internal */\n [IsDrizzleTable] = true;\n /** @internal */\n [ExtraConfigBuilder] = void 0;\n constructor(name, schema, baseName) {\n this[TableName] = this[OriginalName] = name;\n this[Schema] = schema;\n this[BaseName] = baseName;\n }\n}\nfunction isTable(table) {\n return typeof table === \"object\" && table !== null && IsDrizzleTable in table;\n}\nfunction getTableName(table) {\n return table[TableName];\n}\nfunction getTableUniqueName(table) {\n return `${table[Schema] ?? \"public\"}.${table[TableName]}`;\n}\nexport {\n BaseName,\n Columns,\n ExtraConfigBuilder,\n ExtraConfigColumns,\n IsAlias,\n OriginalName,\n Schema,\n Table,\n getTableName,\n getTableUniqueName,\n isTable\n};\n//# sourceMappingURL=table.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAC3C,MAAM,UAAU,OAAO,IAAI,kBAAkB;AAC7C,MAAM,qBAAqB,OAAO,IAAI,6BAA6B;AACnE,MAAM,eAAe,OAAO,IAAI,uBAAuB;AACvD,MAAM,WAAW,OAAO,IAAI,mBAAmB;AAC/C,MAAM,UAAU,OAAO,IAAI,kBAAkB;AAC7C,MAAM,qBAAqB,OAAO,IAAI,6BAA6B;AACnE,MAAM,iBAAiB,OAAO,IAAI,yBAAyB;AAC3D,IAAM,QAAN,MAAY;CACV,QAAQ,cAAc;;CAEtB,OAAO,SAAS;EACd,MAAM;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;;;;CAKD,CAAC;;;;;CAKD,CAAC;;CAED,CAAC;;CAED,CAAC;;CAED,CAAC;;;;;CAKD,CAAC;;CAED,CAAC,WAAW;;CAEZ,CAAC,kBAAkB;;CAEnB,CAAC,sBAAsB,KAAK;CAC5B,YAAY,MAAM,QAAQ,UAAU;AAClC,OAAK,aAAa,KAAK,gBAAgB;AACvC,OAAK,UAAU;AACf,OAAK,YAAY;;;AAMrB,SAAS,aAAa,OAAO;AAC3B,QAAO,MAAM;;AAEf,SAAS,mBAAmB,OAAO;AACjC,QAAO,GAAG,MAAM,WAAW,SAAS,GAAG,MAAM"}
@@ -0,0 +1,6 @@
1
+ //#region ../../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
2
+ const TableName = Symbol.for("drizzle:Name");
3
+
4
+ //#endregion
5
+ export { TableName };
6
+ //# sourceMappingURL=table.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.utils.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["const TableName = Symbol.for(\"drizzle:Name\");\nexport {\n TableName\n};\n//# sourceMappingURL=table.utils.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,MAAM,YAAY,OAAO,IAAI,eAAe"}
@@ -0,0 +1,8 @@
1
+ //#region ../../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
2
+ function iife(fn, ...args) {
3
+ return fn(...args);
4
+ }
5
+
6
+ //#endregion
7
+ export { iife };
8
+ //# sourceMappingURL=tracing-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-utils.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["function iife(fn, ...args) {\n return fn(...args);\n}\nexport {\n iife\n};\n//# sourceMappingURL=tracing-utils.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAS,KAAK,IAAI,GAAG,MAAM;AACzB,QAAO,GAAG,GAAG,KAAK"}
@@ -0,0 +1,8 @@
1
+ //#region ../../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
2
+ const tracer = { startActiveSpan(name, fn) {
3
+ return fn();
4
+ } };
5
+
6
+ //#endregion
7
+ export { tracer };
8
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["import { iife } from \"./tracing-utils.js\";\nimport { npmVersion } from \"./version.js\";\nlet otel;\nlet rawTracer;\nconst tracer = {\n startActiveSpan(name, fn) {\n if (!otel) {\n return fn();\n }\n if (!rawTracer) {\n rawTracer = otel.trace.getTracer(\"drizzle-orm\", npmVersion);\n }\n return iife(\n (otel2, rawTracer2) => rawTracer2.startActiveSpan(\n name,\n (span) => {\n try {\n return fn(span);\n } catch (e) {\n span.setStatus({\n code: otel2.SpanStatusCode.ERROR,\n message: e instanceof Error ? e.message : \"Unknown error\"\n // eslint-disable-line no-instanceof/no-instanceof\n });\n throw e;\n } finally {\n span.end();\n }\n }\n ),\n otel,\n rawTracer\n );\n }\n};\nexport {\n tracer\n};\n//# sourceMappingURL=tracing.js.map"],"x_google_ignoreList":[0],"mappings":";AAIA,MAAM,SAAS,EACb,gBAAgB,MAAM,IAAI;AAEtB,QAAO,IAAI;GA2BhB"}
@@ -0,0 +1,53 @@
1
+ import { is } from "./entity.js";
2
+ import { Column } from "./column.js";
3
+ import { Subquery } from "./subquery.js";
4
+ import { ViewBaseConfig } from "./view-common.js";
5
+ import { Table } from "./table.js";
6
+ import { Param, SQL, View } from "./sql/sql.js";
7
+
8
+ //#region ../../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
9
+ function orderSelectedFields(fields, pathPrefix) {
10
+ return Object.entries(fields).reduce((result, [name, field]) => {
11
+ if (typeof name !== "string") return result;
12
+ const newPath = pathPrefix ? [...pathPrefix, name] : [name];
13
+ if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) result.push({
14
+ path: newPath,
15
+ field
16
+ });
17
+ else if (is(field, Table)) result.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));
18
+ else result.push(...orderSelectedFields(field, newPath));
19
+ return result;
20
+ }, []);
21
+ }
22
+ function haveSameKeys(left, right) {
23
+ const leftKeys = Object.keys(left);
24
+ const rightKeys = Object.keys(right);
25
+ if (leftKeys.length !== rightKeys.length) return false;
26
+ for (const [index, key] of leftKeys.entries()) if (key !== rightKeys[index]) return false;
27
+ return true;
28
+ }
29
+ function mapUpdateSet(table, values) {
30
+ const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {
31
+ if (is(value, SQL) || is(value, Column)) return [key, value];
32
+ else return [key, new Param(value, table[Table.Symbol.Columns][key])];
33
+ });
34
+ if (entries.length === 0) throw new Error("No values to set");
35
+ return Object.fromEntries(entries);
36
+ }
37
+ function applyMixins(baseClass, extendedClasses) {
38
+ for (const extendedClass of extendedClasses) for (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {
39
+ if (name === "constructor") continue;
40
+ Object.defineProperty(baseClass.prototype, name, Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || /* @__PURE__ */ Object.create(null));
41
+ }
42
+ }
43
+ function getTableColumns(table) {
44
+ return table[Table.Symbol.Columns];
45
+ }
46
+ function getTableLikeName(table) {
47
+ return is(table, Subquery) ? table._.alias : is(table, View) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : table[Table.Symbol.IsAlias] ? table[Table.Symbol.Name] : table[Table.Symbol.BaseName];
48
+ }
49
+ const textDecoder = typeof TextDecoder === "undefined" ? null : new TextDecoder();
50
+
51
+ //#endregion
52
+ export { applyMixins, getTableColumns, getTableLikeName, haveSameKeys, mapUpdateSet, orderSelectedFields };
53
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["import { Column } from \"./column.js\";\nimport { is } from \"./entity.js\";\nimport { Param, SQL, View } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { getTableName, Table } from \"./table.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\nfunction mapResultRow(columns, row, joinsNotNullableMap) {\n const nullifyMap = {};\n const result = columns.reduce(\n (result2, { path, field }, columnIndex) => {\n let decoder;\n if (is(field, Column)) {\n decoder = field;\n } else if (is(field, SQL)) {\n decoder = field.decoder;\n } else {\n decoder = field.sql.decoder;\n }\n let node = result2;\n for (const [pathChunkIndex, pathChunk] of path.entries()) {\n if (pathChunkIndex < path.length - 1) {\n if (!(pathChunk in node)) {\n node[pathChunk] = {};\n }\n node = node[pathChunk];\n } else {\n const rawValue = row[columnIndex];\n const value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n if (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n const objectName = path[0];\n if (!(objectName in nullifyMap)) {\n nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n } else if (typeof nullifyMap[objectName] === \"string\" && nullifyMap[objectName] !== getTableName(field.table)) {\n nullifyMap[objectName] = false;\n }\n }\n }\n }\n return result2;\n },\n {}\n );\n if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n for (const [objectName, tableName] of Object.entries(nullifyMap)) {\n if (typeof tableName === \"string\" && !joinsNotNullableMap[tableName]) {\n result[objectName] = null;\n }\n }\n }\n return result;\n}\nfunction orderSelectedFields(fields, pathPrefix) {\n return Object.entries(fields).reduce((result, [name, field]) => {\n if (typeof name !== \"string\") {\n return result;\n }\n const newPath = pathPrefix ? [...pathPrefix, name] : [name];\n if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n result.push({ path: newPath, field });\n } else if (is(field, Table)) {\n result.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n } else {\n result.push(...orderSelectedFields(field, newPath));\n }\n return result;\n }, []);\n}\nfunction haveSameKeys(left, right) {\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n for (const [index, key] of leftKeys.entries()) {\n if (key !== rightKeys[index]) {\n return false;\n }\n }\n return true;\n}\nfunction mapUpdateSet(table, values) {\n const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {\n if (is(value, SQL) || is(value, Column)) {\n return [key, value];\n } else {\n return [key, new Param(value, table[Table.Symbol.Columns][key])];\n }\n });\n if (entries.length === 0) {\n throw new Error(\"No values to set\");\n }\n return Object.fromEntries(entries);\n}\nfunction applyMixins(baseClass, extendedClasses) {\n for (const extendedClass of extendedClasses) {\n for (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n if (name === \"constructor\") continue;\n Object.defineProperty(\n baseClass.prototype,\n name,\n Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || /* @__PURE__ */ Object.create(null)\n );\n }\n }\n}\nfunction getTableColumns(table) {\n return table[Table.Symbol.Columns];\n}\nfunction getViewSelectedFields(view) {\n return view[ViewBaseConfig].selectedFields;\n}\nfunction getTableLikeName(table) {\n return is(table, Subquery) ? table._.alias : is(table, View) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : table[Table.Symbol.IsAlias] ? table[Table.Symbol.Name] : table[Table.Symbol.BaseName];\n}\nfunction getColumnNameAndConfig(a, b) {\n return {\n name: typeof a === \"string\" && a.length > 0 ? a : \"\",\n config: typeof a === \"object\" ? a : b\n };\n}\nconst _ = {};\nconst __ = {};\nfunction isConfig(data) {\n if (typeof data !== \"object\" || data === null) return false;\n if (data.constructor.name !== \"Object\") return false;\n if (\"logger\" in data) {\n const type = typeof data[\"logger\"];\n if (type !== \"boolean\" && (type !== \"object\" || typeof data[\"logger\"][\"logQuery\"] !== \"function\") && type !== \"undefined\") return false;\n return true;\n }\n if (\"schema\" in data) {\n const type = typeof data[\"schema\"];\n if (type !== \"object\" && type !== \"undefined\") return false;\n return true;\n }\n if (\"casing\" in data) {\n const type = typeof data[\"casing\"];\n if (type !== \"string\" && type !== \"undefined\") return false;\n return true;\n }\n if (\"mode\" in data) {\n if (data[\"mode\"] !== \"default\" || data[\"mode\"] !== \"planetscale\" || data[\"mode\"] !== void 0) return false;\n return true;\n }\n if (\"connection\" in data) {\n const type = typeof data[\"connection\"];\n if (type !== \"string\" && type !== \"object\" && type !== \"undefined\") return false;\n return true;\n }\n if (\"client\" in data) {\n const type = typeof data[\"client\"];\n if (type !== \"object\" && type !== \"function\" && type !== \"undefined\") return false;\n return true;\n }\n if (Object.keys(data).length === 0) return true;\n return false;\n}\nconst textDecoder = typeof TextDecoder === \"undefined\" ? null : new TextDecoder();\nexport {\n applyMixins,\n getColumnNameAndConfig,\n getTableColumns,\n getTableLikeName,\n getViewSelectedFields,\n haveSameKeys,\n isConfig,\n mapResultRow,\n mapUpdateSet,\n orderSelectedFields,\n textDecoder\n};\n//# sourceMappingURL=utils.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;AAmDA,SAAS,oBAAoB,QAAQ,YAAY;AAC/C,QAAO,OAAO,QAAQ,OAAO,CAAC,QAAQ,QAAQ,CAAC,MAAM,WAAW;AAC9D,MAAI,OAAO,SAAS,SAClB,QAAO;EAET,MAAM,UAAU,aAAa,CAAC,GAAG,YAAY,KAAK,GAAG,CAAC,KAAK;AAC3D,MAAI,GAAG,OAAO,OAAO,IAAI,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,IAAI,QAAQ,CAC/D,QAAO,KAAK;GAAE,MAAM;GAAS;GAAO,CAAC;WAC5B,GAAG,OAAO,MAAM,CACzB,QAAO,KAAK,GAAG,oBAAoB,MAAM,MAAM,OAAO,UAAU,QAAQ,CAAC;MAEzE,QAAO,KAAK,GAAG,oBAAoB,OAAO,QAAQ,CAAC;AAErD,SAAO;IACN,EAAE,CAAC;;AAER,SAAS,aAAa,MAAM,OAAO;CACjC,MAAM,WAAW,OAAO,KAAK,KAAK;CAClC,MAAM,YAAY,OAAO,KAAK,MAAM;AACpC,KAAI,SAAS,WAAW,UAAU,OAChC,QAAO;AAET,MAAK,MAAM,CAAC,OAAO,QAAQ,SAAS,SAAS,CAC3C,KAAI,QAAQ,UAAU,OACpB,QAAO;AAGX,QAAO;;AAET,SAAS,aAAa,OAAO,QAAQ;CACnC,MAAM,UAAU,OAAO,QAAQ,OAAO,CAAC,QAAQ,GAAG,WAAW,UAAU,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,WAAW;AACnG,MAAI,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,OAAO,CACrC,QAAO,CAAC,KAAK,MAAM;MAEnB,QAAO,CAAC,KAAK,IAAI,MAAM,OAAO,MAAM,MAAM,OAAO,SAAS,KAAK,CAAC;GAElE;AACF,KAAI,QAAQ,WAAW,EACrB,OAAM,IAAI,MAAM,mBAAmB;AAErC,QAAO,OAAO,YAAY,QAAQ;;AAEpC,SAAS,YAAY,WAAW,iBAAiB;AAC/C,MAAK,MAAM,iBAAiB,gBAC1B,MAAK,MAAM,QAAQ,OAAO,oBAAoB,cAAc,UAAU,EAAE;AACtE,MAAI,SAAS,cAAe;AAC5B,SAAO,eACL,UAAU,WACV,MACA,OAAO,yBAAyB,cAAc,WAAW,KAAK,IAAoB,uBAAO,OAAO,KAAK,CACtG;;;AAIP,SAAS,gBAAgB,OAAO;AAC9B,QAAO,MAAM,MAAM,OAAO;;AAK5B,SAAS,iBAAiB,OAAO;AAC/B,QAAO,GAAG,OAAO,SAAS,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,KAAK,GAAG,MAAM,gBAAgB,OAAO,GAAG,OAAO,IAAI,GAAG,KAAK,IAAI,MAAM,MAAM,OAAO,WAAW,MAAM,MAAM,OAAO,QAAQ,MAAM,MAAM,OAAO;;AA6CpM,MAAM,cAAc,OAAO,gBAAgB,cAAc,OAAO,IAAI,aAAa"}
@@ -0,0 +1,6 @@
1
+ //#region ../../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
2
+ const ViewBaseConfig = Symbol.for("drizzle:ViewBaseConfig");
3
+
4
+ //#endregion
5
+ export { ViewBaseConfig };
6
+ //# sourceMappingURL=view-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-common.js","names":[],"sources":["../../../../../../../../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"],"sourcesContent":["const ViewBaseConfig = Symbol.for(\"drizzle:ViewBaseConfig\");\nexport {\n ViewBaseConfig\n};\n//# sourceMappingURL=view-common.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,MAAM,iBAAiB,OAAO,IAAI,yBAAyB"}
@@ -9,6 +9,9 @@ function schemaToDBType(column, provider) {
9
9
  if (provider === "sqlite") return "integer";
10
10
  if (provider === "mssql") return "bigint";
11
11
  }
12
+ if ("role" in column && column.role === "reference") {
13
+ if (provider === "sqlite") return "integer";
14
+ }
12
15
  if (provider === "sqlite") switch (type) {
13
16
  case "integer":
14
17
  case "timestamp":
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","names":["supportJson: SQLProvider[]"],"sources":["../../src/schema/serialize.ts"],"sourcesContent":["import type { SQLProvider } from \"../shared/providers\";\nimport type { AnyColumn } from \"./create\";\nimport { FragnoId, FragnoReference } from \"./create\";\n\nexport interface AdditionalColumnMetadata {\n length?: number;\n precision?: number;\n scale?: number;\n}\n\n/**\n * Get the possible column types that the raw DB type can map to.\n */\nexport function dbToSchemaType(\n dbType: string,\n provider: SQLProvider,\n additional: AdditionalColumnMetadata,\n): (AnyColumn[\"type\"] | \"varchar(n)\")[] {\n dbType = dbType.toLowerCase();\n if (provider === \"sqlite\") {\n switch (dbType) {\n case \"integer\":\n return [\"bool\", \"date\", \"timestamp\", \"bigint\", \"integer\"];\n case \"text\":\n return [\"json\", \"string\", \"bigint\", \"varchar(n)\"];\n case \"real\":\n case \"numeric\":\n return [\"decimal\"];\n case \"blob\":\n return [\"bigint\", \"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n switch (dbType) {\n case \"decimal\":\n case \"real\":\n case \"numeric\":\n case \"double precision\":\n return [\"decimal\"];\n case \"timestamp\":\n case \"timestamptz\":\n return [\"timestamp\"];\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\"];\n }\n case \"text\":\n return [\"string\"];\n case \"boolean\":\n case \"bool\":\n return [\"bool\"];\n case \"bytea\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"mysql\") {\n switch (dbType) {\n case \"bool\":\n case \"boolean\":\n return [\"bool\"];\n case \"integer\":\n case \"int\":\n return [\"integer\"];\n case \"decimal\":\n case \"numeric\":\n case \"float\":\n case \"double\":\n return [\"decimal\"];\n case \"datetime\":\n return [\"timestamp\"];\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\"];\n }\n case \"text\":\n return [\"string\"];\n case \"longblob\":\n case \"blob\":\n case \"mediumblob\":\n case \"tinyblob\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"mssql\") {\n switch (dbType) {\n case \"int\":\n return [\"integer\"];\n case \"decimal\":\n case \"float\":\n case \"real\":\n case \"numeric\":\n return [\"decimal\"];\n case \"bit\":\n return [\"bool\"];\n case \"datetime\":\n case \"datetime2\":\n return [\"timestamp\"];\n case \"nvarchar\":\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\", \"json\"];\n }\n case \"ntext\":\n case \"text\":\n case \"varchar(max)\":\n case \"nvarchar(max)\":\n return [\"string\", \"json\"];\n case \"binary\":\n case \"varbinary\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n throw new Error(`unhandled database provider: ${provider}`);\n}\n\n/**\n * Database type literals that can be returned by schemaToDBType\n */\nexport type DBTypeLiteral =\n // PostgreSQL/CockroachDB types\n | \"bigserial\"\n | \"serial\"\n | \"boolean\"\n | \"bool\"\n | \"json\"\n | \"text\"\n | \"bytea\"\n | \"timestamp\"\n | \"timestamptz\"\n | \"bigint\"\n | \"integer\"\n | \"decimal\"\n | \"date\"\n // MySQL types\n | \"longblob\"\n | \"datetime\"\n // SQLite types\n | \"blob\"\n | \"real\"\n // MSSQL types\n | \"bit\"\n | \"int\"\n | \"varbinary(max)\"\n | \"varchar(max)\"\n // varchar with length parameter\n | `varchar(${number})`;\n\nexport function schemaToDBType(\n column: AnyColumn | Pick<AnyColumn, \"type\">,\n provider: SQLProvider,\n): DBTypeLiteral {\n const { type } = column;\n\n // Handle internal ID columns with auto-increment\n if (\"role\" in column && column.role === \"internal-id\") {\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n return \"bigserial\";\n }\n if (provider === \"mysql\") {\n return \"bigint\";\n }\n if (provider === \"sqlite\") {\n return \"integer\"; // SQLite uses INTEGER for auto-increment\n }\n if (provider === \"mssql\") {\n return \"bigint\";\n }\n }\n\n if (provider === \"sqlite\") {\n switch (type) {\n case \"integer\":\n case \"timestamp\":\n case \"date\":\n case \"bool\":\n return \"integer\";\n case \"binary\":\n case \"bigint\":\n return \"blob\";\n case \"json\":\n case \"string\":\n return \"text\";\n case \"decimal\":\n return \"real\";\n default:\n // sqlite doesn't support varchar\n if (type.startsWith(\"varchar\")) {\n return \"text\";\n }\n }\n }\n\n if (provider === \"mssql\") {\n switch (type) {\n case \"bool\":\n return \"bit\";\n case \"timestamp\":\n return \"datetime\";\n case \"integer\":\n return \"int\";\n case \"string\":\n return \"varchar(max)\";\n case \"binary\":\n return \"varbinary(max)\";\n // only 2025 preview supports JSON natively\n case \"json\":\n return \"varchar(max)\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n switch (type) {\n case \"bool\":\n return \"boolean\";\n case \"json\":\n return \"json\";\n case \"string\":\n return \"text\";\n case \"binary\":\n return \"bytea\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n if (provider === \"mysql\") {\n switch (type) {\n case \"bool\":\n return \"boolean\";\n case \"string\":\n return \"text\";\n case \"binary\":\n return \"longblob\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n throw new Error(`cannot handle ${provider} ${type}`);\n}\n\nconst supportJson: SQLProvider[] = [\"postgresql\", \"cockroachdb\", \"mysql\"];\n\n/**\n * Parse from driver value\n */\nexport function deserialize(value: unknown, col: AnyColumn, provider: SQLProvider) {\n if (value === null) {\n return null;\n }\n\n if (!supportJson.includes(provider) && col.type === \"json\" && typeof value === \"string\") {\n return JSON.parse(value);\n }\n\n if (\n provider === \"sqlite\" &&\n (col.type === \"timestamp\" || col.type === \"date\") &&\n (typeof value === \"number\" || typeof value === \"string\")\n ) {\n return new Date(value);\n }\n\n if (col.type === \"bool\" && typeof value === \"number\") {\n return value === 1;\n }\n\n if (col.type === \"bigint\" && value instanceof Buffer) {\n return value.readBigInt64BE(0);\n }\n\n if (col.type === \"bigint\" && typeof value === \"string\") {\n return BigInt(value);\n }\n\n if (col.type === \"binary\" && value instanceof Buffer) {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n\n return value;\n}\n\n/**\n * Encode to driver value\n */\nexport function serialize(value: unknown, col: AnyColumn, provider: SQLProvider) {\n if (value === null) {\n return null;\n }\n\n // Handle FragnoReference objects (for reference columns)\n if (value instanceof FragnoReference) {\n return value.internalId;\n }\n\n // Handle FragnoId objects\n if (value instanceof FragnoId) {\n // For external ID columns, use the external ID\n if (col.role === \"external-id\") {\n return value.externalId;\n }\n // For internal ID columns, use the internal ID (must be present)\n if (col.role === \"internal-id\") {\n if (!value.internalId) {\n throw new Error(`FragnoId must have internalId for internal-id column ${col.name}`);\n }\n return value.internalId;\n }\n // For reference columns, prefer internal ID if available\n if (col.role === \"reference\") {\n return value.databaseId;\n }\n // Default to external ID for other columns\n return value.externalId;\n }\n\n if (!supportJson.includes(provider) && col.type === \"json\") {\n return JSON.stringify(value);\n }\n\n if (provider === \"sqlite\" && value instanceof Date) {\n return value.getTime();\n }\n\n if (provider === \"sqlite\" && typeof value === \"boolean\") {\n return value ? 1 : 0;\n }\n\n if (provider === \"sqlite\" && typeof value === \"bigint\") {\n const buf = Buffer.alloc(8);\n buf.writeBigInt64BE(value);\n return buf;\n }\n\n // most drivers accept Buffer\n if (col.type === \"binary\" && value instanceof Uint8Array) {\n return Buffer.from(value);\n }\n\n return value;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","names":["supportJson: SQLProvider[]"],"sources":["../../src/schema/serialize.ts"],"sourcesContent":["import type { SQLProvider } from \"../shared/providers\";\nimport type { AnyColumn } from \"./create\";\nimport { FragnoId, FragnoReference } from \"./create\";\n\nexport interface AdditionalColumnMetadata {\n length?: number;\n precision?: number;\n scale?: number;\n}\n\n/**\n * Get the possible column types that the raw DB type can map to.\n */\nexport function dbToSchemaType(\n dbType: string,\n provider: SQLProvider,\n additional: AdditionalColumnMetadata,\n): (AnyColumn[\"type\"] | \"varchar(n)\")[] {\n dbType = dbType.toLowerCase();\n if (provider === \"sqlite\") {\n switch (dbType) {\n case \"integer\":\n return [\"bool\", \"date\", \"timestamp\", \"bigint\", \"integer\"];\n case \"text\":\n return [\"json\", \"string\", \"bigint\", \"varchar(n)\"];\n case \"real\":\n case \"numeric\":\n return [\"decimal\"];\n case \"blob\":\n return [\"bigint\", \"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n switch (dbType) {\n case \"decimal\":\n case \"real\":\n case \"numeric\":\n case \"double precision\":\n return [\"decimal\"];\n case \"timestamp\":\n case \"timestamptz\":\n return [\"timestamp\"];\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\"];\n }\n case \"text\":\n return [\"string\"];\n case \"boolean\":\n case \"bool\":\n return [\"bool\"];\n case \"bytea\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"mysql\") {\n switch (dbType) {\n case \"bool\":\n case \"boolean\":\n return [\"bool\"];\n case \"integer\":\n case \"int\":\n return [\"integer\"];\n case \"decimal\":\n case \"numeric\":\n case \"float\":\n case \"double\":\n return [\"decimal\"];\n case \"datetime\":\n return [\"timestamp\"];\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\"];\n }\n case \"text\":\n return [\"string\"];\n case \"longblob\":\n case \"blob\":\n case \"mediumblob\":\n case \"tinyblob\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n if (provider === \"mssql\") {\n switch (dbType) {\n case \"int\":\n return [\"integer\"];\n case \"decimal\":\n case \"float\":\n case \"real\":\n case \"numeric\":\n return [\"decimal\"];\n case \"bit\":\n return [\"bool\"];\n case \"datetime\":\n case \"datetime2\":\n return [\"timestamp\"];\n case \"nvarchar\":\n case \"varchar\": {\n const len = additional.length;\n if (len != null) {\n return [`varchar(${len})`];\n }\n return [\"string\", \"json\"];\n }\n case \"ntext\":\n case \"text\":\n case \"varchar(max)\":\n case \"nvarchar(max)\":\n return [\"string\", \"json\"];\n case \"binary\":\n case \"varbinary\":\n return [\"binary\"];\n default:\n return [dbType as AnyColumn[\"type\"]];\n }\n }\n\n throw new Error(`unhandled database provider: ${provider}`);\n}\n\n/**\n * Database type literals that can be returned by schemaToDBType\n */\nexport type DBTypeLiteral =\n // PostgreSQL/CockroachDB types\n | \"bigserial\"\n | \"serial\"\n | \"boolean\"\n | \"bool\"\n | \"json\"\n | \"text\"\n | \"bytea\"\n | \"timestamp\"\n | \"timestamptz\"\n | \"bigint\"\n | \"integer\"\n | \"decimal\"\n | \"date\"\n // MySQL types\n | \"longblob\"\n | \"datetime\"\n // SQLite types\n | \"blob\"\n | \"real\"\n // MSSQL types\n | \"bit\"\n | \"int\"\n | \"varbinary(max)\"\n | \"varchar(max)\"\n // varchar with length parameter\n | `varchar(${number})`;\n\nexport function schemaToDBType(\n column: AnyColumn | Pick<AnyColumn, \"type\">,\n provider: SQLProvider,\n): DBTypeLiteral {\n const { type } = column;\n\n // Handle internal ID columns with auto-increment\n if (\"role\" in column && column.role === \"internal-id\") {\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n return \"bigserial\";\n }\n if (provider === \"mysql\") {\n return \"bigint\";\n }\n if (provider === \"sqlite\") {\n return \"integer\"; // SQLite uses INTEGER for auto-increment\n }\n if (provider === \"mssql\") {\n return \"bigint\";\n }\n }\n\n if (\"role\" in column && column.role === \"reference\") {\n if (provider === \"sqlite\") {\n return \"integer\";\n }\n // Other providers use bigint for references\n }\n\n if (provider === \"sqlite\") {\n switch (type) {\n case \"integer\":\n case \"timestamp\":\n case \"date\":\n case \"bool\":\n return \"integer\";\n case \"binary\":\n case \"bigint\":\n return \"blob\";\n case \"json\":\n case \"string\":\n return \"text\";\n case \"decimal\":\n return \"real\";\n default:\n // sqlite doesn't support varchar\n if (type.startsWith(\"varchar\")) {\n return \"text\";\n }\n }\n }\n\n if (provider === \"mssql\") {\n switch (type) {\n case \"bool\":\n return \"bit\";\n case \"timestamp\":\n return \"datetime\";\n case \"integer\":\n return \"int\";\n case \"string\":\n return \"varchar(max)\";\n case \"binary\":\n return \"varbinary(max)\";\n // only 2025 preview supports JSON natively\n case \"json\":\n return \"varchar(max)\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n if (provider === \"postgresql\" || provider === \"cockroachdb\") {\n switch (type) {\n case \"bool\":\n return \"boolean\";\n case \"json\":\n return \"json\";\n case \"string\":\n return \"text\";\n case \"binary\":\n return \"bytea\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n if (provider === \"mysql\") {\n switch (type) {\n case \"bool\":\n return \"boolean\";\n case \"string\":\n return \"text\";\n case \"binary\":\n return \"longblob\";\n default:\n if (type.startsWith(\"varchar\")) {\n return type as `varchar(${number})`;\n }\n return type;\n }\n }\n\n throw new Error(`cannot handle ${provider} ${type}`);\n}\n\nconst supportJson: SQLProvider[] = [\"postgresql\", \"cockroachdb\", \"mysql\"];\n\n/**\n * Parse from driver value\n */\nexport function deserialize(value: unknown, col: AnyColumn, provider: SQLProvider) {\n if (value === null) {\n return null;\n }\n\n if (!supportJson.includes(provider) && col.type === \"json\" && typeof value === \"string\") {\n return JSON.parse(value);\n }\n\n if (\n provider === \"sqlite\" &&\n (col.type === \"timestamp\" || col.type === \"date\") &&\n (typeof value === \"number\" || typeof value === \"string\")\n ) {\n return new Date(value);\n }\n\n if (col.type === \"bool\" && typeof value === \"number\") {\n return value === 1;\n }\n\n if (col.type === \"bigint\" && value instanceof Buffer) {\n return value.readBigInt64BE(0);\n }\n\n if (col.type === \"bigint\" && typeof value === \"string\") {\n return BigInt(value);\n }\n\n if (col.type === \"binary\" && value instanceof Buffer) {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n\n return value;\n}\n\n/**\n * Encode to driver value\n */\nexport function serialize(value: unknown, col: AnyColumn, provider: SQLProvider) {\n if (value === null) {\n return null;\n }\n\n // Handle FragnoReference objects (for reference columns)\n if (value instanceof FragnoReference) {\n return value.internalId;\n }\n\n // Handle FragnoId objects\n if (value instanceof FragnoId) {\n // For external ID columns, use the external ID\n if (col.role === \"external-id\") {\n return value.externalId;\n }\n // For internal ID columns, use the internal ID (must be present)\n if (col.role === \"internal-id\") {\n if (!value.internalId) {\n throw new Error(`FragnoId must have internalId for internal-id column ${col.name}`);\n }\n return value.internalId;\n }\n // For reference columns, prefer internal ID if available\n if (col.role === \"reference\") {\n return value.databaseId;\n }\n // Default to external ID for other columns\n return value.externalId;\n }\n\n if (!supportJson.includes(provider) && col.type === \"json\") {\n return JSON.stringify(value);\n }\n\n if (provider === \"sqlite\" && value instanceof Date) {\n return value.getTime();\n }\n\n if (provider === \"sqlite\" && typeof value === \"boolean\") {\n return value ? 1 : 0;\n }\n\n if (provider === \"sqlite\" && typeof value === \"bigint\") {\n const buf = Buffer.alloc(8);\n buf.writeBigInt64BE(value);\n return buf;\n }\n\n // most drivers accept Buffer\n if (col.type === \"binary\" && value instanceof Uint8Array) {\n return Buffer.from(value);\n }\n\n return value;\n}\n"],"mappings":"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"}