okmodel 0.6.0 → 0.8.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 (267) hide show
  1. package/README.md +100 -1131
  2. package/dist/adapters/capabilities.d.ts +35 -0
  3. package/dist/adapters/failure.d.ts +13 -2
  4. package/dist/adapters/lazy-errors.d.ts +22 -0
  5. package/dist/adapters/pg/bun-sql.d.ts +53 -0
  6. package/dist/adapters/pg/bunsql-extra.d.ts +54 -3
  7. package/dist/adapters/pg/bunsql.d.ts +15 -2
  8. package/dist/adapters/pg/cursor.d.ts +17 -0
  9. package/dist/adapters/pg/neon-extra.d.ts +18 -0
  10. package/dist/adapters/pg/neon.d.ts +104 -0
  11. package/dist/adapters/pg/no-inflight-timeout.d.ts +11 -8
  12. package/dist/adapters/pg/nodepostgres-extra.d.ts +22 -1
  13. package/dist/adapters/pg/nodepostgres.d.ts +12 -0
  14. package/dist/adapters/pg/pglite-wire.d.ts +24 -0
  15. package/dist/adapters/pg/pglite.d.ts +10 -0
  16. package/dist/adapters/pg/postgres-extra.d.ts +27 -11
  17. package/dist/adapters/pg/reserved.d.ts +42 -0
  18. package/dist/adapters/pg/session.d.ts +0 -18
  19. package/dist/contracts/connection.d.ts +7 -6
  20. package/dist/contracts/error.d.ts +1 -1
  21. package/dist/dialects/pg/floor.d.ts +68 -0
  22. package/dist/dialects/pg/fn/index.d.ts +39 -1
  23. package/dist/dialects/pg/fn/index.js +118 -26
  24. package/dist/dialects/pg/index.d.ts +8 -1
  25. package/dist/dialects/pg/index.js +435 -170
  26. package/dist/dialects/pg/introspect.d.ts +11 -0
  27. package/dist/dialects/pg/keys.d.ts +11 -8
  28. package/dist/dialects/pg/model.d.ts +40 -0
  29. package/dist/dialects/pg/morph.d.ts +43 -0
  30. package/dist/dialects/pg/operator-fit.d.ts +2 -2
  31. package/dist/dialects/pg/operators.d.ts +14 -7
  32. package/dist/dialects/pg/ops/bucket.d.ts +65 -0
  33. package/dist/dialects/pg/ops/fragment.d.ts +119 -0
  34. package/dist/dialects/pg/ops/inc.d.ts +2 -2
  35. package/dist/dialects/pg/ops/lane.d.ts +49 -0
  36. package/dist/dialects/pg/ops/matches.d.ts +9 -12
  37. package/dist/dialects/pg/ops/relevance.d.ts +13 -0
  38. package/dist/dialects/pg/ops/search-query.d.ts +22 -0
  39. package/dist/dialects/pg/ops/window.d.ts +103 -0
  40. package/dist/dialects/pg/preset.d.ts +1 -1
  41. package/dist/dialects/pg/relations.d.ts +100 -3
  42. package/dist/dialects/pg/schema.d.ts +31 -3
  43. package/dist/dialects/pg/view/client.d.ts +14 -6
  44. package/dist/dialects/pg/view/index.d.ts +73 -1
  45. package/dist/dialects/pg/view/index.js +156 -5
  46. package/dist/dialects/pg/view/scratch.d.ts +8 -5
  47. package/dist/runtime/aggregate.d.ts +8 -2
  48. package/dist/runtime/bucket-group.d.ts +70 -0
  49. package/dist/runtime/conflict.d.ts +22 -4
  50. package/dist/runtime/include.d.ts +0 -8
  51. package/dist/runtime/inflight.d.ts +1 -1
  52. package/dist/runtime/otel.d.ts +105 -0
  53. package/dist/runtime/otel.js +97 -0
  54. package/dist/runtime/page.d.ts +4 -1
  55. package/dist/runtime/pg/bun.js +12 -6
  56. package/dist/runtime/pg/neon.d.ts +38 -0
  57. package/dist/runtime/pg/neon.js +64 -0
  58. package/dist/runtime/pg/pg.js +5 -5
  59. package/dist/runtime/pg/pglite.d.ts +1 -0
  60. package/dist/runtime/pg/pglite.js +9 -9
  61. package/dist/runtime/pg/postgresjs.js +5 -5
  62. package/dist/runtime/plan.d.ts +95 -5
  63. package/dist/runtime/read-stream.d.ts +13 -16
  64. package/dist/runtime/result-name.d.ts +17 -0
  65. package/dist/runtime/server-check.d.ts +3 -3
  66. package/dist/runtime/sort-bind.d.ts +21 -0
  67. package/dist/runtime/sort.d.ts +56 -0
  68. package/dist/runtime/sql-fragment.d.ts +43 -0
  69. package/dist/runtime/sync.d.ts +70 -0
  70. package/dist/runtime/tenancy/index.js +15 -13
  71. package/dist/runtime/text-search.d.ts +20 -0
  72. package/dist/runtime/topology.d.ts +1 -1
  73. package/dist/runtime/traits/index.d.ts +80 -0
  74. package/dist/runtime/traits/index.js +184 -21
  75. package/dist/runtime/tree.d.ts +38 -0
  76. package/dist/runtime/types.d.ts +232 -22
  77. package/dist/runtime/validate/index.js +4 -4
  78. package/dist/runtime/version.d.ts +39 -0
  79. package/dist/runtime/window.d.ts +21 -0
  80. package/dist/runtime/write.d.ts +54 -2
  81. package/dist/shared/{929h19xp.js → 0wrea3jq.js} +141 -13
  82. package/dist/shared/{qq3899ht.js → 12z7aznj.js} +243 -14
  83. package/dist/shared/{1z04fa85.js → 14x60fbf.js} +12 -57
  84. package/dist/shared/{ek2wt2dz.js → 16kvjebh.js} +4 -4
  85. package/dist/shared/{wynzeggs.js → 195pzzzz.js} +8 -8
  86. package/dist/shared/1d9q9cv2.js +312 -0
  87. package/dist/shared/2c13q96h.js +18 -0
  88. package/dist/shared/{b4v57v3x.js → 2d3xq4ps.js} +2 -2
  89. package/dist/shared/{1f0xa3cb.js → 3449rcae.js} +5 -5
  90. package/dist/shared/{wkme6tep.js → 35q0n9tz.js} +8 -16
  91. package/dist/shared/3bb7wsqt.js +99 -0
  92. package/dist/shared/3t6kw83m.js +249 -0
  93. package/dist/shared/{5j36z8dn.js → 4m6hskg8.js} +39 -70
  94. package/dist/shared/{n076ydsc.js → 4vbf83xx.js} +69 -28
  95. package/dist/shared/{vmfkhszw.js → 63f4ksbz.js} +33 -26
  96. package/dist/shared/{c58secgj.js → 63qtkrca.js} +38 -4
  97. package/dist/shared/6m78c8ss.js +6 -0
  98. package/dist/shared/{x3jc53kg.js → 760ppr76.js} +15 -7
  99. package/dist/shared/7ghwamrf.js +40 -0
  100. package/dist/shared/7kms6fvj.js +20 -0
  101. package/dist/shared/7n7ddwt4.js +6 -0
  102. package/dist/shared/9a4ae4p8.js +31 -0
  103. package/dist/shared/{hazqqecq.js → 9dr2qnx7.js} +63 -34
  104. package/dist/shared/{h15jx9bc.js → 9dvh1dr6.js} +1 -1
  105. package/dist/shared/a62rb2da.js +13 -0
  106. package/dist/shared/{cgbamx3e.js → ae4j5f42.js} +23 -4
  107. package/dist/shared/agsfb86s.js +233 -0
  108. package/dist/shared/{8x72s86k.js → b6d6p0zc.js} +13 -7
  109. package/dist/shared/{ag4c7516.js → b76b8d95.js} +2 -2
  110. package/dist/shared/{j60w0dvr.js → bah9nbg3.js} +58 -38
  111. package/dist/shared/bnby0esn.js +10 -0
  112. package/dist/shared/bsek72fg.js +225 -0
  113. package/dist/shared/{2cg3wnxc.js → bxas03mq.js} +608 -141
  114. package/dist/shared/{31vm914h.js → cm3w0ywp.js} +15 -16
  115. package/dist/shared/{gwn6v667.js → cnkky55j.js} +25 -14
  116. package/dist/shared/{dk8v79p3.js → d5nmj7vv.js} +1 -1
  117. package/dist/shared/{ttmg09vd.js → dpc2r7rb.js} +8 -8
  118. package/dist/shared/dzj09cye.js +10 -0
  119. package/dist/shared/{sbdme3vy.js → e8zyaqvj.js} +60 -10
  120. package/dist/shared/{2jd1sn0e.js → ecn8mfdq.js} +6 -6
  121. package/dist/shared/exn3sd90.js +359 -0
  122. package/dist/shared/{t3g0k88x.js → f4jy1j7x.js} +39 -22
  123. package/dist/shared/{y2t3jktd.js → fjpnhqan.js} +20 -13
  124. package/dist/shared/g5yc06ka.js +272 -0
  125. package/dist/shared/ga9j92qj.js +25 -0
  126. package/dist/shared/{3fqwmr09.js → hfqmpasr.js} +6 -6
  127. package/dist/shared/{wt5rzv1h.js → hm5f8jby.js} +7 -7
  128. package/dist/shared/{ys0xzyaj.js → hqpxf4a4.js} +224 -19
  129. package/dist/shared/jebgrkeq.js +179 -0
  130. package/dist/shared/{09p049xa.js → jp36k7dp.js} +44 -16
  131. package/dist/shared/jx2m62cs.js +96 -0
  132. package/dist/shared/{r11n8grd.js → k86n8vq3.js} +7 -4
  133. package/dist/shared/{2z7wv5tj.js → kgwp4jdd.js} +56 -35
  134. package/dist/shared/{knmes2kh.js → kj9d8maq.js} +1 -1
  135. package/dist/shared/{g90m9b0g.js → m4xff2a6.js} +6 -5
  136. package/dist/shared/{r6nwkxnt.js → m7n9h2a5.js} +4 -4
  137. package/dist/shared/mfedzr74.js +145 -0
  138. package/dist/shared/{f0f1n281.js → mkrn359n.js} +60 -11
  139. package/dist/shared/{p248q79y.js → mnvjvqyp.js} +10 -10
  140. package/dist/shared/{672t5vym.js → mss6ctgv.js} +2 -2
  141. package/dist/shared/{4az561fn.js → mtw6jz76.js} +8 -23
  142. package/dist/shared/n05z9nwz.js +313 -0
  143. package/dist/shared/{pjr6xrm5.js → n0jmpgj1.js} +20 -17
  144. package/dist/shared/{p6bjzq9q.js → n41w4fbz.js} +14 -6
  145. package/dist/shared/{b3awxn7h.js → n454kcnw.js} +1 -1
  146. package/dist/shared/n7kg8mmx.js +61 -0
  147. package/dist/shared/nbw1z4yd.js +18 -0
  148. package/dist/shared/needfe47.js +66 -0
  149. package/dist/shared/{1nw1f3vs.js → njga14v4.js} +9 -9
  150. package/dist/shared/{5yv4k6a6.js → nmnsgj7x.js} +145 -3
  151. package/dist/shared/{vjpnzwjz.js → p3xbdcvt.js} +14 -18
  152. package/dist/shared/p5nh3r8q.js +622 -0
  153. package/dist/shared/{nx9hh281.js → pan0370z.js} +13 -12
  154. package/dist/shared/q0cqt2sp.js +12 -0
  155. package/dist/shared/qd9hhd8f.js +37 -0
  156. package/dist/shared/{mb2ycs1p.js → qfw14tna.js} +15 -15
  157. package/dist/shared/{9s0ypp87.js → sjk86yrx.js} +1 -1
  158. package/dist/shared/th3be82n.js +208 -0
  159. package/dist/shared/{ed0b8k4s.js → typ3vy7t.js} +1 -1
  160. package/dist/shared/{5d8t84hg.js → v1wad97q.js} +14 -14
  161. package/dist/shared/{x72jb7ad.js → v8g1vgv8.js} +1 -1
  162. package/dist/shared/{9628a9xt.js → vk7rag46.js} +1 -1
  163. package/dist/shared/{ze4hxsmy.js → w9ejzaqf.js} +1 -1
  164. package/dist/shared/{q3j1tq7a.js → wcrheftc.js} +148 -23
  165. package/dist/shared/wvdjznah.js +213 -0
  166. package/dist/shared/wz2a78mp.js +8 -0
  167. package/dist/shared/xfhe73sb.js +436 -0
  168. package/dist/shared/{r1fdd0f6.js → z581d7ny.js} +5 -2
  169. package/dist/shared/{8etn7d8w.js → z7s6fpxv.js} +1 -1
  170. package/dist/shared/{32cnm7kn.js → zbqbmmrp.js} +76 -40
  171. package/dist/shared/{n7mcc1gk.js → zchaghkf.js} +4 -3
  172. package/dist/shared/{xq0mvhts.js → zgex00fd.js} +6 -6
  173. package/dist/shared/{nsva2a6b.js → znm0bpp5.js} +3 -0
  174. package/dist/shared/zq1he88x.js +155 -0
  175. package/dist/tooling/cli.js +26 -13
  176. package/dist/tooling/driver-run.js +4971 -0
  177. package/dist/tooling/driver-test.d.ts +36 -0
  178. package/dist/tooling/migrate/commands.d.ts +2 -2
  179. package/dist/tooling/migrate/engine.d.ts +3 -2
  180. package/dist/tooling/migrate/index.js +9 -9
  181. package/dist/tooling/migrate/project.d.ts +3 -0
  182. package/dist/tooling/shared/03k6res6.js +210 -0
  183. package/dist/tooling/shared/08kemxjd.js +10 -0
  184. package/dist/tooling/shared/2revefqt.js +209 -0
  185. package/dist/tooling/shared/2wtvc7rw.js +1425 -0
  186. package/dist/tooling/shared/345tbc2k.js +16 -0
  187. package/dist/tooling/shared/3m1hkg7z.js +344 -0
  188. package/dist/tooling/shared/3rrw5w8f.js +81 -0
  189. package/dist/tooling/shared/3tq8pnb8.js +131 -0
  190. package/dist/tooling/shared/417zdsk7.js +194 -0
  191. package/dist/tooling/shared/4d2w25vw.js +40 -0
  192. package/dist/tooling/shared/54tqkxja.js +51 -0
  193. package/dist/tooling/shared/5bvw2nev.js +12 -0
  194. package/dist/tooling/shared/6nyfyw70.js +231 -0
  195. package/dist/tooling/shared/72fyg4zv.js +160 -0
  196. package/dist/tooling/shared/733a1tq3.js +38 -0
  197. package/dist/tooling/shared/7ae7rjmn.js +20 -0
  198. package/dist/tooling/shared/7kms6fvj.js +20 -0
  199. package/dist/tooling/shared/8sqrsw3s.js +49 -0
  200. package/dist/tooling/shared/96ps4g1z.js +32 -0
  201. package/dist/tooling/shared/9kazs5p6.js +195 -0
  202. package/dist/tooling/shared/9xzm7hjg.js +38 -0
  203. package/dist/tooling/shared/a6pp9d12.js +49 -0
  204. package/dist/tooling/shared/a7q7t4n3.js +22 -0
  205. package/dist/tooling/shared/aftb2mwr.js +18 -0
  206. package/dist/tooling/shared/bz2dqhab.js +311 -0
  207. package/dist/tooling/shared/cmptmb4f.js +12 -0
  208. package/dist/tooling/shared/ddjtfgnx.js +177 -0
  209. package/dist/tooling/shared/djydjpqt.js +261 -0
  210. package/dist/tooling/shared/dw08f3m8.js +9 -0
  211. package/dist/tooling/shared/dy672fz6.js +16 -0
  212. package/dist/tooling/shared/dzx85q70.js +66 -0
  213. package/dist/tooling/shared/ec71zqgt.js +270 -0
  214. package/dist/{shared/d5azex6s.js → tooling/shared/ep8zh3bk.js} +1 -1
  215. package/dist/tooling/shared/f9mphxej.js +3789 -0
  216. package/dist/tooling/shared/fb9k2qwd.js +89 -0
  217. package/dist/tooling/shared/g9ad4n80.js +211 -0
  218. package/dist/tooling/shared/gfvtj6d0.js +94 -0
  219. package/dist/tooling/shared/gmcf9cxf.js +294 -0
  220. package/dist/tooling/shared/htnaj77v.js +17 -0
  221. package/dist/tooling/shared/j9t5s12a.js +7 -0
  222. package/dist/tooling/shared/jne7b93p.js +42 -0
  223. package/dist/tooling/shared/ma2340rx.js +118 -0
  224. package/dist/tooling/shared/mtrqn2hn.js +505 -0
  225. package/dist/tooling/shared/n4jqhpqz.js +27 -0
  226. package/dist/tooling/shared/nf7jmhfa.js +20 -0
  227. package/dist/tooling/shared/p7f08ktn.js +332 -0
  228. package/dist/tooling/shared/ppnnnvj8.js +13 -0
  229. package/dist/tooling/shared/pqy21k24.js +312 -0
  230. package/dist/tooling/shared/pw8fgahx.js +69 -0
  231. package/dist/tooling/shared/pwsytxm5.js +17 -0
  232. package/dist/tooling/shared/rf83gr2d.js +94 -0
  233. package/dist/tooling/shared/rq5kk8j6.js +401 -0
  234. package/dist/tooling/shared/rs1jb051.js +12 -0
  235. package/dist/tooling/shared/smn6kz1p.js +157 -0
  236. package/dist/tooling/shared/spk1jg3r.js +1696 -0
  237. package/dist/tooling/shared/tn8gay14.js +143 -0
  238. package/dist/tooling/shared/vraj6d74.js +42 -0
  239. package/dist/tooling/shared/vs0t6qt8.js +64 -0
  240. package/dist/tooling/shared/vx86qjv8.js +150 -0
  241. package/dist/tooling/shared/w7qe8sj1.js +140 -0
  242. package/dist/tooling/shared/wt7j7nf6.js +15 -0
  243. package/dist/tooling/shared/wwnekq5n.js +6 -0
  244. package/dist/tooling/shared/xhrnjch9.js +185 -0
  245. package/dist/tooling/shared/xjs6zqtc.js +190 -0
  246. package/dist/tooling/shared/y031jct9.js +16 -0
  247. package/dist/tooling/shared/y5656f0e.js +233 -0
  248. package/dist/tooling/shared/yfr8hzhm.js +604 -0
  249. package/dist/tooling/shared/yk9mp7vb.js +250 -0
  250. package/dist/tooling/shared/yw30vnq2.js +139 -0
  251. package/dist/tooling/shared/z8d7ptht.js +618 -0
  252. package/dist/tooling/shared/zhwnfyb2.js +9 -0
  253. package/dist/tooling/shared/zvnhh1n0.js +198 -0
  254. package/dist/tooling/testing/index.js +3 -3
  255. package/package.json +17 -3
  256. package/dist/shared/3qnhc7w5.js +0 -38
  257. package/dist/shared/7m88x3e9.js +0 -45
  258. package/dist/shared/8dqhth8c.js +0 -12
  259. package/dist/shared/j3rkk835.js +0 -99
  260. package/dist/shared/k68eedmy.js +0 -85
  261. package/dist/shared/venqrjna.js +0 -216
  262. package/dist/shared/wxr8cwns.js +0 -6
  263. package/dist/shared/y34a8714.js +0 -150
  264. package/dist/shared/zm0mafk4.js +0 -92
  265. package/dist/shared/zy8r7qvz.js +0 -116
  266. package/dist/shared/{ywr8hmey.js → 606g0nbf.js} +3 -3
  267. package/dist/shared/{rpycarcr.js → gcefca6p.js} +4 -4
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  open2
3
- } from "./wkme6tep.js";
4
- import"./qq3899ht.js";
3
+ } from "./35q0n9tz.js";
4
+ import"./12z7aznj.js";
5
5
  import"./n442h54c.js";
6
6
  import {
7
7
  openProject
8
- } from "./t3g0k88x.js";
8
+ } from "./f4jy1j7x.js";
9
9
  import {
10
10
  sessionFailure,
11
11
  finishQuiet,
12
12
  assertTargetPolicy,
13
13
  selectTarget
14
- } from "./ttmg09vd.js";
15
- import"./9s0ypp87.js";
14
+ } from "./dpc2r7rb.js";
15
+ import"./sjk86yrx.js";
16
16
  import {
17
17
  isExactVersion,
18
18
  compareExtensionVersions
@@ -82,7 +82,9 @@ function formatCheck(objects, server) {
82
82
  }
83
83
  const want = object.definition.version;
84
84
  if (!versionAccepted(want, have)) {
85
- throw new OkmError2("OKM1812", `Extension ${name} is ${have} on the server. The schema requires ${want ?? ""}.`, { fix: { summary: "Install a version the declaration accepts, or change the pin." } });
85
+ throw new OkmError2("OKM1812", extensionNeeds(name, want ?? "", have), {
86
+ fix: { summary: "Install a version the declaration accepts, or change the pin." }
87
+ });
86
88
  }
87
89
  lines.push([name, want ?? "-", have].join("\t"));
88
90
  }
@@ -90,6 +92,12 @@ function formatCheck(objects, server) {
90
92
  `)}
91
93
  `;
92
94
  }
95
+ function extensionNeeds(name, want, have) {
96
+ const floor = /^>=(\d+(?:\.\d+)*)$/.exec(want);
97
+ const need = floor?.[1] ?? want;
98
+ const higher = floor === null ? "" : " or higher";
99
+ return `Extension ${name} needs ${need}${higher}. The server has ${have}. Install a version the declaration accepts, or change the pin.`;
100
+ }
93
101
  function versionAccepted(declared, installed) {
94
102
  if (declared === undefined)
95
103
  return true;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isRecord,
3
3
  orFail
4
- } from "./2z7wv5tj.js";
4
+ } from "./kgwp4jdd.js";
5
5
  import {
6
6
  isOperator,
7
7
  operatorName,
@@ -0,0 +1,61 @@
1
+ import {
2
+ OkmError2
3
+ } from "./52szzakm.js";
4
+
5
+ // src/tooling/driver-test.ts
6
+ import { spawn } from "node:child_process";
7
+ import { existsSync } from "node:fs";
8
+ import { dirname, join } from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+ async function driverTest(args, stdout) {
11
+ const runner = driverRunnerPath(dirname(fileURLToPath(import.meta.url)));
12
+ if (!existsSync(runner)) {
13
+ throw new OkmError2("invalid", "okm driver test cannot find its runner.", {
14
+ fix: { summary: "Run bun run build, then retry." }
15
+ });
16
+ }
17
+ const command = runner.endsWith(".ts") ? "bun" : process.execPath;
18
+ const result = await runProcess(command, [runner, ...args]);
19
+ if (result.stdout.length > 0)
20
+ stdout(result.stdout);
21
+ if (result.code !== 0) {
22
+ const detail = result.stderr.trim();
23
+ throw new OkmError2("invalid", detail === "" ? "okm driver test failed." : detail, {
24
+ fix: { summary: "The report lists each failed case." }
25
+ });
26
+ }
27
+ }
28
+ function driverRunnerPath(here) {
29
+ const source = join(here, "..", "..", "packages", "harness", "src", "driver-run.ts");
30
+ if (existsSync(source))
31
+ return source;
32
+ const beside = join(here, "driver-run.js");
33
+ if (existsSync(beside))
34
+ return beside;
35
+ return join(here, "..", "tooling", "driver-run.js");
36
+ }
37
+ function runProcess(command, args) {
38
+ return new Promise((resolve, reject) => {
39
+ const child = spawn(command, [...args], { stdio: ["ignore", "pipe", "pipe"] });
40
+ const out = [];
41
+ const err = [];
42
+ child.stdout.on("data", (chunk) => {
43
+ out.push(chunk);
44
+ });
45
+ child.stderr.on("data", (chunk) => {
46
+ err.push(chunk);
47
+ });
48
+ const proc = child;
49
+ proc.on("error", reject);
50
+ proc.on("close", (code) => {
51
+ resolve({
52
+ code: code ?? 1,
53
+ stdout: Buffer.concat(out).toString("utf8"),
54
+ stderr: Buffer.concat(err).toString("utf8")
55
+ });
56
+ });
57
+ });
58
+ }
59
+ export {
60
+ driverTest
61
+ };
@@ -0,0 +1,18 @@
1
+ // src/dialects/pg/ops/bucket.ts
2
+ var RUNTIME = Symbol.for("okmodel.bucket");
3
+ function bucket2(column, unit, options) {
4
+ const spec = options ?? { as: undefined, tz: undefined, weekStart: undefined };
5
+ return {
6
+ [RUNTIME]: true,
7
+ column,
8
+ unit,
9
+ as: spec.as,
10
+ tz: spec.tz,
11
+ weekStart: spec.weekStart
12
+ };
13
+ }
14
+ function isBucket(value) {
15
+ return typeof value === "object" && value !== null && RUNTIME in value;
16
+ }
17
+
18
+ export { bucket2, isBucket };
@@ -0,0 +1,66 @@
1
+ import {
2
+ mapFailure
3
+ } from "./ae4j5f42.js";
4
+
5
+ // src/adapters/pg/pglite-wire.ts
6
+ var OIDS = [
7
+ 16,
8
+ 17,
9
+ 20,
10
+ 21,
11
+ 23,
12
+ 25,
13
+ 114,
14
+ 700,
15
+ 701,
16
+ 1043,
17
+ 1082,
18
+ 1114,
19
+ 1184,
20
+ 1700,
21
+ 2950,
22
+ 3802,
23
+ 1000,
24
+ 1005,
25
+ 1007,
26
+ 1009,
27
+ 1016,
28
+ 1115,
29
+ 1182,
30
+ 1185,
31
+ 1231,
32
+ 199,
33
+ 3807
34
+ ];
35
+ function identity(value) {
36
+ return value;
37
+ }
38
+ function serialize(value) {
39
+ if (typeof value === "number" || typeof value === "bigint")
40
+ return String(value);
41
+ if (typeof value === "boolean")
42
+ return value ? "t" : "f";
43
+ return value;
44
+ }
45
+ var parsers = {};
46
+ var serializers = {};
47
+ for (const oid of OIDS) {
48
+ parsers[oid] = identity;
49
+ serializers[oid] = serialize;
50
+ }
51
+ function fail(error) {
52
+ return mapFailure(protocol(error));
53
+ }
54
+ function protocol(error) {
55
+ if (typeof error !== "object" || error === null || !("code" in error))
56
+ return error;
57
+ if (error.code !== "08P01")
58
+ return error;
59
+ const message = error instanceof Error ? error.message : "";
60
+ return new Error(message.length > 0 ? message : "protocol error");
61
+ }
62
+ export {
63
+ fail,
64
+ parsers,
65
+ serializers
66
+ };
@@ -4,16 +4,16 @@ import {
4
4
  applyProject2,
5
5
  pushProject2,
6
6
  backfillTiming2
7
- } from "./nx9hh281.js";
8
- import"./p248q79y.js";
9
- import"./knmes2kh.js";
10
- import"./vjpnzwjz.js";
11
- import"./t3g0k88x.js";
12
- import"./ttmg09vd.js";
7
+ } from "./pan0370z.js";
8
+ import"./mnvjvqyp.js";
9
+ import"./kj9d8maq.js";
10
+ import"./p3xbdcvt.js";
11
+ import"./f4jy1j7x.js";
12
+ import"./dpc2r7rb.js";
13
13
  import"./n442h54c.js";
14
- import"./9s0ypp87.js";
15
- import"./qq3899ht.js";
16
- import"./wkme6tep.js";
14
+ import"./sjk86yrx.js";
15
+ import"./12z7aznj.js";
16
+ import"./35q0n9tz.js";
17
17
  export {
18
18
  applyProject2 as applyProject,
19
19
  applyTarget2 as applyTarget,
@@ -1,11 +1,153 @@
1
1
  import {
2
- required
3
- } from "./ywr8hmey.js";
2
+ required,
3
+ openColumn
4
+ } from "./606g0nbf.js";
4
5
  import {
5
6
  definition,
6
7
  rejected
7
8
  } from "./tmbdywx0.js";
8
9
 
10
+ // src/dialects/pg/integer.ts
11
+ function smallint2() {
12
+ return required({
13
+ baseType: "smallint",
14
+ encode: (value) => integerToken(value, -32768, 32767, "smallint"),
15
+ decode: (wire) => decodeBounded(wire, -32768, 32767, "smallint"),
16
+ sqlForm: "raw"
17
+ });
18
+ }
19
+ function integer2() {
20
+ return required({
21
+ baseType: "integer",
22
+ encode: (value) => integerToken(value, -2147483648, 2147483647, "integer"),
23
+ decode: (wire) => decodeBounded(wire, -2147483648, 2147483647, "integer"),
24
+ sqlForm: "raw"
25
+ });
26
+ }
27
+ function bigint2(options) {
28
+ const mode = options?.as ?? "string";
29
+ if (mode === "number") {
30
+ return required({
31
+ baseType: "bigint",
32
+ encode: encodeBigintNumber,
33
+ decode: decodeBigintNumber,
34
+ sqlForm: "raw",
35
+ typeLabel: "number"
36
+ });
37
+ }
38
+ if (mode === "bigint") {
39
+ return required({
40
+ baseType: "bigint",
41
+ encode: encodeBigintValue,
42
+ decode: decodeBigintValue,
43
+ sqlForm: "raw",
44
+ typeLabel: "bigint"
45
+ });
46
+ }
47
+ if (mode !== "string") {
48
+ definition(`bigint as ${String(mode)} must be string, number, or bigint.`);
49
+ }
50
+ return required({
51
+ baseType: "bigint",
52
+ encode: encodeBigintString,
53
+ decode: decodeBigintString,
54
+ sqlForm: "raw"
55
+ });
56
+ }
57
+ function identity2(options) {
58
+ const mode = options?.as ?? "string";
59
+ if (mode === "number") {
60
+ return openColumn({
61
+ ...identityFlags(),
62
+ encode: encodeBigintNumber,
63
+ decode: decodeBigintNumber,
64
+ typeLabel: "number"
65
+ });
66
+ }
67
+ if (mode === "bigint") {
68
+ return openColumn({
69
+ ...identityFlags(),
70
+ encode: encodeBigintValue,
71
+ decode: decodeBigintValue,
72
+ typeLabel: "bigint"
73
+ });
74
+ }
75
+ if (mode !== "string") {
76
+ definition(`identity as ${String(mode)} must be string, number, or bigint.`);
77
+ }
78
+ return openColumn({
79
+ ...identityFlags(),
80
+ encode: encodeBigintString,
81
+ decode: decodeBigintString
82
+ });
83
+ }
84
+ function encodeBigintString(value) {
85
+ parseBigint(value);
86
+ return value;
87
+ }
88
+ function decodeBigintString(wire) {
89
+ return encodeBigintString(wire);
90
+ }
91
+ function encodeBigintNumber(value) {
92
+ if (!Number.isSafeInteger(value)) {
93
+ rejected(`bigint number ${String(value)} must be an integer from ${String(Number.MIN_SAFE_INTEGER)} to ${String(Number.MAX_SAFE_INTEGER)}.`);
94
+ }
95
+ return String(value);
96
+ }
97
+ function decodeBigintNumber(wire) {
98
+ const parsed = parseBigint(wire);
99
+ const value = Number(parsed);
100
+ if (!Number.isSafeInteger(value)) {
101
+ rejected(`bigint ${wire} must be an integer from ${String(Number.MIN_SAFE_INTEGER)} to ${String(Number.MAX_SAFE_INTEGER)} when as is number.`);
102
+ }
103
+ return value;
104
+ }
105
+ function encodeBigintValue(value) {
106
+ return value.toString();
107
+ }
108
+ function decodeBigintValue(wire) {
109
+ return parseBigint(wire);
110
+ }
111
+ function integerToken(value, min, max, role) {
112
+ if (!Number.isInteger(value) || value < min || value > max) {
113
+ rejected(`${role} ${String(value)} must be an integer from ${String(min)} to ${String(max)}.`);
114
+ }
115
+ return String(value);
116
+ }
117
+ function decodeBounded(wire, min, max, role) {
118
+ if (!integerText().test(wire)) {
119
+ rejected(`${role} ${wire} must be an integer, for example 0 or -12.`);
120
+ }
121
+ const value = Number(wire);
122
+ integerToken(value, min, max, role);
123
+ return value;
124
+ }
125
+ function identityFlags() {
126
+ return {
127
+ baseType: "bigint",
128
+ nullable: false,
129
+ hasDefault: true,
130
+ generated: false,
131
+ guarded: false,
132
+ hidden: false,
133
+ omitWrite: true,
134
+ sqlForm: "raw",
135
+ identity: { always: true },
136
+ primaryKey: true
137
+ };
138
+ }
139
+ function parseBigint(wire) {
140
+ if (!integerText().test(wire)) {
141
+ rejected(`bigint ${wire} must be an integer with no leading zeros, for example 0 or -12.`);
142
+ }
143
+ return BigInt(wire);
144
+ }
145
+ function integerText() {
146
+ integerPattern ??= /^-?(?:0|[1-9]\d*)$/;
147
+ return integerPattern;
148
+ }
149
+ var integerPattern;
150
+
9
151
  // src/dialects/pg/temporal.ts
10
152
  var TEMPORAL_MISSING = "Date and time codecs need the Temporal global. okmodel does not ship a polyfill. Use a runtime that provides Temporal, or assign a polyfill to globalThis.Temporal before using these columns.";
11
153
  function requireTemporal() {
@@ -222,4 +364,4 @@ function timed(name, precision) {
222
364
  return `${name}(${String(precision)})`;
223
365
  }
224
366
 
225
- export { encodeInstant, decodeInstant, encodeDate, decodeDate, timestamptz2, timestamp2, date2, time2, timetz2, interval2 };
367
+ export { smallint2, integer2, bigint2, identity2, encodeBigintString, decodeBigintString, integerToken, encodeInstant, decodeInstant, encodeDate, decodeDate, timestamptz2, timestamp2, date2, time2, timetz2, interval2 };
@@ -1,35 +1,31 @@
1
1
  import {
2
2
  roleObject,
3
3
  grantObject,
4
- defaultPrivilegeObject
5
- } from "./qq3899ht.js";
4
+ defaultPrivilegeObject,
5
+ functionObject,
6
+ triggerObject,
7
+ normaliseViewQuery,
8
+ viewObject,
9
+ materializedViewObject,
10
+ materializedViewIndex
11
+ } from "./12z7aznj.js";
6
12
  import {
7
13
  columnPrivilege
8
- } from "./ttmg09vd.js";
14
+ } from "./dpc2r7rb.js";
9
15
  import {
10
16
  quoteIdent
11
- } from "./9s0ypp87.js";
17
+ } from "./sjk86yrx.js";
12
18
  import {
13
19
  policyObject
14
20
  } from "./bdk4sty6.js";
15
- import {
16
- functionObject,
17
- triggerObject
18
- } from "./y34a8714.js";
19
- import {
20
- normaliseViewQuery,
21
- viewObject,
22
- materializedViewObject,
23
- materializedViewIndex
24
- } from "./zy8r7qvz.js";
25
- import {
26
- extensionObject
27
- } from "./r3j8s5y0.js";
28
21
  import {
29
22
  catalog,
30
23
  enumType,
31
24
  domainType
32
25
  } from "./ywspezzx.js";
26
+ import {
27
+ extensionObject
28
+ } from "./r3j8s5y0.js";
33
29
  import {
34
30
  staticNamespace2,
35
31
  identityKey2,
@@ -1037,4 +1033,4 @@ function flag(row, key) {
1037
1033
  return value === true || value === "true" || value === "t";
1038
1034
  }
1039
1035
 
1040
- export { cellText, VIEW_DEPENDENCIES, viewDependencyEdges, PUBLIC, introspectSchema, FUNCTION_ARG_TYPES };
1036
+ export { cellText, VIEW_DEPENDENCIES, viewDependencyEdges, PUBLIC, introspectSchema, FUNCTION_ARG_TYPES, atomicBody };