okmodel 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +9 -1
  2. package/dist/adapters/pg/bunsql-extra.d.ts +5 -5
  3. package/dist/adapters/pg/bunsql.d.ts +6 -2
  4. package/dist/adapters/pg/nodepostgres.d.ts +16 -1
  5. package/dist/adapters/pg/postgres-extra.d.ts +3 -17
  6. package/dist/adapters/pg/postgresjs.d.ts +2 -1
  7. package/dist/contracts/driver.d.ts +3 -2
  8. package/dist/contracts/error.d.ts +1 -1
  9. package/dist/dialects/pg/errors.d.ts +2 -0
  10. package/dist/dialects/pg/ext/fuzzystrmatch.js +1 -1
  11. package/dist/dialects/pg/ext/hstore.js +1 -1
  12. package/dist/dialects/pg/ext/ltree.js +1 -1
  13. package/dist/dialects/pg/ext/pgcrypto.js +1 -1
  14. package/dist/dialects/pg/ext/unaccent.js +1 -1
  15. package/dist/dialects/pg/filters.d.ts +2 -2
  16. package/dist/dialects/pg/fn/index.js +1 -1
  17. package/dist/dialects/pg/index.js +3 -3
  18. package/dist/dialects/pg/introspect.d.ts +12 -0
  19. package/dist/dialects/pg/view/index.js +2 -2
  20. package/dist/runtime/param-limit.d.ts +20 -0
  21. package/dist/runtime/pg/bun.js +3 -3
  22. package/dist/runtime/pg/neon.js +3 -3
  23. package/dist/runtime/pg/pg.js +3 -3
  24. package/dist/runtime/pg/pglite.js +2 -2
  25. package/dist/runtime/pg/postgresjs.js +10 -10
  26. package/dist/runtime/tenancy/index.js +1 -1
  27. package/dist/runtime/traits/index.js +2 -2
  28. package/dist/runtime/validate/index.js +2 -2
  29. package/dist/runtime/write.d.ts +1 -1
  30. package/dist/shared/{5kyb3tqx.js → 1h5h1rf5.js} +1 -1
  31. package/dist/shared/{4vbf83xx.js → 2vcnpf0n.js} +1 -1
  32. package/dist/shared/{8n688yjg.js → 3ap5hxvj.js} +2 -1
  33. package/dist/shared/{wvtjg5m3.js → 3d7a80fq.js} +1 -1
  34. package/dist/shared/{bphrgwz9.js → 3dr444ny.js} +57 -78
  35. package/dist/shared/{yvabyg9k.js → 3vvpcphd.js} +7 -6
  36. package/dist/shared/{760ppr76.js → 4a3mmhhe.js} +2 -2
  37. package/dist/shared/{90sg0w5a.js → 4pkz5nvw.js} +65 -10
  38. package/dist/shared/{mazpbcdj.js → 4te76xc5.js} +1 -1
  39. package/dist/shared/{xwhdcrm4.js → 60y4ahmw.js} +1 -1
  40. package/dist/shared/{9dtgn1z2.js → 63qjmhnp.js} +100 -17
  41. package/dist/shared/{s7he5e5d.js → 67w3kn71.js} +1 -1
  42. package/dist/shared/{n306gqkd.js → 6vfvsdkt.js} +9 -7
  43. package/dist/shared/{jpybhf98.js → 6xqvesa5.js} +1 -1
  44. package/dist/shared/{n5whk3mt.js → 8gdbty5v.js} +8 -8
  45. package/dist/shared/{ccsmhv9r.js → 8ma6drzr.js} +194 -31
  46. package/dist/shared/{3456242y.js → 8p2bgye0.js} +110 -18
  47. package/dist/shared/{ebhz8vh6.js → 8qwqrxed.js} +11 -3
  48. package/dist/shared/{ss2kv2rs.js → 8v7vzpgt.js} +10 -7
  49. package/dist/shared/{8qzkd9f3.js → ak61ye1f.js} +3 -3
  50. package/dist/shared/{6nae0spm.js → bdekbvmt.js} +69 -7
  51. package/dist/shared/{tw1nvvfj.js → bxjq6xqv.js} +2 -2
  52. package/dist/shared/{rbxt795q.js → c7dqd3gk.js} +81 -41
  53. package/dist/shared/ddh72ym5.js +20 -0
  54. package/dist/shared/e1c55v04.js +10 -0
  55. package/dist/shared/{8jesqsrk.js → ekhq3ytz.js} +1 -1
  56. package/dist/shared/{7ba5h6pb.js → esy4dyxe.js} +5 -5
  57. package/dist/shared/{gcefca6p.js → f9t9g54z.js} +22 -9
  58. package/dist/shared/fkjne6gx.js +8 -0
  59. package/dist/shared/{ds229x4r.js → fne90dvz.js} +4 -1
  60. package/dist/shared/{cexb7z6b.js → gr9sn4za.js} +1 -1
  61. package/dist/shared/{mvmm3xpb.js → gzgfsspx.js} +1 -1
  62. package/dist/shared/{fdsz3w80.js → hgt69zjf.js} +2 -2
  63. package/dist/shared/{dd5pmnky.js → jvxcp1qk.js} +70 -86
  64. package/dist/shared/{yybhre6n.js → k73e8n9d.js} +3 -3
  65. package/dist/shared/{mgaq2sd3.js → kzgrcy8s.js} +8 -7
  66. package/dist/shared/{myk8fswx.js → mz48rs74.js} +14 -3
  67. package/dist/shared/{62b603gr.js → n6je5b28.js} +10 -23
  68. package/dist/shared/{2szgv6yj.js → ns35jqz0.js} +71 -45
  69. package/dist/shared/{xtsydxjg.js → nstwgzn8.js} +1 -1
  70. package/dist/shared/{stfa9xcw.js → py2zrrm6.js} +7 -6
  71. package/dist/shared/{9dr2qnx7.js → qqm3ze6q.js} +1 -1
  72. package/dist/shared/{cf8zdz5p.js → rcjm0yn7.js} +27 -34
  73. package/dist/shared/{ckz05z15.js → rged92v6.js} +7 -4
  74. package/dist/shared/{qvwwp1mp.js → rw4tpcd0.js} +30 -21
  75. package/dist/shared/{bsek72fg.js → s5qe47a6.js} +3 -0
  76. package/dist/shared/{1d9q9cv2.js → smxzjz60.js} +2 -2
  77. package/dist/shared/{c3mvnq7a.js → th5rnaxw.js} +1 -1
  78. package/dist/shared/{1mxm04fy.js → tyqapcgk.js} +71 -8
  79. package/dist/shared/{zdqf8k5d.js → vsna85qf.js} +1 -1
  80. package/dist/shared/{63qtkrca.js → vy47ryqa.js} +55 -5
  81. package/dist/shared/{xv8qj97g.js → wbdh9qbg.js} +3 -1
  82. package/dist/shared/{2zdxkt7b.js → wp7y8q3y.js} +41 -9
  83. package/dist/shared/{pg4ezgyf.js → xbd9xs6p.js} +2 -2
  84. package/dist/shared/{npdftanb.js → xbvz446k.js} +16 -13
  85. package/dist/shared/{aksb89mn.js → y6tfjk9q.js} +2 -2
  86. package/dist/shared/{3bb7wsqt.js → ycnft340.js} +1 -1
  87. package/dist/shared/{z7s6fpxv.js → ymenf259.js} +1 -1
  88. package/dist/shared/{71n0jmhc.js → ysdw2fg3.js} +10 -2
  89. package/dist/shared/{xqacq37x.js → zecrwdk9.js} +1 -1
  90. package/dist/shared/{3t6kw83m.js → zm2rzqba.js} +2 -1
  91. package/dist/tooling/cli.js +122 -44
  92. package/dist/tooling/driver-run.js +107 -24
  93. package/dist/tooling/github/comment.d.ts +8 -2
  94. package/dist/tooling/migrate/apply.d.ts +17 -2
  95. package/dist/tooling/migrate/drift.d.ts +12 -0
  96. package/dist/tooling/migrate/driver-url.d.ts +17 -0
  97. package/dist/tooling/migrate/index.js +9 -7
  98. package/dist/tooling/migrate/policy.d.ts +17 -5
  99. package/dist/tooling/migrate/pooler-probe.d.ts +23 -0
  100. package/dist/tooling/migrate/pull.d.ts +3 -0
  101. package/dist/tooling/migrate/runner.d.ts +24 -1
  102. package/dist/tooling/shared/{0j0jtse1.js → 09a6vsys.js} +1 -1
  103. package/dist/tooling/shared/{68tf18v4.js → 0v9ptnxp.js} +8 -8
  104. package/dist/tooling/shared/{qartgazh.js → 0wtzps9p.js} +6 -6
  105. package/dist/tooling/shared/{1800eymw.js → 0yhf1db4.js} +6 -6
  106. package/dist/tooling/shared/{s6qha57m.js → 19msgrsc.js} +2 -2
  107. package/dist/tooling/shared/{3yn79q5m.js → 1fwfm5m3.js} +1 -1
  108. package/dist/tooling/shared/{hfq3n3bd.js → 2jdn09e2.js} +55 -5
  109. package/dist/tooling/shared/{v6j1ep6w.js → 2qrte2ct.js} +5 -5
  110. package/dist/tooling/shared/{yb4kd19s.js → 2v4nwnkb.js} +1 -1
  111. package/dist/tooling/shared/{ezqn88nj.js → 33z39trp.js} +106 -23
  112. package/dist/tooling/shared/{0r05zhyq.js → 353vnw9z.js} +5 -5
  113. package/dist/tooling/shared/{m4hhb8aa.js → 390kry9g.js} +2 -2
  114. package/dist/tooling/shared/{rcywj2w8.js → 3f6etb9z.js} +18 -31
  115. package/dist/tooling/shared/{9wsnsvbf.js → 3t2cqmsx.js} +1 -1
  116. package/dist/tooling/shared/{5zrzffnk.js → 4dzvjtpy.js} +1 -1
  117. package/dist/tooling/shared/{am04v8na.js → 4ec0nxvw.js} +10 -10
  118. package/dist/tooling/shared/{04svnxxj.js → 4tg2bn41.js} +59 -78
  119. package/dist/tooling/shared/{829fjxyw.js → 5rah55z0.js} +2 -2
  120. package/dist/tooling/shared/{c0xevn1h.js → 804w1t69.js} +4 -4
  121. package/dist/tooling/shared/{dhatassp.js → 8g0m0rvd.js} +6 -6
  122. package/dist/tooling/shared/{zx3v9phv.js → 8msbtw5s.js} +1 -1
  123. package/dist/tooling/shared/{7pxncnzs.js → 8t22h3h7.js} +2 -2
  124. package/dist/tooling/shared/{wbwq1jsa.js → 91c59b7b.js} +2 -2
  125. package/dist/tooling/shared/{a2xe04bm.js → adk9k6va.js} +1 -1
  126. package/dist/tooling/shared/{w17sj05d.js → ajjd5cwz.js} +2 -2
  127. package/dist/tooling/shared/{35zemrmf.js → angjck01.js} +1 -1
  128. package/dist/tooling/shared/{jsjjz875.js → asnnc3v5.js} +1 -1
  129. package/dist/tooling/shared/{5bmksndh.js → bj1kyqc8.js} +2 -2
  130. package/dist/tooling/shared/{kbqnrs1x.js → bt3tjemb.js} +11 -3
  131. package/dist/tooling/shared/{vwr2y833.js → chk2bh4f.js} +2 -2
  132. package/dist/tooling/shared/{ybdew6j7.js → ckq4z5ax.js} +5 -2
  133. package/dist/tooling/shared/{3rmaz3pq.js → d3rhb24q.js} +1 -1
  134. package/dist/tooling/shared/{mw5npye0.js → d8q00vxg.js} +4 -4
  135. package/dist/tooling/shared/{j664qjrt.js → dx188rxs.js} +2 -2
  136. package/dist/tooling/shared/{8yr7ges1.js → efq6p9df.js} +35 -42
  137. package/dist/tooling/shared/{yhp829bx.js → en6rwzq0.js} +3 -3
  138. package/dist/tooling/shared/{f77nnfqy.js → f2r5g0fs.js} +2 -2
  139. package/dist/tooling/shared/{zs9aymcp.js → f4gep0nk.js} +1 -1
  140. package/dist/tooling/shared/{kz715295.js → f8a010fm.js} +13 -11
  141. package/dist/tooling/shared/{w5d89rb4.js → fdsek6pa.js} +1 -1
  142. package/dist/tooling/shared/fvmrxsd1.js +8 -0
  143. package/dist/tooling/shared/{jpgmjsx3.js → g3xybeqf.js} +4 -3
  144. package/dist/tooling/shared/{wezxf3h8.js → gefmpwsa.js} +1 -1
  145. package/dist/tooling/shared/{jr2nmr81.js → gjj71hfh.js} +23 -20
  146. package/dist/tooling/shared/{9sfbtwsk.js → jgzt69pa.js} +5 -5
  147. package/dist/tooling/shared/{a4pzghha.js → jm30k2ca.js} +10 -8
  148. package/dist/tooling/shared/{shjs0379.js → kayqzpbk.js} +6 -3
  149. package/dist/tooling/shared/{tcwpjvxe.js → kvw1672d.js} +1 -1
  150. package/dist/tooling/shared/{stebqyyd.js → mr1kcgpw.js} +3 -3
  151. package/dist/tooling/shared/{tpssp7ac.js → mwbdf409.js} +1 -1
  152. package/dist/tooling/shared/{fh07z1dt.js → ns9207v3.js} +1 -1
  153. package/dist/tooling/shared/{5p8km5jb.js → p6tjv97k.js} +3 -3
  154. package/dist/tooling/shared/{ytk1tjs0.js → p73evwf0.js} +1 -1
  155. package/dist/tooling/shared/{8m5znpdt.js → phc1nc4g.js} +1 -1
  156. package/dist/tooling/shared/{asgr07mp.js → ppybjw50.js} +79 -16
  157. package/dist/tooling/shared/{t4xveemq.js → qdrn8ghn.js} +5 -4
  158. package/dist/tooling/shared/rd8h01ta.js +20 -0
  159. package/dist/tooling/shared/{7aews1zg.js → rwg8y90m.js} +3 -3
  160. package/dist/tooling/shared/{5x3pf400.js → ry2f3w8p.js} +3 -3
  161. package/dist/tooling/shared/{m3xt8b1h.js → ryc5sa58.js} +8 -8
  162. package/dist/tooling/shared/{57btdkgm.js → ss87qxwv.js} +2 -2
  163. package/dist/tooling/shared/{6vk28rjp.js → vg68k11z.js} +3 -3
  164. package/dist/tooling/shared/{62fxpc1p.js → vms9dta5.js} +73 -89
  165. package/dist/tooling/shared/{gqwevek4.js → xchpnbdv.js} +1 -1
  166. package/dist/tooling/shared/{t6zjeake.js → xn6p01fh.js} +5 -5
  167. package/dist/tooling/shared/{7b3xp9gc.js → xwr6q618.js} +3 -3
  168. package/dist/tooling/shared/{yfedr1zb.js → xx3gmq94.js} +1 -1
  169. package/dist/tooling/shared/{9qr9rkbh.js → y2bd7yfx.js} +21 -13
  170. package/dist/tooling/shared/{nxq95eb6.js → y4gq9rbe.js} +11 -11
  171. package/dist/tooling/shared/{76pv6qff.js → y4vwft92.js} +2 -2
  172. package/dist/tooling/shared/{sjwkt1pg.js → yz68xcmc.js} +1 -1
  173. package/dist/tooling/testing/factories.d.ts +1 -3
  174. package/dist/tooling/testing/index.js +1 -1
  175. package/package.json +2 -1
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  DriverError2,
3
3
  isConnectionFailure
4
- } from "./hfq3n3bd.js";
4
+ } from "./2jdn09e2.js";
5
5
  import {
6
- send2,
6
+ send3,
7
7
  reserve2,
8
- park2
9
- } from "./rcywj2w8.js";
8
+ releaseReserved2
9
+ } from "./3f6etb9z.js";
10
10
  import {
11
11
  resetSession2,
12
12
  refuseWhenLost2
13
- } from "./7pxncnzs.js";
13
+ } from "./8t22h3h7.js";
14
14
  import {
15
15
  cursorStream
16
16
  } from "./7kms6fvj.js";
17
17
  import {
18
18
  WireSession
19
- } from "./jsjjz875.js";
19
+ } from "./asnnc3v5.js";
20
20
  import {
21
21
  noTimeout
22
- } from "./3yn79q5m.js";
22
+ } from "./1fwfm5m3.js";
23
23
  import {
24
24
  rejectClosed,
25
25
  runCall
26
- } from "./5x3pf400.js";
26
+ } from "./ry2f3w8p.js";
27
27
 
28
28
  // src/adapters/pg/bunsql-extra.ts
29
29
  async function recover(sql, error, text, depth, clientRead, closedDuring, again) {
@@ -60,19 +60,13 @@ function lostQuery(error) {
60
60
  function socketClosed(error) {
61
61
  if (!(error instanceof Error))
62
62
  return false;
63
- if (error.message === "Connection closed")
63
+ if (bunClosed(error.message))
64
64
  return true;
65
- return error.cause instanceof Error && error.cause.message === "Connection closed";
65
+ return error.cause instanceof Error && bunClosed(error.cause.message);
66
66
  }
67
- async function listen(sql, parked, closed, channel, onNotify) {
67
+ async function listen(sql, closed, channel, onNotify) {
68
68
  if (closed)
69
69
  return rejectClosed();
70
- const pending = parked.splice(0);
71
- for (const reserved of pending) {
72
- const done = reserved.release();
73
- if (done instanceof Promise)
74
- await done;
75
- }
76
70
  const subscription = await sql.listen(channel, onNotify);
77
71
  return async () => {
78
72
  await subscription.unlisten();
@@ -82,9 +76,9 @@ async function checkout(held) {
82
76
  const { counters, isClosed } = held;
83
77
  if (isClosed())
84
78
  return rejectClosed();
85
- const reserved = await takeOpen(held) ?? await reserve2(held.sql, held.acquireMs, counters);
79
+ const reserved = await reserve2(held.sql, held.acquireMs, counters);
86
80
  counters.reserved += 1;
87
- const session = new WireSession((text, params) => send2(reserved, text, params), held.notices, isClosed, false, () => {
81
+ const session = new WireSession((text, params) => send3(reserved, text, params), held.notices, isClosed, false, () => {
88
82
  counters.reservedBusy += 1;
89
83
  }, () => {
90
84
  counters.reservedBusy = Math.max(0, counters.reservedBusy - 1);
@@ -122,7 +116,7 @@ async function checkout(held) {
122
116
  if (gone !== undefined)
123
117
  return gone;
124
118
  return guard(() => runCall(isClosed(), options, async (watch) => {
125
- const { runAtomicBatch } = await import("./gqwevek4.js");
119
+ const { runAtomicBatch } = await import("./xchpnbdv.js");
126
120
  return runAtomicBatch(session, statements, watch);
127
121
  }));
128
122
  },
@@ -138,20 +132,33 @@ async function checkout(held) {
138
132
  try {
139
133
  if (!lost.on)
140
134
  await reset(session, reserved);
141
- } catch (error) {
142
- if (lostQuery(error) || reportsClosed(reserved))
143
- lost.on = true;
144
- else
145
- throw error;
135
+ else if (session.depth() > 0 && !reportsClosed(reserved)) {
136
+ await reserved.unsafe("ROLLBACK").catch(() => {
137
+ return;
138
+ });
139
+ session.abandon();
140
+ }
141
+ } catch {
142
+ lost.on = true;
146
143
  } finally {
147
144
  counters.reserved = Math.max(0, counters.reserved - 1);
148
145
  if (lost.on) {
149
146
  try {
150
147
  reserved.release();
151
148
  } catch {}
152
- await flushClosed(held.sql);
153
- } else
154
- await park2(held.parked, reserved);
149
+ if (counters.reserved === 0)
150
+ await flushClosed(held.sql);
151
+ } else {
152
+ try {
153
+ await releaseReserved2(reserved);
154
+ } catch {
155
+ try {
156
+ reserved.release();
157
+ } catch {}
158
+ if (counters.reserved === 0)
159
+ await flushClosed(held.sql);
160
+ }
161
+ }
155
162
  }
156
163
  }
157
164
  };
@@ -159,20 +166,6 @@ async function checkout(held) {
159
166
  function reportsClosed(reserved) {
160
167
  return Reflect.get(reserved, "closed") === true;
161
168
  }
162
- async function takeOpen(held) {
163
- while (held.parked.length > 0) {
164
- const next = held.parked.pop();
165
- if (next === undefined)
166
- return;
167
- if (!reportsClosed(next))
168
- return next;
169
- try {
170
- next.release();
171
- } catch {}
172
- await flushClosed(held.sql);
173
- }
174
- return;
175
- }
176
169
  async function flushClosed(sql) {
177
170
  for (let attempt = 0;attempt < 3; attempt += 1) {
178
171
  try {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  build3
3
- } from "./829fjxyw.js";
3
+ } from "./5rah55z0.js";
4
4
  import {
5
5
  attachHttp
6
- } from "./jr2nmr81.js";
6
+ } from "./gjj71hfh.js";
7
7
  import {
8
8
  OkmError,
9
9
  rejectKeys,
@@ -11,7 +11,7 @@ import {
11
11
  indexes,
12
12
  isRecord,
13
13
  fail2
14
- } from "./hfq3n3bd.js";
14
+ } from "./2jdn09e2.js";
15
15
 
16
16
  // src/runtime/read-stream.ts
17
17
  var DEFAULT_BATCH = 1000;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  touchFields,
3
3
  fieldSealed
4
- } from "./ezqn88nj.js";
4
+ } from "./33z39trp.js";
5
5
  import {
6
6
  throwNamed,
7
7
  projectExpr,
@@ -10,7 +10,7 @@ import {
10
10
  isRecord,
11
11
  registerFailFix,
12
12
  fail2
13
- } from "./hfq3n3bd.js";
13
+ } from "./2jdn09e2.js";
14
14
 
15
15
  // src/runtime/conflict.ts
16
16
  registerFailFix("OKM1104", "Set on to the columns of a unique constraint or the primary key.");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  OkmError,
3
3
  tag
4
- } from "./hfq3n3bd.js";
4
+ } from "./2jdn09e2.js";
5
5
 
6
6
  // src/dialects/pg/filter-parse.ts
7
7
  var PARSED = [
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  DriverError2,
3
3
  isConnectionLost
4
- } from "./hfq3n3bd.js";
4
+ } from "./2jdn09e2.js";
5
5
  import {
6
- connectClient3,
7
- send4
8
- } from "./am04v8na.js";
6
+ connectClient2,
7
+ send2
8
+ } from "./4ec0nxvw.js";
9
9
  import {
10
10
  resetSession2
11
- } from "./7pxncnzs.js";
11
+ } from "./8t22h3h7.js";
12
12
  import {
13
13
  WireSession
14
- } from "./jsjjz875.js";
14
+ } from "./asnnc3v5.js";
15
15
  import {
16
16
  noTimeout
17
- } from "./3yn79q5m.js";
17
+ } from "./1fwfm5m3.js";
18
18
  import {
19
19
  rejectClosed,
20
20
  runCall
21
- } from "./5x3pf400.js";
21
+ } from "./ry2f3w8p.js";
22
22
 
23
23
  // src/adapters/pg/neon-extra.ts
24
24
  async function checkout(held) {
25
25
  const { pool, counters, named, isClosed } = held;
26
26
  if (isClosed())
27
27
  return rejectClosed();
28
- const client = await connectClient3(pool, held.acquireMs, counters);
28
+ const client = await connectClient2(pool, held.acquireMs, counters);
29
29
  counters.reserved += 1;
30
30
  let lost = false;
31
31
  const onError = () => {
@@ -35,7 +35,7 @@ async function checkout(held) {
35
35
  events.on("error", onError);
36
36
  const local = new Set;
37
37
  const session = new WireSession((text, params) => {
38
- const pending = send4(client, text, params, named);
38
+ const pending = send2(client, text, params, named);
39
39
  const guarded = pending.catch((error) => {
40
40
  if (isConnectionLost(error) || lost) {
41
41
  lost = true;
@@ -67,7 +67,7 @@ async function checkout(held) {
67
67
  if (refused !== undefined)
68
68
  return refused;
69
69
  return guard(() => runCall(isClosed(), options, async (watch) => {
70
- const { runAtomicBatch } = await import("./gqwevek4.js");
70
+ const { runAtomicBatch } = await import("./xchpnbdv.js");
71
71
  return runAtomicBatch(session, statements, watch);
72
72
  }));
73
73
  },
@@ -78,6 +78,8 @@ async function checkout(held) {
78
78
  try {
79
79
  if (!lost)
80
80
  await reset(session, client);
81
+ } catch {
82
+ lost = true;
81
83
  } finally {
82
84
  counters.reserved = Math.max(0, counters.reserved - 1);
83
85
  events.removeListener("error", onError);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  OkmError,
3
3
  writeArray
4
- } from "./hfq3n3bd.js";
4
+ } from "./2jdn09e2.js";
5
5
 
6
6
  // src/dialects/pg/operator-fit.ts
7
7
  var FAMILIES = {
@@ -0,0 +1,8 @@
1
+ import {
2
+ refuseParamLimit2,
3
+ assertParamCount2
4
+ } from "./rd8h01ta.js";
5
+ export {
6
+ assertParamCount2 as assertParamCount,
7
+ refuseParamLimit2 as refuseParamLimit
8
+ };
@@ -15,9 +15,10 @@ import {
15
15
  expectOf2,
16
16
  allowSet2,
17
17
  noteGuarded2
18
- } from "./ezqn88nj.js";
19
- import"./w5d89rb4.js";
20
- import"./35zemrmf.js";
18
+ } from "./33z39trp.js";
19
+ import"./fdsek6pa.js";
20
+ import"./rd8h01ta.js";
21
+ import"./angjck01.js";
21
22
  export {
22
23
  Sql2 as Sql,
23
24
  WRITE_PARAM_BUDGET2 as WRITE_PARAM_BUDGET,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  primaryUrl
3
- } from "./hfq3n3bd.js";
3
+ } from "./2jdn09e2.js";
4
4
 
5
5
  // packages/harness/src/postgres.ts
6
6
  import postgres from "postgres";
@@ -11,7 +11,7 @@ import {
11
11
  logicalIntent,
12
12
  appliedRules,
13
13
  rejectKeys
14
- } from "./hfq3n3bd.js";
14
+ } from "./2jdn09e2.js";
15
15
 
16
16
  // src/runtime/client.ts
17
17
  var PLAN_LIMIT = 64;
@@ -84,7 +84,7 @@ function openClient(session) {
84
84
  },
85
85
  close,
86
86
  connected: session.connected,
87
- tx: (...args) => import("./stebqyyd.js").then((mod) => mod.tx(session, args)),
87
+ tx: (...args) => import("./mr1kcgpw.js").then((mod) => mod.tx(session, args)),
88
88
  batch: (ops, options) => batchHandle(session, ops, options),
89
89
  ...session.tx?.extras
90
90
  };
@@ -119,7 +119,7 @@ function tableApi(session, table, view, uses) {
119
119
  const api = {
120
120
  find(options = {}) {
121
121
  if ("lock" in options) {
122
- return lazyRead(session, () => import("./j664qjrt.js"), table, options, base, view);
122
+ return lazyRead(session, () => import("./dx188rxs.js"), table, options, base, view);
123
123
  }
124
124
  return start(session, "find", table, options, base, view);
125
125
  },
@@ -133,10 +133,10 @@ function tableApi(session, table, view, uses) {
133
133
  return start(session, "exists", table, options, base, view);
134
134
  },
135
135
  page(options) {
136
- return lazyRead(session, () => import("./w17sj05d.js"), table, options, base, view);
136
+ return lazyRead(session, () => import("./ajjd5cwz.js"), table, options, base, view);
137
137
  },
138
138
  aggregate(options = {}) {
139
- return lazyRead(session, () => import("./7aews1zg.js"), table, options, base, view);
139
+ return lazyRead(session, () => import("./rwg8y90m.js"), table, options, base, view);
140
140
  },
141
141
  insert(data, options = {}) {
142
142
  return writeHandle(session, "insert", table, data, options, mods);
@@ -149,9 +149,9 @@ function tableApi(session, table, view, uses) {
149
149
  }
150
150
  };
151
151
  for (const walk of ["descendants", "ancestors"]) {
152
- api[walk] = (id, options) => lazyRead(session, () => import("./m4hhb8aa.js"), table, { id, walk, options }, base, view);
152
+ api[walk] = (id, options) => lazyRead(session, () => import("./390kry9g.js"), table, { id, walk, options }, base, view);
153
153
  }
154
- api.sync = (id, relation, ids, options) => lazyRead(session, () => import("./0r05zhyq.js"), table, { id, relation, ids, options }, base, view, true);
154
+ api.sync = (id, relation, ids, options) => lazyRead(session, () => import("./353vnw9z.js"), table, { id, relation, ids, options }, base, view, true);
155
155
  const hooks = session.schema.hooks;
156
156
  if (hooks !== undefined) {
157
157
  for (const hook of hooks) {
@@ -171,13 +171,13 @@ function tableApi(session, table, view, uses) {
171
171
  return api;
172
172
  }
173
173
  function batchHandle(session, ops, options, replica) {
174
- return queryHandle(() => import("./shjs0379.js").then((mod) => mod.batch(session, ops, options, replica)), {
174
+ return queryHandle(() => import("./kayqzpbk.js").then((mod) => mod.batch(session, ops, options, replica)), {
175
175
  replica: () => batchHandle(session, ops, options, true)
176
176
  });
177
177
  }
178
178
  var writers;
179
179
  function loadWrite() {
180
- writers ??= import("./jpgmjsx3.js");
180
+ writers ??= import("./g3xybeqf.js");
181
181
  return writers;
182
182
  }
183
183
  function queryHandle(run, extra) {
@@ -287,7 +287,7 @@ function lazyRead(session, load, table, options, mods, view, sync) {
287
287
  return queryHandle(() => read().then((box) => box.it), extra);
288
288
  }
289
289
  async function decodeRows(plan, rows, table) {
290
- return plan.outputs.includes.length === 0 ? decodeResult(plan, rows, table) : (await import("./ytk1tjs0.js")).decodeIncluded(plan, rows, table);
290
+ return plan.outputs.includes.length === 0 ? decodeResult(plan, rows, table) : (await import("./p73evwf0.js")).decodeIncluded(plan, rows, table);
291
291
  }
292
292
  function readHandle(session, table, call, mods, decode, extra) {
293
293
  let prepared;
@@ -297,17 +297,17 @@ function readHandle(session, table, call, mods, decode, extra) {
297
297
  if (prepared !== undefined)
298
298
  return prepared;
299
299
  if (mods.uses !== undefined) {
300
- call = (await import("./5bmksndh.js")).refine(session.schema, origin, mods.uses);
300
+ call = (await import("./bj1kyqc8.js")).refine(session.schema, origin, mods.uses);
301
301
  }
302
302
  if (searched) {
303
- call = (await import("./wbwq1jsa.js")).applyTextSearch(session.schema, call);
303
+ call = (await import("./91c59b7b.js")).applyTextSearch(session.schema, call);
304
304
  }
305
305
  const hooks = await hooksFor(call);
306
306
  if (readNeedsOperatorSql(session.schema, call) || hooks?.needsOperator(session.schema, call)) {
307
307
  await loadOperatorSql();
308
308
  }
309
309
  if (call.build === undefined && selectHasWindow(call.select)) {
310
- call = (await import("./c0xevn1h.js")).attach(session.schema, call);
310
+ call = (await import("./804w1t69.js")).attach(session.schema, call);
311
311
  }
312
312
  const bound = bindCall(session.schema, call, hooks);
313
313
  let plan = session.cache.get(bound.key);
@@ -327,6 +327,9 @@ function readHandle(session, table, call, mods, decode, extra) {
327
327
  const run = async () => {
328
328
  await session.connected;
329
329
  const { plan, params } = await prepare();
330
+ if (params.length > 65535) {
331
+ (await import("./fvmrxsd1.js")).refuseParamLimit(params.length);
332
+ }
330
333
  try {
331
334
  const result = await session.pool.execute(plan.text, params, callOptions(call, session.timeouts?.statement));
332
335
  if (session.hookm && result.notices.length) {
@@ -337,7 +340,7 @@ function readHandle(session, table, call, mods, decode, extra) {
337
340
  const mapped = await mapError(session, error);
338
341
  if (session.schema.model[table]?.conceal !== true)
339
342
  throw logged(session, mapped);
340
- const { scrubCall } = await import("./tpssp7ac.js");
343
+ const { scrubCall } = await import("./mwbdf409.js");
341
344
  throw logged(session, scrubCall(mapped, session.schema, call));
342
345
  }
343
346
  };
@@ -370,7 +373,7 @@ function readHandle(session, table, call, mods, decode, extra) {
370
373
  }
371
374
  function streamLazy(session, call, mods, view, batch) {
372
375
  return async function* () {
373
- const { streamRows } = await import("./yhp829bx.js");
376
+ const { streamRows } = await import("./en6rwzq0.js");
374
377
  yield* streamRows(session, call, mods, view, batch, (error) => logged(session, error));
375
378
  }();
376
379
  }
@@ -403,14 +406,14 @@ function readCall(op, table, options, all, scope, model, schema, view) {
403
406
  };
404
407
  }
405
408
  async function checkServer(pool, schema, http, requireMeta, options, source) {
406
- const { acceptServer } = await import("./76pv6qff.js");
409
+ const { acceptServer } = await import("./y4vwft92.js");
407
410
  await acceptServer(pool, schema, http, requireMeta, options, source);
408
411
  }
409
412
  async function mapError(session, error) {
410
413
  if (error instanceof OkmError) {
411
414
  return session.http === undefined ? error : new OkmError(error.code, error.message, { ...errorFields(error), http: session.http });
412
415
  }
413
- const { mapPostgresError } = await import("./yfedr1zb.js");
416
+ const { mapPostgresError } = await import("./xx3gmq94.js");
414
417
  return mapPostgresError(error, mapOptions(session.http, session.includeValues, session.schema));
415
418
  }
416
419
  function errorFields(error) {
@@ -424,7 +427,7 @@ function errorFields(error) {
424
427
  var includeHooks;
425
428
  var operatorSql;
426
429
  function loadOperatorSql() {
427
- operatorSql ??= import("./7b3xp9gc.js").then(() => {
430
+ operatorSql ??= import("./xwr6q618.js").then(() => {
428
431
  return;
429
432
  });
430
433
  return operatorSql;
@@ -435,7 +438,7 @@ function selectHasWindow(select) {
435
438
  function hooksFor(call) {
436
439
  if (call.include === undefined)
437
440
  return Promise.resolve(undefined);
438
- includeHooks ??= import("./ytk1tjs0.js").then((mod) => mod.includeHooks);
441
+ includeHooks ??= import("./p73evwf0.js").then((mod) => mod.includeHooks);
439
442
  return includeHooks;
440
443
  }
441
444
  function bindNow(schema, call) {
@@ -446,7 +449,7 @@ function bindNow(schema, call) {
446
449
  function finish(session, view, call) {
447
450
  if (session.schema.model[call.table]?.conceal !== true)
448
451
  return view;
449
- return import("./tpssp7ac.js").then((mod) => mod.redactView(session.schema, view, call));
452
+ return import("./mwbdf409.js").then((mod) => mod.redactView(session.schema, view, call));
450
453
  }
451
454
  function inspection(plan, params, call, source) {
452
455
  return {
@@ -1,14 +1,14 @@
1
1
  import {
2
- open5
3
- } from "./am04v8na.js";
2
+ open2
3
+ } from "./4ec0nxvw.js";
4
4
  import {
5
5
  createClient
6
- } from "./jr2nmr81.js";
6
+ } from "./gjj71hfh.js";
7
7
 
8
8
  // src/runtime/pg/neon.ts
9
9
  function connect(target, options) {
10
10
  if (typeof target === "object" && !isPool(target)) {
11
- return import("./kbqnrs1x.js").then((mod) => mod.default(target, options, (config) => open5({
11
+ return import("./bt3tjemb.js").then((mod) => mod.default(target, options, (config) => open2({
12
12
  url: config.url,
13
13
  ...options.mode !== undefined ? { mode: options.mode } : {},
14
14
  ...config.max !== undefined ? { max: config.max } : {},
@@ -18,7 +18,7 @@ function connect(target, options) {
18
18
  })));
19
19
  }
20
20
  const owned = !isPool(target);
21
- const opened = isPool(target) ? Promise.resolve(target) : open5({
21
+ const opened = isPool(target) ? Promise.resolve(target) : open2({
22
22
  url: target,
23
23
  ...options.mode !== undefined ? { mode: options.mode } : {},
24
24
  ...options.max !== undefined ? { max: options.max } : {},
@@ -1,20 +1,22 @@
1
1
  import {
2
2
  armDriverError2,
3
- open4,
4
- send3,
5
- connectClient2
6
- } from "./asgr07mp.js";
3
+ logClientError2,
4
+ open5,
5
+ send4,
6
+ connectClient3
7
+ } from "./ppybjw50.js";
7
8
  import {
8
9
  NODE_POSTGRES_CAPABILITIES,
9
10
  readCapability2,
10
11
  hasCapability2
11
- } from "./5x3pf400.js";
12
+ } from "./ry2f3w8p.js";
12
13
  export {
13
14
  armDriverError2 as armDriverError,
14
15
  NODE_POSTGRES_CAPABILITIES as capabilities,
15
- connectClient2 as connectClient,
16
+ connectClient3 as connectClient,
16
17
  hasCapability2 as hasCapability,
17
- open4 as open,
18
+ logClientError2 as logClientError,
19
+ open5 as open,
18
20
  readCapability2 as readCapability,
19
- send3 as send
21
+ send4 as send
20
22
  };
@@ -3,17 +3,17 @@ import {
3
3
  } from "./n4jqhpqz.js";
4
4
  import {
5
5
  refuseUncancellableTimeout
6
- } from "./tcwpjvxe.js";
6
+ } from "./kvw1672d.js";
7
7
  import {
8
8
  withHttp,
9
9
  settleCall
10
- } from "./jr2nmr81.js";
10
+ } from "./gjj71hfh.js";
11
11
  import {
12
12
  OkmError,
13
13
  rejectKeys,
14
14
  isRecord,
15
15
  fail2
16
- } from "./hfq3n3bd.js";
16
+ } from "./2jdn09e2.js";
17
17
 
18
18
  // src/runtime/batch.ts
19
19
  async function batch(session, ops, options, replica) {
@@ -45,6 +45,9 @@ async function batch(session, ops, options, replica) {
45
45
  if (item.checked === "parent") {
46
46
  throw new OkmError("OKM1705", "batch does not take an update that sets a path column. The parent is checked in the statement, and a batch cannot report that after it commits. Use update({ where, set }) inside tx().", { fix: { summary: "Use update({ where, set }) inside tx()." } });
47
47
  }
48
+ if (item.checked === "tree") {
49
+ fail2("OKM1121", "batch does not take an update that sets a tree parent. The cycle is checked in the statement, and a batch cannot report that after it commits. Use update({ where, set }) inside tx().");
50
+ }
48
51
  if (item.checked !== undefined) {
49
52
  fail2("OKM1121", item.checked === "restore" ? "batch does not take restore: it is refused while its parent is archived, and a batch cannot report that after it commits. Use tx()." : "batch does not take a write with expect: the count is checked after the statement ran, and a batch cannot report that after it commits. Use tx().");
50
53
  }
@@ -2,7 +2,7 @@
2
2
  async function refuseUncancellableTimeout(pool, timeout) {
3
3
  if (pool.capabilities.cancel === true || timeout === undefined || !(timeout > 0))
4
4
  return;
5
- const { refused } = await import("./sjwkt1pg.js");
5
+ const { refused } = await import("./yz68xcmc.js");
6
6
  await refused();
7
7
  }
8
8
 
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  refuseUncancellableTimeout
3
- } from "./tcwpjvxe.js";
3
+ } from "./kvw1672d.js";
4
4
  import {
5
5
  openClient,
6
6
  withHttp,
7
7
  settleCall
8
- } from "./jr2nmr81.js";
8
+ } from "./gjj71hfh.js";
9
9
  import {
10
10
  OkmError,
11
11
  isConnectionLost,
12
12
  rejectKeys,
13
13
  isRecord,
14
14
  fail2
15
- } from "./hfq3n3bd.js";
15
+ } from "./2jdn09e2.js";
16
16
 
17
17
  // src/runtime/transaction.ts
18
18
  var BEGIN = {
@@ -4,7 +4,7 @@ import {
4
4
  operatorValue,
5
5
  safetyInstalled,
6
6
  runSafety
7
- } from "./hfq3n3bd.js";
7
+ } from "./2jdn09e2.js";
8
8
 
9
9
  // src/runtime/exposure.ts
10
10
  var REDACTED = "[redacted]";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OkmError
3
- } from "./hfq3n3bd.js";
3
+ } from "./2jdn09e2.js";
4
4
 
5
5
  // src/runtime/validate/closed.ts
6
6
  var VALIDATION_NOT_IMPORTED = "Validation is enabled but `okmodel/validate` was not imported.";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  open6,
3
3
  seal2
4
- } from "./t6zjeake.js";
4
+ } from "./xn6p01fh.js";
5
5
  import {
6
6
  createClient
7
- } from "./jr2nmr81.js";
7
+ } from "./gjj71hfh.js";
8
8
 
9
9
  // src/runtime/pg/pglite.ts
10
10
  async function connect(target, options) {
11
11
  if (typeof target === "object" && !isPool(target)) {
12
- return import("./kbqnrs1x.js").then((mod) => mod.default(target, options, open6));
12
+ return import("./bt3tjemb.js").then((mod) => mod.default(target, options, open6));
13
13
  }
14
14
  const pool = isPool(target) ? seal2(target) : await open6({
15
15
  ...target !== undefined ? { dataDir: target } : {},
@@ -21,7 +21,7 @@ import {
21
21
  isRecord,
22
22
  registerFailFix,
23
23
  fail2
24
- } from "./hfq3n3bd.js";
24
+ } from "./2jdn09e2.js";
25
25
 
26
26
  // src/runtime/include.ts
27
27
  registerFailFix("OKM1105", "Pass limit on the include, or call .all(reason).");
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mapFailure
3
- } from "./5x3pf400.js";
3
+ } from "./ry2f3w8p.js";
4
4
 
5
5
  // src/adapters/pg/pglite-wire.ts
6
6
  var OIDS = [