okmodel 0.7.0 → 0.9.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 (258) hide show
  1. package/README.md +14 -0
  2. package/dist/adapters/capabilities.d.ts +32 -0
  3. package/dist/adapters/failure.d.ts +1 -1
  4. package/dist/adapters/pg/bun-sql.d.ts +53 -0
  5. package/dist/adapters/pg/bunsql-extra.d.ts +1 -1
  6. package/dist/adapters/pg/bunsql.d.ts +1 -1
  7. package/dist/adapters/pg/neon-extra.d.ts +18 -0
  8. package/dist/adapters/pg/neon.d.ts +104 -0
  9. package/dist/adapters/pg/no-inflight-timeout.d.ts +1 -1
  10. package/dist/contracts/error.d.ts +1 -1
  11. package/dist/dialects/pg/ext/btree-gin.d.ts +26 -0
  12. package/dist/dialects/pg/ext/btree-gin.js +20 -0
  13. package/dist/dialects/pg/ext/btree-gist.d.ts +26 -0
  14. package/dist/dialects/pg/ext/btree-gist.js +20 -0
  15. package/dist/dialects/pg/ext/call.d.ts +53 -0
  16. package/dist/dialects/pg/ext/citext.js +1 -1
  17. package/dist/dialects/pg/ext/feature.d.ts +26 -0
  18. package/dist/dialects/pg/ext/fuzzystrmatch.d.ts +34 -0
  19. package/dist/dialects/pg/ext/fuzzystrmatch.js +33 -0
  20. package/dist/dialects/pg/ext/hstore.d.ts +41 -0
  21. package/dist/dialects/pg/ext/hstore.js +29 -0
  22. package/dist/dialects/pg/ext/index.d.ts +56 -0
  23. package/dist/dialects/pg/ext/index.js +1 -1
  24. package/dist/dialects/pg/ext/ltree.d.ts +41 -0
  25. package/dist/dialects/pg/ext/ltree.js +29 -0
  26. package/dist/dialects/pg/ext/pg-trgm.js +4 -13
  27. package/dist/dialects/pg/ext/pgcrypto.d.ts +33 -0
  28. package/dist/dialects/pg/ext/pgcrypto.js +33 -0
  29. package/dist/dialects/pg/ext/unaccent.d.ts +26 -0
  30. package/dist/dialects/pg/ext/unaccent.js +21 -0
  31. package/dist/dialects/pg/ext/using.d.ts +23 -0
  32. package/dist/dialects/pg/ext/versions.d.ts +36 -0
  33. package/dist/dialects/pg/external.d.ts +19 -0
  34. package/dist/dialects/pg/fn/index.d.ts +39 -1
  35. package/dist/dialects/pg/fn/index.js +118 -26
  36. package/dist/dialects/pg/index.d.ts +3 -0
  37. package/dist/dialects/pg/index.js +394 -14
  38. package/dist/dialects/pg/introspect.d.ts +11 -0
  39. package/dist/dialects/pg/operators.d.ts +1 -1
  40. package/dist/dialects/pg/ops/fragment.d.ts +119 -0
  41. package/dist/dialects/pg/ops/lane.d.ts +49 -0
  42. package/dist/dialects/pg/view/client.d.ts +14 -6
  43. package/dist/dialects/pg/view/index.d.ts +73 -1
  44. package/dist/dialects/pg/view/index.js +156 -5
  45. package/dist/dialects/pg/view/scratch.d.ts +11 -5
  46. package/dist/runtime/artifact-file.d.ts +22 -0
  47. package/dist/runtime/client.d.ts +10 -0
  48. package/dist/runtime/drift-detail.d.ts +2 -1
  49. package/dist/runtime/drift.d.ts +3 -10
  50. package/dist/runtime/otel.d.ts +105 -0
  51. package/dist/runtime/otel.js +97 -0
  52. package/dist/runtime/pg/bun.js +4 -4
  53. package/dist/runtime/pg/neon.d.ts +38 -0
  54. package/dist/runtime/pg/neon.js +64 -0
  55. package/dist/runtime/pg/pg.js +4 -4
  56. package/dist/runtime/pg/pglite.js +4 -4
  57. package/dist/runtime/pg/postgresjs.js +4 -4
  58. package/dist/runtime/plan.d.ts +1 -1
  59. package/dist/runtime/server-check.d.ts +36 -6
  60. package/dist/runtime/sql-fragment.d.ts +43 -0
  61. package/dist/runtime/tenancy/index.js +10 -10
  62. package/dist/runtime/topology.d.ts +1 -1
  63. package/dist/runtime/traits/index.js +16 -17
  64. package/dist/runtime/types.d.ts +15 -1
  65. package/dist/runtime/validate/index.js +4 -4
  66. package/dist/shared/{81ebdx9p.js → 0j6qe91y.js} +4 -4
  67. package/dist/shared/{qq3899ht.js → 12z7aznj.js} +243 -14
  68. package/dist/shared/{gzaveazc.js → 1d9q9cv2.js} +29 -2
  69. package/dist/shared/{w79hsckn.js → 1mxm04fy.js} +5 -5
  70. package/dist/shared/{7k9grvf6.js → 2szgv6yj.js} +5 -5
  71. package/dist/shared/{gs74dbj5.js → 2zdxkt7b.js} +933 -111
  72. package/dist/shared/{m6p12kbr.js → 3456242y.js} +23 -23
  73. package/dist/shared/3bb7wsqt.js +99 -0
  74. package/dist/shared/{y6njgyda.js → 3t6kw83m.js} +2 -2
  75. package/dist/shared/{xhfsfkgk.js → 4vbf83xx.js} +9 -2
  76. package/dist/shared/{pt94kz7f.js → 5kyb3tqx.js} +1 -1
  77. package/dist/shared/61bmrmhr.js +35 -0
  78. package/dist/shared/{x933k9a3.js → 62b603gr.js} +10 -10
  79. package/dist/shared/{jgqj11w4.js → 6f0z3hzh.js} +4 -0
  80. package/dist/shared/{tsvww22q.js → 6nae0spm.js} +156 -95
  81. package/dist/shared/{mtaszv5a.js → 71n0jmhc.js} +102 -4
  82. package/dist/shared/{5e3tf63j.js → 760ppr76.js} +14 -6
  83. package/dist/shared/7ba5h6pb.js +17 -0
  84. package/dist/shared/{sfz1ksn6.js → 8jesqsrk.js} +2 -2
  85. package/dist/shared/{5v3xf80k.js → 8n688yjg.js} +1 -1
  86. package/dist/shared/{rs73fca9.js → 8qzkd9f3.js} +6 -6
  87. package/dist/shared/{ax7qv55k.js → 90sg0w5a.js} +202 -25
  88. package/dist/shared/{zm0ptry0.js → 99qp9vtg.js} +1 -1
  89. package/dist/shared/{xnxsed62.js → 9dr2qnx7.js} +14 -14
  90. package/dist/shared/{1w508jbr.js → 9dtgn1z2.js} +21 -17
  91. package/dist/shared/{h15jx9bc.js → 9dvh1dr6.js} +1 -1
  92. package/dist/shared/{q5c6ngn3.js → a62rb2da.js} +1 -1
  93. package/dist/shared/{te5as7z7.js → aksb89mn.js} +3 -3
  94. package/dist/shared/{bz84tkzm.js → bphrgwz9.js} +2 -2
  95. package/dist/shared/bsek72fg.js +225 -0
  96. package/dist/shared/{7mnme5tn.js → c3mvnq7a.js} +1 -1
  97. package/dist/shared/{p6qc5gcp.js → ccsmhv9r.js} +25 -7
  98. package/dist/shared/{pbp1ss85.js → cexb7z6b.js} +2 -2
  99. package/dist/shared/{ab9gmbwy.js → cf8zdz5p.js} +5 -5
  100. package/dist/shared/{jvd0mqag.js → ckz05z15.js} +5 -5
  101. package/dist/shared/{dk8v79p3.js → d5nmj7vv.js} +1 -1
  102. package/dist/shared/{14vx95q4.js → dd5pmnky.js} +7 -7
  103. package/dist/shared/{vb6qfyve.js → ds229x4r.js} +2 -2
  104. package/dist/shared/{1qa0qajz.js → e275q7sd.js} +1 -1
  105. package/dist/shared/{zp9fmend.js → ebhz8vh6.js} +4 -4
  106. package/dist/shared/{hyh73qk6.js → ecn8mfdq.js} +5 -5
  107. package/dist/shared/{je4axnm8.js → fdsz3w80.js} +2 -2
  108. package/dist/shared/{9s0ypp87.js → fk9vef30.js} +85 -74
  109. package/dist/shared/{g6evj1j3.js → g89fmz5s.js} +1 -1
  110. package/dist/shared/{aytqh5y2.js → ghqzdp94.js} +2 -2
  111. package/dist/shared/h9811jjm.js +17 -0
  112. package/dist/shared/{dkxgzaqd.js → hqpxf4a4.js} +1 -1
  113. package/dist/shared/{8skf0cam.js → jpybhf98.js} +1 -1
  114. package/dist/shared/{67txcrcw.js → kgwp4jdd.js} +4 -4
  115. package/dist/shared/kzgrnckd.js +29 -0
  116. package/dist/shared/mazpbcdj.js +233 -0
  117. package/dist/shared/{kb2sdhfb.js → mfvx6kjx.js} +17 -1
  118. package/dist/shared/{svncdeh5.js → mgaq2sd3.js} +11 -8
  119. package/dist/shared/{5mtf6cj3.js → mvmm3xpb.js} +5 -2
  120. package/dist/shared/{b5pftnn2.js → myk8fswx.js} +66 -21
  121. package/dist/shared/{2shdbn8q.js → n306gqkd.js} +9 -9
  122. package/dist/shared/{n816peh1.js → n454kcnw.js} +1 -1
  123. package/dist/shared/n5whk3mt.js +665 -0
  124. package/dist/shared/n7kg8mmx.js +61 -0
  125. package/dist/shared/{vqrjpcqn.js → nmnsgj7x.js} +1 -1
  126. package/dist/shared/{tbrvgw6z.js → npdftanb.js} +19 -26
  127. package/dist/shared/{ek2wt2dz.js → pg4ezgyf.js} +11 -30
  128. package/dist/shared/{5fe3kbsh.js → pgsak1yw.js} +1 -1
  129. package/dist/shared/{bm22fvzr.js → qfw14tna.js} +2 -2
  130. package/dist/shared/{wa07eas9.js → qvwwp1mp.js} +62 -41
  131. package/dist/shared/rbxt795q.js +1766 -0
  132. package/dist/shared/{xjk7hnn5.js → s7he5e5d.js} +2 -2
  133. package/dist/shared/{w72kgg4q.js → ss2kv2rs.js} +6 -6
  134. package/dist/shared/stfa9xcw.js +450 -0
  135. package/dist/shared/{3v7t1yrv.js → th3be82n.js} +2 -2
  136. package/dist/shared/{79dt02vc.js → tr64w5p0.js} +1 -1
  137. package/dist/shared/{cn957f8d.js → tw1nvvfj.js} +3 -3
  138. package/dist/shared/{ed0b8k4s.js → typ3vy7t.js} +1 -1
  139. package/dist/shared/{9628a9xt.js → vk7rag46.js} +1 -1
  140. package/dist/shared/{ze4hxsmy.js → w9ejzaqf.js} +1 -1
  141. package/dist/shared/{vczs8gd4.js → wvtjg5m3.js} +2 -2
  142. package/dist/shared/{9y3mmmh1.js → xfhe73sb.js} +1 -1
  143. package/dist/shared/xqacq37x.js +61 -0
  144. package/dist/shared/{1est4ezg.js → xtsydxjg.js} +3 -3
  145. package/dist/shared/xv8qj97g.js +96 -0
  146. package/dist/shared/{bg3rym3g.js → xwhdcrm4.js} +2 -2
  147. package/dist/shared/{kr0jzbw2.js → yvabyg9k.js} +7 -7
  148. package/dist/shared/yybhre6n.js +136 -0
  149. package/dist/shared/zdqf8k5d.js +8 -0
  150. package/dist/shared/{jznfax0y.js → zq1he88x.js} +4 -4
  151. package/dist/tooling/cli.js +108 -23
  152. package/dist/tooling/driver-run.js +4654 -0
  153. package/dist/tooling/driver-test.d.ts +36 -0
  154. package/dist/tooling/github/comment.d.ts +50 -0
  155. package/dist/tooling/github/post-comment.d.ts +17 -0
  156. package/dist/tooling/migrate/commands.d.ts +3 -2
  157. package/dist/tooling/migrate/config.d.ts +13 -0
  158. package/dist/tooling/migrate/export.d.ts +165 -0
  159. package/dist/tooling/migrate/ext-surface.d.ts +80 -0
  160. package/dist/tooling/migrate/ext.d.ts +31 -4
  161. package/dist/tooling/migrate/import-drizzle.d.ts +40 -0
  162. package/dist/tooling/migrate/index.d.ts +3 -0
  163. package/dist/tooling/migrate/index.js +55 -10
  164. package/dist/tooling/migrate/lint-rules.d.ts +18 -1
  165. package/dist/tooling/migrate/lint.d.ts +14 -1
  166. package/dist/tooling/migrate/place.d.ts +18 -0
  167. package/dist/tooling/migrate/plan-json.d.ts +65 -0
  168. package/dist/tooling/migrate/project.d.ts +13 -1
  169. package/dist/tooling/migrate/pull-emit.d.ts +98 -0
  170. package/dist/tooling/migrate/pull-routines.d.ts +126 -0
  171. package/dist/tooling/migrate/pull-verify.d.ts +26 -0
  172. package/dist/tooling/migrate/pull.d.ts +62 -0
  173. package/dist/tooling/migrate/reprint.d.ts +32 -0
  174. package/dist/tooling/migrate/sandbox.d.ts +8 -2
  175. package/dist/tooling/migrate/schema-api.d.ts +43 -0
  176. package/dist/tooling/migrate/sql-lex.d.ts +18 -0
  177. package/dist/tooling/shared/04svnxxj.js +344 -0
  178. package/dist/tooling/shared/0j0jtse1.js +13 -0
  179. package/dist/tooling/shared/0r05zhyq.js +618 -0
  180. package/dist/tooling/shared/1800eymw.js +49 -0
  181. package/dist/tooling/shared/35zemrmf.js +12 -0
  182. package/dist/tooling/shared/3rmaz3pq.js +140 -0
  183. package/dist/tooling/shared/3yn79q5m.js +12 -0
  184. package/dist/tooling/shared/54tqkxja.js +51 -0
  185. package/dist/tooling/shared/57btdkgm.js +209 -0
  186. package/dist/tooling/shared/5bmksndh.js +118 -0
  187. package/dist/tooling/shared/5p8km5jb.js +38 -0
  188. package/dist/tooling/shared/5x3pf400.js +185 -0
  189. package/dist/tooling/shared/5zrzffnk.js +6 -0
  190. package/dist/tooling/shared/62fxpc1p.js +332 -0
  191. package/dist/tooling/shared/68tf18v4.js +20 -0
  192. package/dist/tooling/shared/6vk28rjp.js +98 -0
  193. package/dist/tooling/shared/76pv6qff.js +9 -0
  194. package/dist/tooling/shared/7aews1zg.js +311 -0
  195. package/dist/tooling/shared/7b3xp9gc.js +195 -0
  196. package/dist/tooling/shared/7kms6fvj.js +20 -0
  197. package/dist/tooling/shared/7pxncnzs.js +40 -0
  198. package/dist/tooling/shared/829fjxyw.js +198 -0
  199. package/dist/tooling/shared/8m5znpdt.js +66 -0
  200. package/dist/tooling/shared/8yr7ges1.js +211 -0
  201. package/dist/tooling/shared/96ps4g1z.js +32 -0
  202. package/dist/tooling/shared/9qr9rkbh.js +143 -0
  203. package/dist/tooling/shared/9sfbtwsk.js +49 -0
  204. package/dist/tooling/shared/9wsnsvbf.js +10 -0
  205. package/dist/tooling/shared/a2xe04bm.js +18 -0
  206. package/dist/tooling/shared/a4pzghha.js +20 -0
  207. package/dist/tooling/shared/am04v8na.js +233 -0
  208. package/dist/tooling/shared/asgr07mp.js +194 -0
  209. package/dist/tooling/shared/c0xevn1h.js +312 -0
  210. package/dist/tooling/shared/dhatassp.js +134 -0
  211. package/dist/tooling/shared/ezqn88nj.js +1696 -0
  212. package/dist/tooling/shared/f77nnfqy.js +231 -0
  213. package/dist/tooling/shared/fh07z1dt.js +15 -0
  214. package/dist/tooling/shared/gqwevek4.js +81 -0
  215. package/dist/tooling/shared/hfq3n3bd.js +4116 -0
  216. package/dist/tooling/shared/htnaj77v.js +17 -0
  217. package/dist/tooling/shared/j664qjrt.js +64 -0
  218. package/dist/tooling/shared/jpgmjsx3.js +38 -0
  219. package/dist/tooling/shared/jr2nmr81.js +497 -0
  220. package/dist/tooling/shared/jsjjz875.js +139 -0
  221. package/dist/tooling/shared/kbqnrs1x.js +1425 -0
  222. package/dist/tooling/shared/kz715295.js +94 -0
  223. package/dist/tooling/shared/m3xt8b1h.js +22 -0
  224. package/dist/tooling/shared/m4hhb8aa.js +9 -0
  225. package/dist/tooling/shared/mw5npye0.js +16 -0
  226. package/dist/tooling/shared/n4jqhpqz.js +27 -0
  227. package/dist/tooling/shared/nxq95eb6.js +42 -0
  228. package/dist/tooling/shared/qartgazh.js +70 -0
  229. package/dist/tooling/shared/rcywj2w8.js +190 -0
  230. package/dist/tooling/shared/s6qha57m.js +16 -0
  231. package/dist/tooling/shared/shjs0379.js +150 -0
  232. package/dist/tooling/shared/sjwkt1pg.js +16 -0
  233. package/dist/tooling/shared/stebqyyd.js +401 -0
  234. package/dist/tooling/shared/t4xveemq.js +250 -0
  235. package/dist/tooling/shared/t6zjeake.js +261 -0
  236. package/dist/tooling/shared/tcwpjvxe.js +9 -0
  237. package/dist/tooling/shared/tpssp7ac.js +160 -0
  238. package/dist/tooling/shared/v6j1ep6w.js +42 -0
  239. package/dist/tooling/shared/vwr2y833.js +270 -0
  240. package/dist/tooling/shared/w17sj05d.js +7 -0
  241. package/dist/tooling/shared/w5d89rb4.js +131 -0
  242. package/dist/tooling/shared/wbwq1jsa.js +157 -0
  243. package/dist/tooling/shared/wezxf3h8.js +17 -0
  244. package/dist/tooling/shared/yb4kd19s.js +12 -0
  245. package/dist/tooling/shared/ybdew6j7.js +294 -0
  246. package/dist/tooling/shared/yfedr1zb.js +6 -0
  247. package/dist/tooling/shared/yhp829bx.js +177 -0
  248. package/dist/tooling/shared/ytk1tjs0.js +604 -0
  249. package/dist/tooling/shared/zs9aymcp.js +210 -0
  250. package/dist/tooling/shared/zx3v9phv.js +8 -0
  251. package/dist/tooling/testing/index.js +3 -3
  252. package/package.json +50 -9
  253. package/dist/shared/ktz42yez.js +0 -113
  254. package/dist/shared/ttsqgp4p.js +0 -71
  255. package/dist/shared/y34a8714.js +0 -150
  256. package/dist/shared/zy8r7qvz.js +0 -116
  257. package/dist/shared/{ywr8hmey.js → 606g0nbf.js} +3 -3
  258. package/dist/shared/{rpycarcr.js → gcefca6p.js} +4 -4
@@ -0,0 +1,261 @@
1
+ import {
2
+ noTimeout
3
+ } from "./3yn79q5m.js";
4
+ import {
5
+ PGLITE_CAPABILITIES,
6
+ driverErrors,
7
+ rejectClosed,
8
+ rejectCancelled,
9
+ rejectTimedOut,
10
+ nextTransactionDepth,
11
+ runCall,
12
+ EMPTY_NOTICES,
13
+ resultFrom
14
+ } from "./5x3pf400.js";
15
+
16
+ // src/adapters/pg/pglite.ts
17
+ import { PGlite } from "@electric-sql/pglite";
18
+ async function open6(config = {}) {
19
+ const wire = await import("./8m5znpdt.js");
20
+ const db = new PGlite({
21
+ dataDir: config.dataDir ?? "memory://",
22
+ parsers: wire.parsers,
23
+ serializers: wire.serializers
24
+ });
25
+ await db.waitReady;
26
+ const acquireMs = config.timeouts?.acquire;
27
+ const slot = new Slot;
28
+ const notices = noticeBuffer();
29
+ const queryOptions = {
30
+ rowMode: "array",
31
+ parsers: wire.parsers,
32
+ serializers: wire.serializers,
33
+ onNotice(notice) {
34
+ notices.push(notice);
35
+ }
36
+ };
37
+ let closed = false;
38
+ let inflight = 0;
39
+ const session = new PgliteSession(db, queryOptions, notices, () => {
40
+ inflight += 1;
41
+ }, () => {
42
+ inflight = Math.max(0, inflight - 1);
43
+ }, (error) => wire.fail(error));
44
+ async function lease() {
45
+ if (closed)
46
+ return rejectClosed();
47
+ await slot.acquire(acquireMs);
48
+ let released = false;
49
+ return {
50
+ execute: (text, params, options) => {
51
+ const refused = noTimeout(options);
52
+ if (refused !== undefined)
53
+ return refused;
54
+ return runCall(closed, options, (watch) => session.query(text, params, watch));
55
+ },
56
+ batch: (statements, options) => {
57
+ const refused = noTimeout(options);
58
+ if (refused !== undefined)
59
+ return refused;
60
+ return runCall(closed, options, async (watch) => {
61
+ const { runAtomicBatch } = await import("./gqwevek4.js");
62
+ return runAtomicBatch(session, statements, watch);
63
+ });
64
+ },
65
+ async release() {
66
+ if (released)
67
+ return;
68
+ released = true;
69
+ try {
70
+ const { resetQueried } = await import("./9wsnsvbf.js");
71
+ await resetQueried(session);
72
+ } finally {
73
+ slot.release();
74
+ }
75
+ }
76
+ };
77
+ }
78
+ return {
79
+ capabilities: PGLITE_CAPABILITIES,
80
+ execute(text, params, options) {
81
+ const refused = noTimeout(options);
82
+ if (refused !== undefined)
83
+ return refused;
84
+ return runCall(closed, options, async (watch) => {
85
+ await slot.acquire(acquireMs);
86
+ try {
87
+ return await session.query(text, params, watch);
88
+ } finally {
89
+ slot.release();
90
+ }
91
+ });
92
+ },
93
+ async batch(statements, options) {
94
+ const refused = noTimeout(options);
95
+ if (refused !== undefined)
96
+ return refused;
97
+ const connection = await lease();
98
+ try {
99
+ return await connection.batch(statements, options);
100
+ } finally {
101
+ await connection.release();
102
+ }
103
+ },
104
+ reserve: () => lease(),
105
+ async describe(text) {
106
+ await slot.acquire(acquireMs);
107
+ try {
108
+ const described = await db.describeQuery(text);
109
+ return {
110
+ columns: described.resultFields.map((field) => field.name),
111
+ parameterCount: described.queryParams.length
112
+ };
113
+ } finally {
114
+ slot.release();
115
+ }
116
+ },
117
+ async listen(channel, onNotify) {
118
+ const unlisten = await db.listen(channel, onNotify);
119
+ return async () => {
120
+ await unlisten();
121
+ };
122
+ },
123
+ stats() {
124
+ return { size: 1, idle: slot.idle, inflight, waiting: slot.waiting };
125
+ },
126
+ async close() {
127
+ closed = true;
128
+ await db.close();
129
+ }
130
+ };
131
+ }
132
+ function seal2(pool) {
133
+ let closed = 0;
134
+ return new Proxy(pool, {
135
+ get: (inner, key) => key === "close" ? () => Promise.resolve(closed = 1) : (inner = inner[key], closed && inner?.call ? () => rejectClosed() : inner)
136
+ });
137
+ }
138
+
139
+ class PgliteSession {
140
+ canCancel = false;
141
+ transactionDepth = 0;
142
+ db;
143
+ options;
144
+ notices;
145
+ enter;
146
+ leave;
147
+ fail;
148
+ constructor(db, options, notices, enter, leave, fail) {
149
+ this.db = db;
150
+ this.options = options;
151
+ this.notices = notices;
152
+ this.enter = enter;
153
+ this.leave = leave;
154
+ this.fail = fail;
155
+ }
156
+ query(text, params, watch) {
157
+ const why = watch?.reason();
158
+ if (why === "timeout")
159
+ return rejectTimedOut();
160
+ if (why === "cancelled" || watch?.signal.aborted === true)
161
+ return rejectCancelled();
162
+ this.enter();
163
+ const pending = params === undefined || params.length === 0 ? this.db.query(text, undefined, this.options) : this.db.query(text, params, this.options);
164
+ return pending.then((result) => {
165
+ this.leave();
166
+ this.note(text);
167
+ return resultFrom(result, this.notices.take());
168
+ }, (error) => {
169
+ this.leave();
170
+ this.notices.take();
171
+ return this.fail(stampQuery(error, text)).then((mapped) => {
172
+ throw mapped;
173
+ });
174
+ });
175
+ }
176
+ inTransaction() {
177
+ return this.transactionDepth > 0;
178
+ }
179
+ abandon() {
180
+ this.transactionDepth = 0;
181
+ }
182
+ rollback() {
183
+ return this.query("ROLLBACK", undefined, undefined).then(() => {
184
+ this.transactionDepth = 0;
185
+ }, (error) => {
186
+ this.transactionDepth = 0;
187
+ throw error;
188
+ });
189
+ }
190
+ note(text) {
191
+ this.transactionDepth = nextTransactionDepth(this.transactionDepth, text);
192
+ }
193
+ }
194
+ function noticeBuffer() {
195
+ let notices;
196
+ return {
197
+ push(notice) {
198
+ const severity = notice.severity ?? "";
199
+ const message = notice.message ?? "";
200
+ const code = notice.code !== undefined && notice.code.length > 0 ? notice.code : undefined;
201
+ const entry = code === undefined ? { severity, message } : { severity, message, code };
202
+ (notices ??= []).push(entry);
203
+ },
204
+ take() {
205
+ const taken = notices ?? EMPTY_NOTICES;
206
+ notices = undefined;
207
+ return taken;
208
+ }
209
+ };
210
+ }
211
+
212
+ class Slot {
213
+ held = false;
214
+ waiters = [];
215
+ acquire(acquireMs) {
216
+ if (!this.held) {
217
+ this.held = true;
218
+ return Promise.resolve();
219
+ }
220
+ return new Promise((resolve, reject) => {
221
+ const waiter = {
222
+ resolve,
223
+ timer: undefined
224
+ };
225
+ if (acquireMs !== undefined) {
226
+ waiter.timer = setTimeout(() => {
227
+ const index = this.waiters.indexOf(waiter);
228
+ if (index !== -1)
229
+ this.waiters.splice(index, 1);
230
+ driverErrors().then((errors) => {
231
+ reject(errors.acquireTimeout());
232
+ });
233
+ }, acquireMs);
234
+ }
235
+ this.waiters.push(waiter);
236
+ });
237
+ }
238
+ release() {
239
+ const next = this.waiters.shift();
240
+ if (next === undefined) {
241
+ this.held = false;
242
+ return;
243
+ }
244
+ if (next.timer !== undefined)
245
+ clearTimeout(next.timer);
246
+ next.resolve();
247
+ }
248
+ get idle() {
249
+ return this.held ? 0 : 1;
250
+ }
251
+ get waiting() {
252
+ return this.waiters.length;
253
+ }
254
+ }
255
+ function stampQuery(error, text) {
256
+ if (typeof error === "object" && error !== null && !("query" in error))
257
+ Reflect.set(error, "query", text);
258
+ return error;
259
+ }
260
+
261
+ export { open6, seal2 };
@@ -0,0 +1,9 @@
1
+ // src/runtime/inflight.ts
2
+ async function refuseUncancellableTimeout(pool, timeout) {
3
+ if (pool.capabilities.cancel === true || timeout === undefined || !(timeout > 0))
4
+ return;
5
+ const { refused } = await import("./sjwkt1pg.js");
6
+ await refused();
7
+ }
8
+
9
+ export { refuseUncancellableTimeout };
@@ -0,0 +1,160 @@
1
+ import {
2
+ OkmError,
3
+ isOperator,
4
+ operatorValue,
5
+ safetyInstalled,
6
+ runSafety
7
+ } from "./hfq3n3bd.js";
8
+
9
+ // src/runtime/exposure.ts
10
+ var REDACTED = "[redacted]";
11
+ var namesOf = new WeakMap;
12
+ function redactView(schema, view, call) {
13
+ const names = concealedNames(schema);
14
+ const secrets = new Set;
15
+ harvest(schema, call.where, names, undefined, secrets);
16
+ harvest(schema, call.include, names, undefined, secrets);
17
+ const model = schema.model[call.table];
18
+ const rules = model === undefined ? view.rules : [...view.rules, ...exposureRules(model, call)];
19
+ if (safetyInstalled())
20
+ runSafety(rules, undefined);
21
+ return {
22
+ ...view,
23
+ intent: {
24
+ ...view.intent,
25
+ where: walk(view.intent.where, names),
26
+ include: walk(view.intent.include, names)
27
+ },
28
+ rules,
29
+ sql: {
30
+ ...view.sql,
31
+ params: view.sql.params.map((value) => value !== null && secrets.has(value) ? REDACTED : value)
32
+ }
33
+ };
34
+ }
35
+ function scrubCall(error, schema, call) {
36
+ const names = concealedNames(schema);
37
+ const secrets = new Set;
38
+ harvest(schema, call.where, names, undefined, secrets);
39
+ harvest(schema, call.include, names, undefined, secrets);
40
+ let message = error.message;
41
+ for (const secret of secrets) {
42
+ if (secret.length < 4 || !message.includes(secret))
43
+ continue;
44
+ message = message.replaceAll(secret, REDACTED);
45
+ }
46
+ if (message === error.message)
47
+ return error;
48
+ return new OkmError(error.code, message, {
49
+ kind: error.kind,
50
+ ...error.table !== undefined ? { table: error.table } : {},
51
+ ...error.columns.length > 0 ? { columns: error.columns } : {},
52
+ fix: error.fix
53
+ });
54
+ }
55
+ function concealedNames(schema) {
56
+ const cached = namesOf.get(schema);
57
+ if (cached !== undefined)
58
+ return cached;
59
+ const names = new Set;
60
+ for (const model of Object.values(schema.model)) {
61
+ if (model.conceal !== true)
62
+ continue;
63
+ for (const column of model.columns) {
64
+ if (column.hidden || column.sensitive)
65
+ names.add(column.field);
66
+ }
67
+ }
68
+ namesOf.set(schema, names);
69
+ return names;
70
+ }
71
+ function exposureRules(model, call) {
72
+ const named = namedSelect(call.select);
73
+ const source = model.source;
74
+ const rules = [];
75
+ for (const column of model.columns) {
76
+ if (column.hidden && (named === undefined || !named.has(column.field))) {
77
+ rules.push({
78
+ rule: "hidden",
79
+ contribution: `hidden ${model.name}.${column.field} excluded`,
80
+ provenance: "catalog",
81
+ ...source !== undefined ? { source } : {}
82
+ });
83
+ }
84
+ if (column.sensitive) {
85
+ rules.push({
86
+ rule: "sensitive",
87
+ contribution: `sensitive ${model.name}.${column.field} redacted`,
88
+ provenance: "catalog",
89
+ ...source !== undefined ? { source } : {}
90
+ });
91
+ }
92
+ }
93
+ return rules;
94
+ }
95
+ function namedSelect(select) {
96
+ if (!Array.isArray(select))
97
+ return;
98
+ const names = new Set;
99
+ for (const name of select) {
100
+ if (typeof name === "string")
101
+ names.add(name);
102
+ }
103
+ return names;
104
+ }
105
+ function harvest(schema, value, names, key, into) {
106
+ if (Array.isArray(value)) {
107
+ for (const item of value)
108
+ harvest(schema, item, names, key, into);
109
+ return;
110
+ }
111
+ if (isOperator(value)) {
112
+ harvest(schema, operatorValue(value), names, key, into);
113
+ return;
114
+ }
115
+ if (typeof value === "object" && value !== null) {
116
+ const record = value;
117
+ for (const child of Object.keys(record))
118
+ harvest(schema, record[child], names, child, into);
119
+ return;
120
+ }
121
+ if (key === undefined || !names.has(key))
122
+ return;
123
+ const encode = encodeOf(schema, key);
124
+ if (encode === undefined)
125
+ return;
126
+ try {
127
+ into.add(encode(value));
128
+ } catch {}
129
+ }
130
+ function encodeOf(schema, field) {
131
+ for (const model of Object.values(schema.model)) {
132
+ for (const column of model.columns) {
133
+ if (column.field === field && (column.hidden || column.sensitive)) {
134
+ return column.encode;
135
+ }
136
+ }
137
+ }
138
+ return;
139
+ }
140
+ function walk(value, names, key) {
141
+ if (Array.isArray(value))
142
+ return value.map((item) => walk(item, names, key));
143
+ if (typeof value === "object" && value !== null) {
144
+ const record = value;
145
+ if (typeof record.op === "string" && "value" in record) {
146
+ return { op: record.op, value: walk(record.value, names, key) };
147
+ }
148
+ const out = {};
149
+ for (const child of Object.keys(record))
150
+ out[child] = walk(record[child], names, child);
151
+ return out;
152
+ }
153
+ if (key !== undefined && names.has(key))
154
+ return REDACTED;
155
+ return value;
156
+ }
157
+ export {
158
+ redactView,
159
+ scrubCall
160
+ };
@@ -0,0 +1,42 @@
1
+ import {
2
+ open4
3
+ } from "./asgr07mp.js";
4
+ import {
5
+ createClient
6
+ } from "./jr2nmr81.js";
7
+
8
+ // src/runtime/pg/pg.ts
9
+ function connect(target, options) {
10
+ if (typeof target === "object" && !isPool(target)) {
11
+ return import("./kbqnrs1x.js").then((mod) => mod.default(target, options, open4));
12
+ }
13
+ const owned = !isPool(target);
14
+ const pool = isPool(target) ? target : open4({
15
+ url: target,
16
+ ...options.max !== undefined ? { max: options.max } : {},
17
+ ...options.timeouts !== undefined ? { timeouts: options.timeouts } : {},
18
+ ...options.prepared !== undefined ? { prepared: options.prepared } : {},
19
+ ...options.searchPath !== undefined ? { searchPath: options.searchPath } : {},
20
+ ...options.ssl !== undefined ? { ssl: options.ssl } : {}
21
+ });
22
+ return createClient(options.schema, pool, {
23
+ ownsPool: owned,
24
+ http: options.errors?.http,
25
+ includeValues: options.errors?.includeValues,
26
+ logger: options.logger,
27
+ signal: options.signal,
28
+ timeout: options.timeout,
29
+ timeouts: options.timeouts,
30
+ hookm: options.hookm,
31
+ catalog: options.catalog,
32
+ catalogDir: options.catalogDir,
33
+ requireMeta: options.requireMeta,
34
+ generators: options.generators
35
+ });
36
+ }
37
+ function isPool(target) {
38
+ return typeof target === "object" && "execute" in target && "capabilities" in target;
39
+ }
40
+ export {
41
+ connect
42
+ };