@alvax-ai/db 0.1.0

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 (304) hide show
  1. package/dist/check-migration-numbering.d.ts +2 -0
  2. package/dist/check-migration-numbering.d.ts.map +1 -0
  3. package/dist/check-migration-numbering.js +64 -0
  4. package/dist/check-migration-numbering.js.map +1 -0
  5. package/dist/client.d.ts +33 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/client.js +382 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/embedded-postgres-error.d.ts +9 -0
  10. package/dist/embedded-postgres-error.d.ts.map +1 -0
  11. package/dist/embedded-postgres-error.js +73 -0
  12. package/dist/embedded-postgres-error.js.map +1 -0
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +6 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/migrate.d.ts +2 -0
  18. package/dist/migrate.d.ts.map +1 -0
  19. package/dist/migrate.js +25 -0
  20. package/dist/migrate.js.map +1 -0
  21. package/dist/migration-runtime.d.ts +7 -0
  22. package/dist/migration-runtime.d.ts.map +1 -0
  23. package/dist/migration-runtime.js +164 -0
  24. package/dist/migration-runtime.js.map +1 -0
  25. package/dist/migrations/0000_solid_sir_ram.sql +21 -0
  26. package/dist/migrations/0001_goofy_reavers.sql +185 -0
  27. package/dist/migrations/0002_majestic_vanisher.sql +188 -0
  28. package/dist/migrations/0003_narrow_kabuki.sql +58 -0
  29. package/dist/migrations/0004_stormy_vapor.sql +65 -0
  30. package/dist/migrations/0005_public_blade.sql +59 -0
  31. package/dist/migrations/0006_clean_firestar.sql +52 -0
  32. package/dist/migrations/0007_modern_wilson_fisk.sql +22 -0
  33. package/dist/migrations/0008_slim_beyonder.sql +20 -0
  34. package/dist/migrations/0009_minor_charles_xavier.sql +108 -0
  35. package/dist/migrations/0010_glamorous_tusk.sql +37 -0
  36. package/dist/migrations/0011_neat_mystique.sql +120 -0
  37. package/dist/migrations/0012_clumsy_dazzler.sql +36 -0
  38. package/dist/migrations/0013_perfect_ares.sql +96 -0
  39. package/dist/migrations/0014_overjoyed_hitman.sql +1 -0
  40. package/dist/migrations/0015_graceful_ultimo.sql +43 -0
  41. package/dist/migrations/0016_far_reavers.sql +68 -0
  42. package/dist/migrations/0017_lame_sauron.sql +34 -0
  43. package/dist/migrations/0018_ambiguous_master_mold.sql +51 -0
  44. package/dist/migrations/0019_material_joshua_kane.sql +15 -0
  45. package/dist/migrations/0020_mature_jack_murdock.sql +3 -0
  46. package/dist/migrations/0021_safe_vulture.sql +2 -0
  47. package/dist/migrations/0022_bumpy_wrecker.sql +73 -0
  48. package/dist/migrations/0023_tan_bruce_banner.sql +1 -0
  49. package/dist/migrations/0024_moaning_guardsmen.sql +44 -0
  50. package/dist/migrations/meta/0000_snapshot.json +162 -0
  51. package/dist/migrations/meta/0001_snapshot.json +1761 -0
  52. package/dist/migrations/meta/0002_snapshot.json +3466 -0
  53. package/dist/migrations/meta/0003_snapshot.json +4003 -0
  54. package/dist/migrations/meta/0004_snapshot.json +4628 -0
  55. package/dist/migrations/meta/0005_snapshot.json +5156 -0
  56. package/dist/migrations/meta/0006_snapshot.json +5613 -0
  57. package/dist/migrations/meta/0007_snapshot.json +5786 -0
  58. package/dist/migrations/meta/0008_snapshot.json +5966 -0
  59. package/dist/migrations/meta/0009_snapshot.json +6944 -0
  60. package/dist/migrations/meta/0010_snapshot.json +7243 -0
  61. package/dist/migrations/meta/0011_snapshot.json +8324 -0
  62. package/dist/migrations/meta/0012_snapshot.json +8647 -0
  63. package/dist/migrations/meta/0013_snapshot.json +9448 -0
  64. package/dist/migrations/meta/0014_snapshot.json +9455 -0
  65. package/dist/migrations/meta/0015_snapshot.json +9845 -0
  66. package/dist/migrations/meta/0016_snapshot.json +10457 -0
  67. package/dist/migrations/meta/0017_snapshot.json +10802 -0
  68. package/dist/migrations/meta/0018_snapshot.json +11289 -0
  69. package/dist/migrations/meta/0019_snapshot.json +11425 -0
  70. package/dist/migrations/meta/0020_snapshot.json +11445 -0
  71. package/dist/migrations/meta/0021_snapshot.json +11459 -0
  72. package/dist/migrations/meta/0022_snapshot.json +12063 -0
  73. package/dist/migrations/meta/0023_snapshot.json +12069 -0
  74. package/dist/migrations/meta/0024_snapshot.json +12524 -0
  75. package/dist/migrations/meta/_journal.json +181 -0
  76. package/dist/runtime-config.d.ts +11 -0
  77. package/dist/runtime-config.d.ts.map +1 -0
  78. package/dist/runtime-config.js +56 -0
  79. package/dist/runtime-config.js.map +1 -0
  80. package/dist/schema/activity_log.d.ts +197 -0
  81. package/dist/schema/activity_log.d.ts.map +1 -0
  82. package/dist/schema/activity_log.js +24 -0
  83. package/dist/schema/activity_log.js.map +1 -0
  84. package/dist/schema/agent_runtime_state.d.ts +248 -0
  85. package/dist/schema/agent_runtime_state.d.ts.map +1 -0
  86. package/dist/schema/agent_runtime_state.js +23 -0
  87. package/dist/schema/agent_runtime_state.js.map +1 -0
  88. package/dist/schema/agent_task_sessions.d.ts +197 -0
  89. package/dist/schema/agent_task_sessions.d.ts.map +1 -0
  90. package/dist/schema/agent_task_sessions.js +22 -0
  91. package/dist/schema/agent_task_sessions.js.map +1 -0
  92. package/dist/schema/agent_wakeup_requests.d.ts +333 -0
  93. package/dist/schema/agent_wakeup_requests.d.ts.map +1 -0
  94. package/dist/schema/agent_wakeup_requests.js +29 -0
  95. package/dist/schema/agent_wakeup_requests.js.map +1 -0
  96. package/dist/schema/agents.d.ts +390 -0
  97. package/dist/schema/agents.d.ts.map +1 -0
  98. package/dist/schema/agents.js +32 -0
  99. package/dist/schema/agents.js.map +1 -0
  100. package/dist/schema/approval_comments.d.ts +144 -0
  101. package/dist/schema/approval_comments.d.ts.map +1 -0
  102. package/dist/schema/approval_comments.js +19 -0
  103. package/dist/schema/approval_comments.js.map +1 -0
  104. package/dist/schema/approvals.d.ts +214 -0
  105. package/dist/schema/approvals.d.ts.map +1 -0
  106. package/dist/schema/approvals.js +20 -0
  107. package/dist/schema/approvals.js.map +1 -0
  108. package/dist/schema/assets.d.ts +212 -0
  109. package/dist/schema/assets.d.ts.map +1 -0
  110. package/dist/schema/assets.js +23 -0
  111. package/dist/schema/assets.js.map +1 -0
  112. package/dist/schema/budget_incidents.d.ts +297 -0
  113. package/dist/schema/budget_incidents.d.ts.map +1 -0
  114. package/dist/schema/budget_incidents.js +29 -0
  115. package/dist/schema/budget_incidents.js.map +1 -0
  116. package/dist/schema/budget_policies.d.ts +263 -0
  117. package/dist/schema/budget_policies.d.ts.map +1 -0
  118. package/dist/schema/budget_policies.js +24 -0
  119. package/dist/schema/budget_policies.js.map +1 -0
  120. package/dist/schema/command_context_summaries.d.ts +127 -0
  121. package/dist/schema/command_context_summaries.d.ts.map +1 -0
  122. package/dist/schema/command_context_summaries.js +16 -0
  123. package/dist/schema/command_context_summaries.js.map +1 -0
  124. package/dist/schema/command_messages.d.ts +163 -0
  125. package/dist/schema/command_messages.d.ts.map +1 -0
  126. package/dist/schema/command_messages.js +20 -0
  127. package/dist/schema/command_messages.js.map +1 -0
  128. package/dist/schema/command_threads.d.ts +127 -0
  129. package/dist/schema/command_threads.d.ts.map +1 -0
  130. package/dist/schema/command_threads.js +14 -0
  131. package/dist/schema/command_threads.js.map +1 -0
  132. package/dist/schema/companies.d.ts +301 -0
  133. package/dist/schema/companies.d.ts.map +1 -0
  134. package/dist/schema/companies.js +27 -0
  135. package/dist/schema/companies.js.map +1 -0
  136. package/dist/schema/company_profile_setup_messages.d.ts +171 -0
  137. package/dist/schema/company_profile_setup_messages.d.ts.map +1 -0
  138. package/dist/schema/company_profile_setup_messages.js +18 -0
  139. package/dist/schema/company_profile_setup_messages.js.map +1 -0
  140. package/dist/schema/company_profile_setup_runs.d.ts +234 -0
  141. package/dist/schema/company_profile_setup_runs.d.ts.map +1 -0
  142. package/dist/schema/company_profile_setup_runs.js +22 -0
  143. package/dist/schema/company_profile_setup_runs.js.map +1 -0
  144. package/dist/schema/company_profile_setup_sessions.d.ts +179 -0
  145. package/dist/schema/company_profile_setup_sessions.d.ts.map +1 -0
  146. package/dist/schema/company_profile_setup_sessions.js +18 -0
  147. package/dist/schema/company_profile_setup_sessions.js.map +1 -0
  148. package/dist/schema/company_profiles.d.ts +291 -0
  149. package/dist/schema/company_profiles.d.ts.map +1 -0
  150. package/dist/schema/company_profiles.js +24 -0
  151. package/dist/schema/company_profiles.js.map +1 -0
  152. package/dist/schema/company_runtime_adapter_checks.d.ts +206 -0
  153. package/dist/schema/company_runtime_adapter_checks.d.ts.map +1 -0
  154. package/dist/schema/company_runtime_adapter_checks.js +19 -0
  155. package/dist/schema/company_runtime_adapter_checks.js.map +1 -0
  156. package/dist/schema/company_runtime_profiles.d.ts +165 -0
  157. package/dist/schema/company_runtime_profiles.d.ts.map +1 -0
  158. package/dist/schema/company_runtime_profiles.js +18 -0
  159. package/dist/schema/company_runtime_profiles.js.map +1 -0
  160. package/dist/schema/company_secret_versions.d.ts +163 -0
  161. package/dist/schema/company_secret_versions.d.ts.map +1 -0
  162. package/dist/schema/company_secret_versions.js +19 -0
  163. package/dist/schema/company_secret_versions.js.map +1 -0
  164. package/dist/schema/company_secrets.d.ts +195 -0
  165. package/dist/schema/company_secrets.d.ts.map +1 -0
  166. package/dist/schema/company_secrets.js +21 -0
  167. package/dist/schema/company_secrets.js.map +1 -0
  168. package/dist/schema/company_skills.d.ts +284 -0
  169. package/dist/schema/company_skills.d.ts.map +1 -0
  170. package/dist/schema/company_skills.js +24 -0
  171. package/dist/schema/company_skills.js.map +1 -0
  172. package/dist/schema/cost_events.d.ts +314 -0
  173. package/dist/schema/cost_events.d.ts.map +1 -0
  174. package/dist/schema/cost_events.js +34 -0
  175. package/dist/schema/cost_events.js.map +1 -0
  176. package/dist/schema/document_revisions.d.ts +212 -0
  177. package/dist/schema/document_revisions.d.ts.map +1 -0
  178. package/dist/schema/document_revisions.js +23 -0
  179. package/dist/schema/document_revisions.js.map +1 -0
  180. package/dist/schema/documents.d.ts +229 -0
  181. package/dist/schema/documents.d.ts.map +1 -0
  182. package/dist/schema/documents.js +22 -0
  183. package/dist/schema/documents.js.map +1 -0
  184. package/dist/schema/environments.d.ts +182 -0
  185. package/dist/schema/environments.d.ts.map +1 -0
  186. package/dist/schema/environments.js +22 -0
  187. package/dist/schema/environments.js.map +1 -0
  188. package/dist/schema/execution_workspaces.d.ts +418 -0
  189. package/dist/schema/execution_workspaces.d.ts.map +1 -0
  190. package/dist/schema/execution_workspaces.js +38 -0
  191. package/dist/schema/execution_workspaces.js.map +1 -0
  192. package/dist/schema/goals.d.ts +178 -0
  193. package/dist/schema/goals.d.ts.map +1 -0
  194. package/dist/schema/goals.js +18 -0
  195. package/dist/schema/goals.js.map +1 -0
  196. package/dist/schema/heartbeat_run_events.d.ts +214 -0
  197. package/dist/schema/heartbeat_run_events.d.ts.map +1 -0
  198. package/dist/schema/heartbeat_run_events.js +23 -0
  199. package/dist/schema/heartbeat_run_events.js.map +1 -0
  200. package/dist/schema/heartbeat_runs.d.ts +830 -0
  201. package/dist/schema/heartbeat_runs.d.ts.map +1 -0
  202. package/dist/schema/heartbeat_runs.js +62 -0
  203. package/dist/schema/heartbeat_runs.js.map +1 -0
  204. package/dist/schema/inbox_dismissals.d.ts +127 -0
  205. package/dist/schema/inbox_dismissals.d.ts.map +1 -0
  206. package/dist/schema/inbox_dismissals.js +16 -0
  207. package/dist/schema/inbox_dismissals.js.map +1 -0
  208. package/dist/schema/index.d.ts +56 -0
  209. package/dist/schema/index.d.ts.map +1 -0
  210. package/dist/schema/index.js +56 -0
  211. package/dist/schema/index.js.map +1 -0
  212. package/dist/schema/issue_approvals.d.ts +110 -0
  213. package/dist/schema/issue_approvals.d.ts.map +1 -0
  214. package/dist/schema/issue_approvals.js +19 -0
  215. package/dist/schema/issue_approvals.js.map +1 -0
  216. package/dist/schema/issue_comments.d.ts +216 -0
  217. package/dist/schema/issue_comments.d.ts.map +1 -0
  218. package/dist/schema/issue_comments.js +25 -0
  219. package/dist/schema/issue_comments.js.map +1 -0
  220. package/dist/schema/issue_documents.d.ts +127 -0
  221. package/dist/schema/issue_documents.d.ts.map +1 -0
  222. package/dist/schema/issue_documents.js +18 -0
  223. package/dist/schema/issue_documents.js.map +1 -0
  224. package/dist/schema/issue_inbox_archives.d.ts +127 -0
  225. package/dist/schema/issue_inbox_archives.d.ts.map +1 -0
  226. package/dist/schema/issue_inbox_archives.js +17 -0
  227. package/dist/schema/issue_inbox_archives.js.map +1 -0
  228. package/dist/schema/issue_read_states.d.ts +127 -0
  229. package/dist/schema/issue_read_states.d.ts.map +1 -0
  230. package/dist/schema/issue_read_states.js +17 -0
  231. package/dist/schema/issue_read_states.js.map +1 -0
  232. package/dist/schema/issue_relations.d.ts +163 -0
  233. package/dist/schema/issue_relations.d.ts.map +1 -0
  234. package/dist/schema/issue_relations.js +21 -0
  235. package/dist/schema/issue_relations.js.map +1 -0
  236. package/dist/schema/issue_thread_interactions.d.ts +352 -0
  237. package/dist/schema/issue_thread_interactions.d.ts.map +1 -0
  238. package/dist/schema/issue_thread_interactions.js +38 -0
  239. package/dist/schema/issue_thread_interactions.js.map +1 -0
  240. package/dist/schema/issue_tree_hold_members.d.ts +280 -0
  241. package/dist/schema/issue_tree_hold_members.d.ts.map +1 -0
  242. package/dist/schema/issue_tree_hold_members.js +29 -0
  243. package/dist/schema/issue_tree_hold_members.js.map +1 -0
  244. package/dist/schema/issue_tree_holds.d.ts +352 -0
  245. package/dist/schema/issue_tree_holds.d.ts.map +1 -0
  246. package/dist/schema/issue_tree_holds.js +31 -0
  247. package/dist/schema/issue_tree_holds.js.map +1 -0
  248. package/dist/schema/issue_work_products.d.ts +350 -0
  249. package/dist/schema/issue_work_products.d.ts.map +1 -0
  250. package/dist/schema/issue_work_products.js +33 -0
  251. package/dist/schema/issue_work_products.js.map +1 -0
  252. package/dist/schema/issues.d.ts +781 -0
  253. package/dist/schema/issues.d.ts.map +1 -0
  254. package/dist/schema/issues.js +104 -0
  255. package/dist/schema/issues.js.map +1 -0
  256. package/dist/schema/knowledge_data_table_columns.d.ts +280 -0
  257. package/dist/schema/knowledge_data_table_columns.d.ts.map +1 -0
  258. package/dist/schema/knowledge_data_table_columns.js +37 -0
  259. package/dist/schema/knowledge_data_table_columns.js.map +1 -0
  260. package/dist/schema/knowledge_data_table_rows.d.ts +214 -0
  261. package/dist/schema/knowledge_data_table_rows.d.ts.map +1 -0
  262. package/dist/schema/knowledge_data_table_rows.js +27 -0
  263. package/dist/schema/knowledge_data_table_rows.js.map +1 -0
  264. package/dist/schema/knowledge_data_tables.d.ts +212 -0
  265. package/dist/schema/knowledge_data_tables.d.ts.map +1 -0
  266. package/dist/schema/knowledge_data_tables.js +25 -0
  267. package/dist/schema/knowledge_data_tables.js.map +1 -0
  268. package/dist/schema/knowledge_documents.d.ts +231 -0
  269. package/dist/schema/knowledge_documents.d.ts.map +1 -0
  270. package/dist/schema/knowledge_documents.js +29 -0
  271. package/dist/schema/knowledge_documents.js.map +1 -0
  272. package/dist/schema/project_goals.d.ts +93 -0
  273. package/dist/schema/project_goals.d.ts.map +1 -0
  274. package/dist/schema/project_goals.js +17 -0
  275. package/dist/schema/project_goals.js.map +1 -0
  276. package/dist/schema/project_workspaces.d.ts +333 -0
  277. package/dist/schema/project_workspaces.d.ts.map +1 -0
  278. package/dist/schema/project_workspaces.js +31 -0
  279. package/dist/schema/project_workspaces.js.map +1 -0
  280. package/dist/schema/projects.d.ts +284 -0
  281. package/dist/schema/projects.d.ts.map +1 -0
  282. package/dist/schema/projects.js +25 -0
  283. package/dist/schema/projects.js.map +1 -0
  284. package/dist/schema/routines.d.ts +1277 -0
  285. package/dist/schema/routines.d.ts.map +1 -0
  286. package/dist/schema/routines.js +108 -0
  287. package/dist/schema/routines.js.map +1 -0
  288. package/dist/schema/system_assistant_run_events.d.ts +180 -0
  289. package/dist/schema/system_assistant_run_events.d.ts.map +1 -0
  290. package/dist/schema/system_assistant_run_events.js +19 -0
  291. package/dist/schema/system_assistant_run_events.js.map +1 -0
  292. package/dist/schema/system_assistant_runs.d.ts +195 -0
  293. package/dist/schema/system_assistant_runs.d.ts.map +1 -0
  294. package/dist/schema/system_assistant_runs.js +23 -0
  295. package/dist/schema/system_assistant_runs.js.map +1 -0
  296. package/dist/schema/workspace_operations.d.ts +367 -0
  297. package/dist/schema/workspace_operations.d.ts.map +1 -0
  298. package/dist/schema/workspace_operations.js +35 -0
  299. package/dist/schema/workspace_operations.js.map +1 -0
  300. package/dist/schema/workspace_runtime_services.d.ts +469 -0
  301. package/dist/schema/workspace_runtime_services.d.ts.map +1 -0
  302. package/dist/schema/workspace_runtime_services.js +46 -0
  303. package/dist/schema/workspace_runtime_services.js.map +1 -0
  304. package/package.json +56 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check-migration-numbering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-migration-numbering.d.ts","sourceRoot":"","sources":["../src/check-migration-numbering.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { fileURLToPath } from "node:url";
3
+ const migrationsDir = fileURLToPath(new URL("./migrations", import.meta.url));
4
+ const journalPath = fileURLToPath(new URL("./migrations/meta/_journal.json", import.meta.url));
5
+ function migrationNumber(value) {
6
+ const match = value.match(/^(\d{4})_/);
7
+ return match ? match[1] : null;
8
+ }
9
+ function ensureNoDuplicates(values, label) {
10
+ const seen = new Map();
11
+ for (const value of values) {
12
+ const number = migrationNumber(value);
13
+ if (!number) {
14
+ throw new Error(`${label} entry does not start with a 4-digit migration number: ${value}`);
15
+ }
16
+ const existing = seen.get(number);
17
+ if (existing) {
18
+ throw new Error(`Duplicate migration number ${number} in ${label}: ${existing}, ${value}`);
19
+ }
20
+ seen.set(number, value);
21
+ }
22
+ }
23
+ function ensureStrictlyOrdered(values, label) {
24
+ const sorted = [...values].sort();
25
+ for (let index = 0; index < values.length; index += 1) {
26
+ if (values[index] !== sorted[index]) {
27
+ throw new Error(`${label} are out of order at position ${index}: expected ${sorted[index]}, found ${values[index]}`);
28
+ }
29
+ }
30
+ }
31
+ function ensureJournalMatchesFiles(migrationFiles, journalTags) {
32
+ const journalFiles = journalTags.map((tag) => `${tag}.sql`);
33
+ if (journalFiles.length !== migrationFiles.length) {
34
+ throw new Error(`Migration journal/file count mismatch: journal has ${journalFiles.length}, files have ${migrationFiles.length}`);
35
+ }
36
+ for (let index = 0; index < migrationFiles.length; index += 1) {
37
+ const migrationFile = migrationFiles[index];
38
+ const journalFile = journalFiles[index];
39
+ if (migrationFile !== journalFile) {
40
+ throw new Error(`Migration journal/file order mismatch at position ${index}: journal has ${journalFile}, files have ${migrationFile}`);
41
+ }
42
+ }
43
+ }
44
+ async function main() {
45
+ const migrationFiles = (await readdir(migrationsDir))
46
+ .filter((entry) => entry.endsWith(".sql"))
47
+ .sort();
48
+ ensureNoDuplicates(migrationFiles, "migration files");
49
+ ensureStrictlyOrdered(migrationFiles, "migration files");
50
+ const rawJournal = await readFile(journalPath, "utf8");
51
+ const journal = JSON.parse(rawJournal);
52
+ const journalTags = (journal.entries ?? [])
53
+ .map((entry, index) => {
54
+ if (typeof entry.tag !== "string" || entry.tag.length === 0) {
55
+ throw new Error(`Migration journal entry ${index} is missing a tag`);
56
+ }
57
+ return entry.tag;
58
+ });
59
+ ensureNoDuplicates(journalTags, "migration journal");
60
+ ensureStrictlyOrdered(journalTags, "migration journal");
61
+ ensureJournalMatchesFiles(migrationFiles, journalTags);
62
+ }
63
+ await main();
64
+ //# sourceMappingURL=check-migration-numbering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-migration-numbering.js","sourceRoot":"","sources":["../src/check-migration-numbering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import postgres from "postgres";
2
+ import * as schema from "./schema/index.js";
3
+ export type SqlClient = ReturnType<typeof createSqlClient>;
4
+ export declare function createSqlClient(url: string): postgres.Sql<{}>;
5
+ export type MigrationState = {
6
+ status: "upToDate";
7
+ tableCount: number;
8
+ availableMigrations: string[];
9
+ appliedMigrations: string[];
10
+ } | {
11
+ status: "needsMigrations";
12
+ tableCount: number;
13
+ availableMigrations: string[];
14
+ appliedMigrations: string[];
15
+ pendingMigrations: string[];
16
+ reason: "no-migration-journal-empty-db" | "no-migration-journal-non-empty-db" | "pending-migrations";
17
+ };
18
+ export declare function createDb(url: string): import("drizzle-orm/postgres-js").PostgresJsDatabase<typeof schema> & {
19
+ $client: postgres.Sql<{}>;
20
+ };
21
+ export declare function createDbClient(url: string): {
22
+ db: import("drizzle-orm/postgres-js").PostgresJsDatabase<typeof schema> & {
23
+ $client: postgres.Sql<{}>;
24
+ };
25
+ close: () => Promise<void>;
26
+ };
27
+ export declare function getPostgresDataDirectory(url: string): Promise<string | null>;
28
+ export declare function inspectMigrations(url: string): Promise<MigrationState>;
29
+ export declare function applyPendingMigrations(url: string): Promise<void>;
30
+ export declare function ensurePostgresDatabase(url: string, databaseName: string): Promise<"created" | "exists">;
31
+ export type Db = ReturnType<typeof createDb>;
32
+ export type DbClient = ReturnType<typeof createDbClient>;
33
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAM5C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAE3D,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,oBAE1C;AAsBD,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACtG;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,+BAA+B,GAAG,mCAAmC,GAAG,oBAAoB,CAAC;CACtG,CAAC;AAEN,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM;;EAEnC;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM;;;;;EAOzC;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAalF;AAySD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D5E;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvE;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAiB/B;AAED,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
package/dist/client.js ADDED
@@ -0,0 +1,382 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readdir, readFile } from "node:fs/promises";
3
+ import { fileURLToPath } from "node:url";
4
+ import { drizzle as drizzlePg } from "drizzle-orm/postgres-js";
5
+ import { migrate as migratePg } from "drizzle-orm/postgres-js/migrator";
6
+ import postgres from "postgres";
7
+ import * as schema from "./schema/index.js";
8
+ const MIGRATIONS_FOLDER = fileURLToPath(new URL("./migrations", import.meta.url));
9
+ const DRIZZLE_MIGRATIONS_TABLE = "__drizzle_migrations";
10
+ const MIGRATIONS_JOURNAL_JSON = fileURLToPath(new URL("./migrations/meta/_journal.json", import.meta.url));
11
+ export function createSqlClient(url) {
12
+ return postgres(url, { max: 1, onnotice: () => { } });
13
+ }
14
+ function isSafeIdentifier(value) {
15
+ return /^[A-Za-z_][A-Za-z0-9_]*$/.test(value);
16
+ }
17
+ function quoteIdentifier(value) {
18
+ if (!isSafeIdentifier(value))
19
+ throw new Error(`Unsafe SQL identifier: ${value}`);
20
+ return `"${value.replaceAll("\"", "\"\"")}"`;
21
+ }
22
+ function quoteLiteral(value) {
23
+ return `'${value.replaceAll("'", "''")}'`;
24
+ }
25
+ function splitMigrationStatements(content) {
26
+ return content
27
+ .split("--> statement-breakpoint")
28
+ .map((statement) => statement.trim())
29
+ .filter((statement) => statement.length > 0);
30
+ }
31
+ export function createDb(url) {
32
+ return createDbClient(url).db;
33
+ }
34
+ export function createDbClient(url) {
35
+ const sql = postgres(url);
36
+ const db = drizzlePg(sql, { schema });
37
+ return {
38
+ db,
39
+ close: () => sql.end(),
40
+ };
41
+ }
42
+ export async function getPostgresDataDirectory(url) {
43
+ const sql = createSqlClient(url);
44
+ try {
45
+ const rows = await sql `
46
+ SELECT current_setting('data_directory', true) AS data_directory
47
+ `;
48
+ const actual = rows[0]?.data_directory;
49
+ return typeof actual === "string" && actual.length > 0 ? actual : null;
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ finally {
55
+ await sql.end();
56
+ }
57
+ }
58
+ async function listMigrationFiles() {
59
+ const entries = await readdir(MIGRATIONS_FOLDER, { withFileTypes: true });
60
+ return entries
61
+ .filter((entry) => entry.isFile() && entry.name.endsWith(".sql"))
62
+ .map((entry) => entry.name)
63
+ .sort((a, b) => a.localeCompare(b));
64
+ }
65
+ async function listJournalMigrationEntries() {
66
+ try {
67
+ const raw = await readFile(MIGRATIONS_JOURNAL_JSON, "utf8");
68
+ const parsed = JSON.parse(raw);
69
+ if (!Array.isArray(parsed.entries))
70
+ return [];
71
+ return parsed.entries
72
+ .map((entry, entryIndex) => {
73
+ if (typeof entry?.tag !== "string")
74
+ return null;
75
+ if (typeof entry?.when !== "number" || !Number.isFinite(entry.when))
76
+ return null;
77
+ const order = Number.isInteger(entry.idx) ? Number(entry.idx) : entryIndex;
78
+ return { fileName: `${entry.tag}.sql`, folderMillis: entry.when, order };
79
+ })
80
+ .filter((entry) => entry !== null);
81
+ }
82
+ catch {
83
+ return [];
84
+ }
85
+ }
86
+ async function listJournalMigrationFiles() {
87
+ const entries = await listJournalMigrationEntries();
88
+ return entries.map((entry) => entry.fileName);
89
+ }
90
+ async function readMigrationFileContent(migrationFile) {
91
+ return readFile(new URL(`./migrations/${migrationFile}`, import.meta.url), "utf8");
92
+ }
93
+ async function orderMigrationsByJournal(migrationFiles) {
94
+ const journalEntries = await listJournalMigrationEntries();
95
+ const orderByFileName = new Map(journalEntries.map((entry) => [entry.fileName, entry.order]));
96
+ return [...migrationFiles].sort((left, right) => {
97
+ const leftOrder = orderByFileName.get(left);
98
+ const rightOrder = orderByFileName.get(right);
99
+ if (leftOrder === undefined && rightOrder === undefined)
100
+ return left.localeCompare(right);
101
+ if (leftOrder === undefined)
102
+ return 1;
103
+ if (rightOrder === undefined)
104
+ return -1;
105
+ if (leftOrder === rightOrder)
106
+ return left.localeCompare(right);
107
+ return leftOrder - rightOrder;
108
+ });
109
+ }
110
+ async function runInTransaction(sql, action) {
111
+ await sql.unsafe("BEGIN");
112
+ try {
113
+ await action();
114
+ await sql.unsafe("COMMIT");
115
+ }
116
+ catch (error) {
117
+ try {
118
+ await sql.unsafe("ROLLBACK");
119
+ }
120
+ catch {
121
+ // Ignore rollback failures and surface the original error.
122
+ }
123
+ throw error;
124
+ }
125
+ }
126
+ async function latestMigrationCreatedAt(sql, qualifiedTable) {
127
+ const rows = await sql.unsafe(`SELECT created_at FROM ${qualifiedTable} ORDER BY created_at DESC NULLS LAST LIMIT 1`);
128
+ const value = Number(rows[0]?.created_at ?? Number.NaN);
129
+ return Number.isFinite(value) ? value : null;
130
+ }
131
+ function normalizeFolderMillis(value) {
132
+ if (typeof value === "number" && Number.isFinite(value) && value >= 0) {
133
+ return Math.trunc(value);
134
+ }
135
+ return Date.now();
136
+ }
137
+ async function getMigrationTableColumnNames(sql, migrationTableSchema) {
138
+ const columns = await sql.unsafe(`
139
+ SELECT column_name
140
+ FROM information_schema.columns
141
+ WHERE table_schema = ${quoteLiteral(migrationTableSchema)}
142
+ AND table_name = ${quoteLiteral(DRIZZLE_MIGRATIONS_TABLE)}
143
+ `);
144
+ return new Set(columns.map((column) => column.column_name));
145
+ }
146
+ async function discoverMigrationTableSchema(sql) {
147
+ const rows = await sql `
148
+ SELECT n.nspname AS "schemaName"
149
+ FROM pg_class c
150
+ JOIN pg_namespace n ON n.oid = c.relnamespace
151
+ WHERE c.relname = ${DRIZZLE_MIGRATIONS_TABLE} AND c.relkind = 'r'
152
+ `;
153
+ if (rows.length === 0)
154
+ return null;
155
+ const drizzleSchema = rows.find(({ schemaName }) => schemaName === "drizzle");
156
+ if (drizzleSchema)
157
+ return drizzleSchema.schemaName;
158
+ const publicSchema = rows.find(({ schemaName }) => schemaName === "public");
159
+ if (publicSchema)
160
+ return publicSchema.schemaName;
161
+ return rows[0]?.schemaName ?? null;
162
+ }
163
+ async function ensureMigrationJournalTable(sql) {
164
+ let migrationTableSchema = await discoverMigrationTableSchema(sql);
165
+ if (!migrationTableSchema) {
166
+ const drizzleSchema = quoteIdentifier("drizzle");
167
+ const migrationTable = quoteIdentifier(DRIZZLE_MIGRATIONS_TABLE);
168
+ await sql.unsafe(`CREATE SCHEMA IF NOT EXISTS ${drizzleSchema}`);
169
+ await sql.unsafe(`CREATE TABLE IF NOT EXISTS ${drizzleSchema}.${migrationTable} (id SERIAL PRIMARY KEY, hash text NOT NULL, created_at bigint)`);
170
+ migrationTableSchema = (await discoverMigrationTableSchema(sql)) ?? "drizzle";
171
+ }
172
+ const columnNames = await getMigrationTableColumnNames(sql, migrationTableSchema);
173
+ return { migrationTableSchema, columnNames };
174
+ }
175
+ async function migrationHistoryEntryExists(sql, qualifiedTable, columnNames, migrationFile, hash) {
176
+ const predicates = [];
177
+ if (columnNames.has("hash"))
178
+ predicates.push(`hash = ${quoteLiteral(hash)}`);
179
+ if (columnNames.has("name"))
180
+ predicates.push(`name = ${quoteLiteral(migrationFile)}`);
181
+ if (predicates.length === 0)
182
+ return false;
183
+ const rows = await sql.unsafe(`SELECT 1 AS one FROM ${qualifiedTable} WHERE ${predicates.join(" OR ")} LIMIT 1`);
184
+ return rows.length > 0;
185
+ }
186
+ async function recordMigrationHistoryEntry(sql, qualifiedTable, columnNames, migrationFile, hash, folderMillis) {
187
+ const insertColumns = [];
188
+ const insertValues = [];
189
+ if (columnNames.has("hash")) {
190
+ insertColumns.push(quoteIdentifier("hash"));
191
+ insertValues.push(quoteLiteral(hash));
192
+ }
193
+ if (columnNames.has("name")) {
194
+ insertColumns.push(quoteIdentifier("name"));
195
+ insertValues.push(quoteLiteral(migrationFile));
196
+ }
197
+ if (columnNames.has("created_at")) {
198
+ const latestCreatedAt = await latestMigrationCreatedAt(sql, qualifiedTable);
199
+ const createdAt = latestCreatedAt === null
200
+ ? normalizeFolderMillis(folderMillis)
201
+ : Math.max(latestCreatedAt + 1, normalizeFolderMillis(folderMillis));
202
+ insertColumns.push(quoteIdentifier("created_at"));
203
+ insertValues.push(quoteLiteral(String(createdAt)));
204
+ }
205
+ if (insertColumns.length === 0)
206
+ return;
207
+ await sql.unsafe(`INSERT INTO ${qualifiedTable} (${insertColumns.join(", ")}) VALUES (${insertValues.join(", ")})`);
208
+ }
209
+ async function applyPendingMigrationsManually(url, pendingMigrations) {
210
+ if (pendingMigrations.length === 0)
211
+ return;
212
+ const orderedPendingMigrations = await orderMigrationsByJournal(pendingMigrations);
213
+ const journalEntries = await listJournalMigrationEntries();
214
+ const folderMillisByFileName = new Map(journalEntries.map((entry) => [entry.fileName, normalizeFolderMillis(entry.folderMillis)]));
215
+ const sql = createSqlClient(url);
216
+ try {
217
+ const { migrationTableSchema, columnNames } = await ensureMigrationJournalTable(sql);
218
+ const qualifiedTable = `${quoteIdentifier(migrationTableSchema)}.${quoteIdentifier(DRIZZLE_MIGRATIONS_TABLE)}`;
219
+ for (const migrationFile of orderedPendingMigrations) {
220
+ const migrationContent = await readMigrationFileContent(migrationFile);
221
+ const hash = createHash("sha256").update(migrationContent).digest("hex");
222
+ const existingEntry = await migrationHistoryEntryExists(sql, qualifiedTable, columnNames, migrationFile, hash);
223
+ if (existingEntry)
224
+ continue;
225
+ await runInTransaction(sql, async () => {
226
+ for (const statement of splitMigrationStatements(migrationContent)) {
227
+ await sql.unsafe(statement);
228
+ }
229
+ await recordMigrationHistoryEntry(sql, qualifiedTable, columnNames, migrationFile, hash, folderMillisByFileName.get(migrationFile) ?? Date.now());
230
+ });
231
+ }
232
+ }
233
+ finally {
234
+ await sql.end();
235
+ }
236
+ }
237
+ async function mapHashesToMigrationFiles(migrationFiles) {
238
+ const mapped = new Map();
239
+ await Promise.all(migrationFiles.map(async (migrationFile) => {
240
+ const content = await readMigrationFileContent(migrationFile);
241
+ const hash = createHash("sha256").update(content).digest("hex");
242
+ mapped.set(hash, migrationFile);
243
+ }));
244
+ return mapped;
245
+ }
246
+ async function loadAppliedMigrations(sql, migrationTableSchema, availableMigrations) {
247
+ const quotedSchema = quoteIdentifier(migrationTableSchema);
248
+ const qualifiedTable = `${quotedSchema}.${quoteIdentifier(DRIZZLE_MIGRATIONS_TABLE)}`;
249
+ const columnNames = await getMigrationTableColumnNames(sql, migrationTableSchema);
250
+ if (columnNames.has("name")) {
251
+ const rows = await sql.unsafe(`SELECT name FROM ${qualifiedTable} ORDER BY id`);
252
+ return rows.map((row) => row.name).filter((name) => Boolean(name));
253
+ }
254
+ if (columnNames.has("hash")) {
255
+ const rows = await sql.unsafe(`SELECT hash FROM ${qualifiedTable} ORDER BY id`);
256
+ const hashesToMigrationFiles = await mapHashesToMigrationFiles(availableMigrations);
257
+ const appliedFromHashes = rows
258
+ .map((row) => hashesToMigrationFiles.get(row.hash))
259
+ .filter((name) => Boolean(name));
260
+ if (rows.length > 0) {
261
+ if (appliedFromHashes.length === rows.length)
262
+ return appliedFromHashes;
263
+ throw new Error("Migration history contains hashes that do not match current migration files. Refusing to infer applied migrations by order.");
264
+ }
265
+ }
266
+ const rows = await sql.unsafe(`SELECT id FROM ${qualifiedTable} ORDER BY id`);
267
+ const journalMigrationFiles = await listJournalMigrationFiles();
268
+ const appliedFromIds = rows
269
+ .map((row) => journalMigrationFiles[row.id - 1])
270
+ .filter((name) => Boolean(name));
271
+ if (appliedFromIds.length > 0)
272
+ return appliedFromIds;
273
+ return availableMigrations.slice(0, Math.max(0, rows.length));
274
+ }
275
+ export async function inspectMigrations(url) {
276
+ const sql = createSqlClient(url);
277
+ try {
278
+ const availableMigrations = await listMigrationFiles();
279
+ const tableCountResult = await sql `
280
+ select count(*)::int as count
281
+ from information_schema.tables
282
+ where table_schema = 'public'
283
+ and table_type = 'BASE TABLE'
284
+ `;
285
+ const tableCount = tableCountResult[0]?.count ?? 0;
286
+ const migrationTableSchema = await discoverMigrationTableSchema(sql);
287
+ if (!migrationTableSchema) {
288
+ if (tableCount > 0) {
289
+ return {
290
+ status: "needsMigrations",
291
+ tableCount,
292
+ availableMigrations,
293
+ appliedMigrations: [],
294
+ pendingMigrations: availableMigrations,
295
+ reason: "no-migration-journal-non-empty-db",
296
+ };
297
+ }
298
+ return {
299
+ status: "needsMigrations",
300
+ tableCount,
301
+ availableMigrations,
302
+ appliedMigrations: [],
303
+ pendingMigrations: availableMigrations,
304
+ reason: "no-migration-journal-empty-db",
305
+ };
306
+ }
307
+ const appliedMigrations = await loadAppliedMigrations(sql, migrationTableSchema, availableMigrations);
308
+ const pendingMigrations = availableMigrations.filter((name) => !appliedMigrations.includes(name));
309
+ if (pendingMigrations.length === 0) {
310
+ return {
311
+ status: "upToDate",
312
+ tableCount,
313
+ availableMigrations,
314
+ appliedMigrations,
315
+ };
316
+ }
317
+ return {
318
+ status: "needsMigrations",
319
+ tableCount,
320
+ availableMigrations,
321
+ appliedMigrations,
322
+ pendingMigrations,
323
+ reason: "pending-migrations",
324
+ };
325
+ }
326
+ finally {
327
+ await sql.end();
328
+ }
329
+ }
330
+ export async function applyPendingMigrations(url) {
331
+ const initialState = await inspectMigrations(url);
332
+ if (initialState.status === "upToDate")
333
+ return;
334
+ if (initialState.reason === "no-migration-journal-empty-db") {
335
+ const sql = createSqlClient(url);
336
+ try {
337
+ const db = drizzlePg(sql);
338
+ await migratePg(db, { migrationsFolder: MIGRATIONS_FOLDER });
339
+ }
340
+ finally {
341
+ await sql.end();
342
+ }
343
+ const bootstrappedState = await inspectMigrations(url);
344
+ if (bootstrappedState.status === "upToDate")
345
+ return;
346
+ if (bootstrappedState.reason === "pending-migrations") {
347
+ await applyPendingMigrationsManually(url, bootstrappedState.pendingMigrations);
348
+ const refreshedState = await inspectMigrations(url);
349
+ if (refreshedState.status === "upToDate")
350
+ return;
351
+ throw new Error(`Failed to bootstrap migrations: ${refreshedState.pendingMigrations.join(", ")}`);
352
+ }
353
+ throw new Error(`Failed to bootstrap migrations: ${bootstrappedState.pendingMigrations.join(", ")}`);
354
+ }
355
+ if (initialState.reason === "no-migration-journal-non-empty-db") {
356
+ throw new Error("Database has tables but no migration journal; automatic migration is unsafe. Initialize migration history manually.");
357
+ }
358
+ await applyPendingMigrationsManually(url, initialState.pendingMigrations);
359
+ const finalState = await inspectMigrations(url);
360
+ if (finalState.status !== "upToDate") {
361
+ throw new Error(`Failed to apply pending migrations: ${finalState.pendingMigrations.join(", ")}`);
362
+ }
363
+ }
364
+ export async function ensurePostgresDatabase(url, databaseName) {
365
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(databaseName)) {
366
+ throw new Error(`Unsafe database name: ${databaseName}`);
367
+ }
368
+ const sql = createSqlClient(url);
369
+ try {
370
+ const existing = await sql `
371
+ select 1 as one from pg_database where datname = ${databaseName} limit 1
372
+ `;
373
+ if (existing.length > 0)
374
+ return "exists";
375
+ await sql.unsafe(`create database "${databaseName}" encoding 'UTF8' lc_collate 'C' lc_ctype 'C' template template0`);
376
+ return "created";
377
+ }
378
+ finally {
379
+ await sql.end();
380
+ }
381
+ }
382
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare function createEmbeddedPostgresLogBuffer(limit?: number): {
2
+ append(message: unknown): void;
3
+ getRecentLogs(): string[];
4
+ };
5
+ export declare function formatEmbeddedPostgresError(error: unknown, input: {
6
+ fallbackMessage: string;
7
+ recentLogs?: string[];
8
+ }): Error;
9
+ //# sourceMappingURL=embedded-postgres-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-postgres-error.d.ts","sourceRoot":"","sources":["../src/embedded-postgres-error.ts"],"names":[],"mappings":"AAqCA,wBAAgB,+BAA+B,CAAC,KAAK,SAA2B,GAAG;IACjF,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,aAAa,IAAI,MAAM,EAAE,CAAC;CAC3B,CAyBA;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE;IACL,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACA,KAAK,CAeP"}
@@ -0,0 +1,73 @@
1
+ const DEFAULT_RECENT_LOG_LIMIT = 40;
2
+ const RECENT_LOG_SUMMARY_LINES = 8;
3
+ function toError(error, fallbackMessage) {
4
+ if (error instanceof Error)
5
+ return error;
6
+ if (error === undefined)
7
+ return new Error(fallbackMessage);
8
+ if (typeof error === "string")
9
+ return new Error(`${fallbackMessage}: ${error}`);
10
+ try {
11
+ return new Error(`${fallbackMessage}: ${JSON.stringify(error)}`);
12
+ }
13
+ catch {
14
+ return new Error(`${fallbackMessage}: ${String(error)}`);
15
+ }
16
+ }
17
+ function summarizeRecentLogs(recentLogs) {
18
+ if (recentLogs.length === 0)
19
+ return null;
20
+ return recentLogs
21
+ .slice(-RECENT_LOG_SUMMARY_LINES)
22
+ .map((line) => line.trim())
23
+ .filter((line) => line.length > 0)
24
+ .join(" | ");
25
+ }
26
+ function detectEmbeddedPostgresHint(recentLogs) {
27
+ const haystack = recentLogs.join("\n").toLowerCase();
28
+ if (!haystack.includes("could not create shared memory segment")) {
29
+ return null;
30
+ }
31
+ return ("Embedded PostgreSQL bootstrap could not allocate shared memory. " +
32
+ "On macOS, this usually means the host's kern.sysv.shm* limits are too low for another local PostgreSQL cluster. " +
33
+ "Stop other local PostgreSQL servers or raise the shared-memory sysctls, then retry.");
34
+ }
35
+ export function createEmbeddedPostgresLogBuffer(limit = DEFAULT_RECENT_LOG_LIMIT) {
36
+ const recentLogs = [];
37
+ return {
38
+ append(message) {
39
+ const text = typeof message === "string"
40
+ ? message
41
+ : message instanceof Error
42
+ ? message.message
43
+ : String(message ?? "");
44
+ for (const rawLine of text.split(/\r?\n/)) {
45
+ const line = rawLine.trim();
46
+ if (!line)
47
+ continue;
48
+ recentLogs.push(line);
49
+ if (recentLogs.length > limit) {
50
+ recentLogs.splice(0, recentLogs.length - limit);
51
+ }
52
+ }
53
+ },
54
+ getRecentLogs() {
55
+ return [...recentLogs];
56
+ },
57
+ };
58
+ }
59
+ export function formatEmbeddedPostgresError(error, input) {
60
+ const baseError = toError(error, input.fallbackMessage);
61
+ const recentLogs = input.recentLogs ?? [];
62
+ const parts = [baseError.message];
63
+ const hint = detectEmbeddedPostgresHint(recentLogs);
64
+ const recentSummary = summarizeRecentLogs(recentLogs);
65
+ if (hint) {
66
+ parts.push(hint);
67
+ }
68
+ if (recentSummary) {
69
+ parts.push(`Recent embedded Postgres logs: ${recentSummary}`);
70
+ }
71
+ return new Error(parts.join(" "));
72
+ }
73
+ //# sourceMappingURL=embedded-postgres-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-postgres-error.js","sourceRoot":"","sources":["../src/embedded-postgres-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { applyPendingMigrations, createDb, createDbClient, createSqlClient, ensurePostgresDatabase, getPostgresDataDirectory, inspectMigrations, type Db, type DbClient, type MigrationState, } from "./client.js";
2
+ export { resolveMigrationConnection, type MigrationConnection, } from "./migration-runtime.js";
3
+ export { resolveAlvaxHomeDir, resolveAlvaxInstanceDir, resolveAlvaxInstanceId, resolveDatabaseTarget, type ResolvedDatabaseTarget, } from "./runtime-config.js";
4
+ export { createEmbeddedPostgresLogBuffer, formatEmbeddedPostgresError, } from "./embedded-postgres-error.js";
5
+ export * from "./schema/index.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,EAAE,EACP,KAAK,QAAQ,EACb,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { applyPendingMigrations, createDb, createDbClient, createSqlClient, ensurePostgresDatabase, getPostgresDataDirectory, inspectMigrations, } from "./client.js";
2
+ export { resolveMigrationConnection, } from "./migration-runtime.js";
3
+ export { resolveAlvaxHomeDir, resolveAlvaxInstanceDir, resolveAlvaxInstanceId, resolveDatabaseTarget, } from "./runtime-config.js";
4
+ export { createEmbeddedPostgresLogBuffer, formatEmbeddedPostgresError, } from "./embedded-postgres-error.js";
5
+ export * from "./schema/index.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GAIlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,GAE3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrate.d.ts.map