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.
- package/README.md +100 -1131
- package/dist/adapters/capabilities.d.ts +35 -0
- package/dist/adapters/failure.d.ts +13 -2
- package/dist/adapters/lazy-errors.d.ts +22 -0
- package/dist/adapters/pg/bun-sql.d.ts +53 -0
- package/dist/adapters/pg/bunsql-extra.d.ts +54 -3
- package/dist/adapters/pg/bunsql.d.ts +15 -2
- package/dist/adapters/pg/cursor.d.ts +17 -0
- package/dist/adapters/pg/neon-extra.d.ts +18 -0
- package/dist/adapters/pg/neon.d.ts +104 -0
- package/dist/adapters/pg/no-inflight-timeout.d.ts +11 -8
- package/dist/adapters/pg/nodepostgres-extra.d.ts +22 -1
- package/dist/adapters/pg/nodepostgres.d.ts +12 -0
- package/dist/adapters/pg/pglite-wire.d.ts +24 -0
- package/dist/adapters/pg/pglite.d.ts +10 -0
- package/dist/adapters/pg/postgres-extra.d.ts +27 -11
- package/dist/adapters/pg/reserved.d.ts +42 -0
- package/dist/adapters/pg/session.d.ts +0 -18
- package/dist/contracts/connection.d.ts +7 -6
- package/dist/contracts/error.d.ts +1 -1
- package/dist/dialects/pg/floor.d.ts +68 -0
- package/dist/dialects/pg/fn/index.d.ts +39 -1
- package/dist/dialects/pg/fn/index.js +118 -26
- package/dist/dialects/pg/index.d.ts +8 -1
- package/dist/dialects/pg/index.js +435 -170
- package/dist/dialects/pg/introspect.d.ts +11 -0
- package/dist/dialects/pg/keys.d.ts +11 -8
- package/dist/dialects/pg/model.d.ts +40 -0
- package/dist/dialects/pg/morph.d.ts +43 -0
- package/dist/dialects/pg/operator-fit.d.ts +2 -2
- package/dist/dialects/pg/operators.d.ts +14 -7
- package/dist/dialects/pg/ops/bucket.d.ts +65 -0
- package/dist/dialects/pg/ops/fragment.d.ts +119 -0
- package/dist/dialects/pg/ops/inc.d.ts +2 -2
- package/dist/dialects/pg/ops/lane.d.ts +49 -0
- package/dist/dialects/pg/ops/matches.d.ts +9 -12
- package/dist/dialects/pg/ops/relevance.d.ts +13 -0
- package/dist/dialects/pg/ops/search-query.d.ts +22 -0
- package/dist/dialects/pg/ops/window.d.ts +103 -0
- package/dist/dialects/pg/preset.d.ts +1 -1
- package/dist/dialects/pg/relations.d.ts +100 -3
- package/dist/dialects/pg/schema.d.ts +31 -3
- package/dist/dialects/pg/view/client.d.ts +14 -6
- package/dist/dialects/pg/view/index.d.ts +73 -1
- package/dist/dialects/pg/view/index.js +156 -5
- package/dist/dialects/pg/view/scratch.d.ts +8 -5
- package/dist/runtime/aggregate.d.ts +8 -2
- package/dist/runtime/bucket-group.d.ts +70 -0
- package/dist/runtime/conflict.d.ts +22 -4
- package/dist/runtime/include.d.ts +0 -8
- package/dist/runtime/inflight.d.ts +1 -1
- package/dist/runtime/otel.d.ts +105 -0
- package/dist/runtime/otel.js +97 -0
- package/dist/runtime/page.d.ts +4 -1
- package/dist/runtime/pg/bun.js +12 -6
- package/dist/runtime/pg/neon.d.ts +38 -0
- package/dist/runtime/pg/neon.js +64 -0
- package/dist/runtime/pg/pg.js +5 -5
- package/dist/runtime/pg/pglite.d.ts +1 -0
- package/dist/runtime/pg/pglite.js +9 -9
- package/dist/runtime/pg/postgresjs.js +5 -5
- package/dist/runtime/plan.d.ts +95 -5
- package/dist/runtime/read-stream.d.ts +13 -16
- package/dist/runtime/result-name.d.ts +17 -0
- package/dist/runtime/server-check.d.ts +3 -3
- package/dist/runtime/sort-bind.d.ts +21 -0
- package/dist/runtime/sort.d.ts +56 -0
- package/dist/runtime/sql-fragment.d.ts +43 -0
- package/dist/runtime/sync.d.ts +70 -0
- package/dist/runtime/tenancy/index.js +15 -13
- package/dist/runtime/text-search.d.ts +20 -0
- package/dist/runtime/topology.d.ts +1 -1
- package/dist/runtime/traits/index.d.ts +80 -0
- package/dist/runtime/traits/index.js +184 -21
- package/dist/runtime/tree.d.ts +38 -0
- package/dist/runtime/types.d.ts +232 -22
- package/dist/runtime/validate/index.js +4 -4
- package/dist/runtime/version.d.ts +39 -0
- package/dist/runtime/window.d.ts +21 -0
- package/dist/runtime/write.d.ts +54 -2
- package/dist/shared/{929h19xp.js → 0wrea3jq.js} +141 -13
- package/dist/shared/{qq3899ht.js → 12z7aznj.js} +243 -14
- package/dist/shared/{1z04fa85.js → 14x60fbf.js} +12 -57
- package/dist/shared/{ek2wt2dz.js → 16kvjebh.js} +4 -4
- package/dist/shared/{wynzeggs.js → 195pzzzz.js} +8 -8
- package/dist/shared/1d9q9cv2.js +312 -0
- package/dist/shared/2c13q96h.js +18 -0
- package/dist/shared/{b4v57v3x.js → 2d3xq4ps.js} +2 -2
- package/dist/shared/{1f0xa3cb.js → 3449rcae.js} +5 -5
- package/dist/shared/{wkme6tep.js → 35q0n9tz.js} +8 -16
- package/dist/shared/3bb7wsqt.js +99 -0
- package/dist/shared/3t6kw83m.js +249 -0
- package/dist/shared/{5j36z8dn.js → 4m6hskg8.js} +39 -70
- package/dist/shared/{n076ydsc.js → 4vbf83xx.js} +69 -28
- package/dist/shared/{vmfkhszw.js → 63f4ksbz.js} +33 -26
- package/dist/shared/{c58secgj.js → 63qtkrca.js} +38 -4
- package/dist/shared/6m78c8ss.js +6 -0
- package/dist/shared/{x3jc53kg.js → 760ppr76.js} +15 -7
- package/dist/shared/7ghwamrf.js +40 -0
- package/dist/shared/7kms6fvj.js +20 -0
- package/dist/shared/7n7ddwt4.js +6 -0
- package/dist/shared/9a4ae4p8.js +31 -0
- package/dist/shared/{hazqqecq.js → 9dr2qnx7.js} +63 -34
- package/dist/shared/{h15jx9bc.js → 9dvh1dr6.js} +1 -1
- package/dist/shared/a62rb2da.js +13 -0
- package/dist/shared/{cgbamx3e.js → ae4j5f42.js} +23 -4
- package/dist/shared/agsfb86s.js +233 -0
- package/dist/shared/{8x72s86k.js → b6d6p0zc.js} +13 -7
- package/dist/shared/{ag4c7516.js → b76b8d95.js} +2 -2
- package/dist/shared/{j60w0dvr.js → bah9nbg3.js} +58 -38
- package/dist/shared/bnby0esn.js +10 -0
- package/dist/shared/bsek72fg.js +225 -0
- package/dist/shared/{2cg3wnxc.js → bxas03mq.js} +608 -141
- package/dist/shared/{31vm914h.js → cm3w0ywp.js} +15 -16
- package/dist/shared/{gwn6v667.js → cnkky55j.js} +25 -14
- package/dist/shared/{dk8v79p3.js → d5nmj7vv.js} +1 -1
- package/dist/shared/{ttmg09vd.js → dpc2r7rb.js} +8 -8
- package/dist/shared/dzj09cye.js +10 -0
- package/dist/shared/{sbdme3vy.js → e8zyaqvj.js} +60 -10
- package/dist/shared/{2jd1sn0e.js → ecn8mfdq.js} +6 -6
- package/dist/shared/exn3sd90.js +359 -0
- package/dist/shared/{t3g0k88x.js → f4jy1j7x.js} +39 -22
- package/dist/shared/{y2t3jktd.js → fjpnhqan.js} +20 -13
- package/dist/shared/g5yc06ka.js +272 -0
- package/dist/shared/ga9j92qj.js +25 -0
- package/dist/shared/{3fqwmr09.js → hfqmpasr.js} +6 -6
- package/dist/shared/{wt5rzv1h.js → hm5f8jby.js} +7 -7
- package/dist/shared/{ys0xzyaj.js → hqpxf4a4.js} +224 -19
- package/dist/shared/jebgrkeq.js +179 -0
- package/dist/shared/{09p049xa.js → jp36k7dp.js} +44 -16
- package/dist/shared/jx2m62cs.js +96 -0
- package/dist/shared/{r11n8grd.js → k86n8vq3.js} +7 -4
- package/dist/shared/{2z7wv5tj.js → kgwp4jdd.js} +56 -35
- package/dist/shared/{knmes2kh.js → kj9d8maq.js} +1 -1
- package/dist/shared/{g90m9b0g.js → m4xff2a6.js} +6 -5
- package/dist/shared/{r6nwkxnt.js → m7n9h2a5.js} +4 -4
- package/dist/shared/mfedzr74.js +145 -0
- package/dist/shared/{f0f1n281.js → mkrn359n.js} +60 -11
- package/dist/shared/{p248q79y.js → mnvjvqyp.js} +10 -10
- package/dist/shared/{672t5vym.js → mss6ctgv.js} +2 -2
- package/dist/shared/{4az561fn.js → mtw6jz76.js} +8 -23
- package/dist/shared/n05z9nwz.js +313 -0
- package/dist/shared/{pjr6xrm5.js → n0jmpgj1.js} +20 -17
- package/dist/shared/{p6bjzq9q.js → n41w4fbz.js} +14 -6
- package/dist/shared/{b3awxn7h.js → n454kcnw.js} +1 -1
- package/dist/shared/n7kg8mmx.js +61 -0
- package/dist/shared/nbw1z4yd.js +18 -0
- package/dist/shared/needfe47.js +66 -0
- package/dist/shared/{1nw1f3vs.js → njga14v4.js} +9 -9
- package/dist/shared/{5yv4k6a6.js → nmnsgj7x.js} +145 -3
- package/dist/shared/{vjpnzwjz.js → p3xbdcvt.js} +14 -18
- package/dist/shared/p5nh3r8q.js +622 -0
- package/dist/shared/{nx9hh281.js → pan0370z.js} +13 -12
- package/dist/shared/q0cqt2sp.js +12 -0
- package/dist/shared/qd9hhd8f.js +37 -0
- package/dist/shared/{mb2ycs1p.js → qfw14tna.js} +15 -15
- package/dist/shared/{9s0ypp87.js → sjk86yrx.js} +1 -1
- package/dist/shared/th3be82n.js +208 -0
- package/dist/shared/{ed0b8k4s.js → typ3vy7t.js} +1 -1
- package/dist/shared/{5d8t84hg.js → v1wad97q.js} +14 -14
- package/dist/shared/{x72jb7ad.js → v8g1vgv8.js} +1 -1
- package/dist/shared/{9628a9xt.js → vk7rag46.js} +1 -1
- package/dist/shared/{ze4hxsmy.js → w9ejzaqf.js} +1 -1
- package/dist/shared/{q3j1tq7a.js → wcrheftc.js} +148 -23
- package/dist/shared/wvdjznah.js +213 -0
- package/dist/shared/wz2a78mp.js +8 -0
- package/dist/shared/xfhe73sb.js +436 -0
- package/dist/shared/{r1fdd0f6.js → z581d7ny.js} +5 -2
- package/dist/shared/{8etn7d8w.js → z7s6fpxv.js} +1 -1
- package/dist/shared/{32cnm7kn.js → zbqbmmrp.js} +76 -40
- package/dist/shared/{n7mcc1gk.js → zchaghkf.js} +4 -3
- package/dist/shared/{xq0mvhts.js → zgex00fd.js} +6 -6
- package/dist/shared/{nsva2a6b.js → znm0bpp5.js} +3 -0
- package/dist/shared/zq1he88x.js +155 -0
- package/dist/tooling/cli.js +26 -13
- package/dist/tooling/driver-run.js +4971 -0
- package/dist/tooling/driver-test.d.ts +36 -0
- package/dist/tooling/migrate/commands.d.ts +2 -2
- package/dist/tooling/migrate/engine.d.ts +3 -2
- package/dist/tooling/migrate/index.js +9 -9
- package/dist/tooling/migrate/project.d.ts +3 -0
- package/dist/tooling/shared/03k6res6.js +210 -0
- package/dist/tooling/shared/08kemxjd.js +10 -0
- package/dist/tooling/shared/2revefqt.js +209 -0
- package/dist/tooling/shared/2wtvc7rw.js +1425 -0
- package/dist/tooling/shared/345tbc2k.js +16 -0
- package/dist/tooling/shared/3m1hkg7z.js +344 -0
- package/dist/tooling/shared/3rrw5w8f.js +81 -0
- package/dist/tooling/shared/3tq8pnb8.js +131 -0
- package/dist/tooling/shared/417zdsk7.js +194 -0
- package/dist/tooling/shared/4d2w25vw.js +40 -0
- package/dist/tooling/shared/54tqkxja.js +51 -0
- package/dist/tooling/shared/5bvw2nev.js +12 -0
- package/dist/tooling/shared/6nyfyw70.js +231 -0
- package/dist/tooling/shared/72fyg4zv.js +160 -0
- package/dist/tooling/shared/733a1tq3.js +38 -0
- package/dist/tooling/shared/7ae7rjmn.js +20 -0
- package/dist/tooling/shared/7kms6fvj.js +20 -0
- package/dist/tooling/shared/8sqrsw3s.js +49 -0
- package/dist/tooling/shared/96ps4g1z.js +32 -0
- package/dist/tooling/shared/9kazs5p6.js +195 -0
- package/dist/tooling/shared/9xzm7hjg.js +38 -0
- package/dist/tooling/shared/a6pp9d12.js +49 -0
- package/dist/tooling/shared/a7q7t4n3.js +22 -0
- package/dist/tooling/shared/aftb2mwr.js +18 -0
- package/dist/tooling/shared/bz2dqhab.js +311 -0
- package/dist/tooling/shared/cmptmb4f.js +12 -0
- package/dist/tooling/shared/ddjtfgnx.js +177 -0
- package/dist/tooling/shared/djydjpqt.js +261 -0
- package/dist/tooling/shared/dw08f3m8.js +9 -0
- package/dist/tooling/shared/dy672fz6.js +16 -0
- package/dist/tooling/shared/dzx85q70.js +66 -0
- package/dist/tooling/shared/ec71zqgt.js +270 -0
- package/dist/{shared/d5azex6s.js → tooling/shared/ep8zh3bk.js} +1 -1
- package/dist/tooling/shared/f9mphxej.js +3789 -0
- package/dist/tooling/shared/fb9k2qwd.js +89 -0
- package/dist/tooling/shared/g9ad4n80.js +211 -0
- package/dist/tooling/shared/gfvtj6d0.js +94 -0
- package/dist/tooling/shared/gmcf9cxf.js +294 -0
- package/dist/tooling/shared/htnaj77v.js +17 -0
- package/dist/tooling/shared/j9t5s12a.js +7 -0
- package/dist/tooling/shared/jne7b93p.js +42 -0
- package/dist/tooling/shared/ma2340rx.js +118 -0
- package/dist/tooling/shared/mtrqn2hn.js +505 -0
- package/dist/tooling/shared/n4jqhpqz.js +27 -0
- package/dist/tooling/shared/nf7jmhfa.js +20 -0
- package/dist/tooling/shared/p7f08ktn.js +332 -0
- package/dist/tooling/shared/ppnnnvj8.js +13 -0
- package/dist/tooling/shared/pqy21k24.js +312 -0
- package/dist/tooling/shared/pw8fgahx.js +69 -0
- package/dist/tooling/shared/pwsytxm5.js +17 -0
- package/dist/tooling/shared/rf83gr2d.js +94 -0
- package/dist/tooling/shared/rq5kk8j6.js +401 -0
- package/dist/tooling/shared/rs1jb051.js +12 -0
- package/dist/tooling/shared/smn6kz1p.js +157 -0
- package/dist/tooling/shared/spk1jg3r.js +1696 -0
- package/dist/tooling/shared/tn8gay14.js +143 -0
- package/dist/tooling/shared/vraj6d74.js +42 -0
- package/dist/tooling/shared/vs0t6qt8.js +64 -0
- package/dist/tooling/shared/vx86qjv8.js +150 -0
- package/dist/tooling/shared/w7qe8sj1.js +140 -0
- package/dist/tooling/shared/wt7j7nf6.js +15 -0
- package/dist/tooling/shared/wwnekq5n.js +6 -0
- package/dist/tooling/shared/xhrnjch9.js +185 -0
- package/dist/tooling/shared/xjs6zqtc.js +190 -0
- package/dist/tooling/shared/y031jct9.js +16 -0
- package/dist/tooling/shared/y5656f0e.js +233 -0
- package/dist/tooling/shared/yfr8hzhm.js +604 -0
- package/dist/tooling/shared/yk9mp7vb.js +250 -0
- package/dist/tooling/shared/yw30vnq2.js +139 -0
- package/dist/tooling/shared/z8d7ptht.js +618 -0
- package/dist/tooling/shared/zhwnfyb2.js +9 -0
- package/dist/tooling/shared/zvnhh1n0.js +198 -0
- package/dist/tooling/testing/index.js +3 -3
- package/package.json +17 -3
- package/dist/shared/3qnhc7w5.js +0 -38
- package/dist/shared/7m88x3e9.js +0 -45
- package/dist/shared/8dqhth8c.js +0 -12
- package/dist/shared/j3rkk835.js +0 -99
- package/dist/shared/k68eedmy.js +0 -85
- package/dist/shared/venqrjna.js +0 -216
- package/dist/shared/wxr8cwns.js +0 -6
- package/dist/shared/y34a8714.js +0 -150
- package/dist/shared/zm0mafk4.js +0 -92
- package/dist/shared/zy8r7qvz.js +0 -116
- package/dist/shared/{ywr8hmey.js → 606g0nbf.js} +3 -3
- package/dist/shared/{rpycarcr.js → gcefca6p.js} +4 -4
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import"./
|
|
1
|
+
import"./12z7aznj.js";
|
|
2
2
|
import"./n442h54c.js";
|
|
3
|
-
import"./
|
|
3
|
+
import"./35q0n9tz.js";
|
|
4
4
|
import {
|
|
5
5
|
projectPath,
|
|
6
6
|
loadConfig
|
|
7
|
-
} from "./
|
|
7
|
+
} from "./f4jy1j7x.js";
|
|
8
8
|
import {
|
|
9
9
|
listTargets
|
|
10
|
-
} from "./
|
|
11
|
-
import"./
|
|
10
|
+
} from "./dpc2r7rb.js";
|
|
11
|
+
import"./sjk86yrx.js";
|
|
12
12
|
|
|
13
13
|
// src/tooling/migrate/dev.ts
|
|
14
14
|
import { mkdirSync } from "node:fs";
|
|
@@ -20,7 +20,7 @@ async function devProject(cwd) {
|
|
|
20
20
|
`;
|
|
21
21
|
const directory = projectPath(cwd, config.out ?? ".okm", "dev-db");
|
|
22
22
|
mkdirSync(directory, { recursive: true });
|
|
23
|
-
const { open } = await import("./
|
|
23
|
+
const { open } = await import("./m4xff2a6.js");
|
|
24
24
|
const pool = await open({ dataDir: directory });
|
|
25
25
|
try {
|
|
26
26
|
await pool.execute("select 1");
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import {
|
|
2
|
+
searchValue
|
|
3
|
+
} from "./dzj09cye.js";
|
|
4
|
+
import {
|
|
5
|
+
assertNoControl
|
|
6
|
+
} from "./zchaghkf.js";
|
|
7
|
+
import {
|
|
8
|
+
refuseHidden,
|
|
9
|
+
indexes,
|
|
10
|
+
list,
|
|
11
|
+
isRecord,
|
|
12
|
+
fail2
|
|
13
|
+
} from "./kgwp4jdd.js";
|
|
14
|
+
import {
|
|
15
|
+
isOperator,
|
|
16
|
+
operatorName,
|
|
17
|
+
operatorValue,
|
|
18
|
+
tag
|
|
19
|
+
} from "./cn0n68ft.js";
|
|
20
|
+
import {
|
|
21
|
+
throwNamed2
|
|
22
|
+
} from "./52szzakm.js";
|
|
23
|
+
|
|
24
|
+
// src/runtime/text-search.ts
|
|
25
|
+
var MATCHES = ["natural", "all-words", "phrase", "advanced"];
|
|
26
|
+
var SEARCH_KEYS = ["for", "in", "match", "language"];
|
|
27
|
+
function applyTextSearch(schema, call) {
|
|
28
|
+
const table = indexes(schema).get(call.table);
|
|
29
|
+
if (table === undefined)
|
|
30
|
+
fail2("OKM1120", `Table ${call.table} is not in the schema.`);
|
|
31
|
+
const spec = parseSearch(table, call.search);
|
|
32
|
+
const options = { match: spec.match, language: spec.language };
|
|
33
|
+
const where = withMatch(call.where, spec.column.field, spec.text, options);
|
|
34
|
+
const orderBy = call.op === "find" && call.orderBy === undefined ? ranked(table, spec.column.field, spec.text, options) : call.orderBy;
|
|
35
|
+
const { search: dropped, ...rest } = call;
|
|
36
|
+
return {
|
|
37
|
+
...rest,
|
|
38
|
+
where,
|
|
39
|
+
...orderBy !== undefined ? { orderBy } : {}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function parseSearch(table, search) {
|
|
43
|
+
if (typeof search === "string") {
|
|
44
|
+
return { text: textOf(search), column: columnFor(table, undefined), ...natural() };
|
|
45
|
+
}
|
|
46
|
+
if (!isRecord(search)) {
|
|
47
|
+
fail2("OKM1120", "search needs the text to look for, or { for, in, match, language }.", "Pass a string, or search: { for, in }.");
|
|
48
|
+
}
|
|
49
|
+
for (const key of Object.keys(search)) {
|
|
50
|
+
if (SEARCH_KEYS.includes(key))
|
|
51
|
+
continue;
|
|
52
|
+
fail2("OKM1120", `search does not take ${key}. Accepted: for, in, match, language.`, "Pass for, in, match, and language.");
|
|
53
|
+
}
|
|
54
|
+
if (typeof search.for !== "string") {
|
|
55
|
+
fail2("OKM1120", "search.for needs text to look for.", "Set for to the text you want to find.");
|
|
56
|
+
}
|
|
57
|
+
const named = search.in;
|
|
58
|
+
if (named !== undefined && typeof named !== "string") {
|
|
59
|
+
fail2("OKM1120", "search.in names the column to search.", "Set in to a column name.");
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
text: textOf(search.for),
|
|
63
|
+
column: columnFor(table, named),
|
|
64
|
+
match: matchOf(search.match),
|
|
65
|
+
language: languageOf(search.language)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function natural() {
|
|
69
|
+
return { match: "natural", language: undefined };
|
|
70
|
+
}
|
|
71
|
+
function textOf(text) {
|
|
72
|
+
if (text.length === 0) {
|
|
73
|
+
fail2("OKM1120", "search needs text to look for.", "Pass the words you want to find.");
|
|
74
|
+
}
|
|
75
|
+
assertNoControl(text, "search");
|
|
76
|
+
return text;
|
|
77
|
+
}
|
|
78
|
+
function matchOf(value) {
|
|
79
|
+
if (value === undefined)
|
|
80
|
+
return "natural";
|
|
81
|
+
if (typeof value === "string" && isMatch(value))
|
|
82
|
+
return value;
|
|
83
|
+
fail2("OKM1120", "search.match must be natural, all-words, phrase, or advanced.", "Use natural, all-words, phrase, or advanced.");
|
|
84
|
+
}
|
|
85
|
+
function isMatch(value) {
|
|
86
|
+
return MATCHES.includes(value);
|
|
87
|
+
}
|
|
88
|
+
function languageOf(value) {
|
|
89
|
+
if (value === undefined)
|
|
90
|
+
return;
|
|
91
|
+
if (typeof value !== "string") {
|
|
92
|
+
fail2("OKM1120", "search.language must be a text search language such as english.", "Pass a language name such as english, or leave it out.");
|
|
93
|
+
}
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
function columnFor(table, name) {
|
|
97
|
+
const columns = searchable(table);
|
|
98
|
+
const names = columns.map((column) => column.field);
|
|
99
|
+
if (name === undefined) {
|
|
100
|
+
const only = columns[0];
|
|
101
|
+
if (columns.length === 1 && only !== undefined)
|
|
102
|
+
return only;
|
|
103
|
+
if (columns.length === 0) {
|
|
104
|
+
fail2("OKM1120", `Table ${table.model.name} has no column you can search.`, "Add a column built for search.");
|
|
105
|
+
}
|
|
106
|
+
fail2("OKM1120", `Table ${table.model.name} has more than one column you can search. Name one with search: { for, in }. Columns: ${list(names)}.`, `Set in to one of: ${list(names)}.`);
|
|
107
|
+
}
|
|
108
|
+
const column = table.columns.get(name);
|
|
109
|
+
if (column === undefined) {
|
|
110
|
+
throwNamed2("OKM1120", name, names, `Column ${name} is not on ${table.model.name}. Columns you can search: ${list(names)}.`);
|
|
111
|
+
}
|
|
112
|
+
if (column.dataType !== "tsvector") {
|
|
113
|
+
fail2("OKM1120", `Column ${name} cannot be searched. Columns you can search: ${list(names)}.`, names.length === 0 ? "This table has no column you can search." : `Search one of: ${list(names)}.`);
|
|
114
|
+
}
|
|
115
|
+
if (column.hidden === true)
|
|
116
|
+
refuseHidden(column);
|
|
117
|
+
return column;
|
|
118
|
+
}
|
|
119
|
+
function searchable(table) {
|
|
120
|
+
const found = [];
|
|
121
|
+
for (const column of table.model.columns) {
|
|
122
|
+
if (column.dataType === "tsvector" && column.hidden !== true)
|
|
123
|
+
found.push(column);
|
|
124
|
+
}
|
|
125
|
+
return found;
|
|
126
|
+
}
|
|
127
|
+
function withMatch(where, field, text, options) {
|
|
128
|
+
const filter = { [field]: tag("matches", searchValue(text, passed(options))) };
|
|
129
|
+
if (where === undefined)
|
|
130
|
+
return filter;
|
|
131
|
+
if (isOperator(where) && operatorName(where) === "and") {
|
|
132
|
+
const branches = operatorValue(where);
|
|
133
|
+
if (Array.isArray(branches))
|
|
134
|
+
return tag("and", [...branches, filter]);
|
|
135
|
+
}
|
|
136
|
+
return tag("and", [where, filter]);
|
|
137
|
+
}
|
|
138
|
+
function ranked(table, field, text, options) {
|
|
139
|
+
const order = {
|
|
140
|
+
[field]: tag("relevance", searchValue(text, passed(options)))
|
|
141
|
+
};
|
|
142
|
+
for (const key of table.model.primary) {
|
|
143
|
+
if (!Object.hasOwn(order, key))
|
|
144
|
+
order[key] = "asc";
|
|
145
|
+
}
|
|
146
|
+
return order;
|
|
147
|
+
}
|
|
148
|
+
function passed(options) {
|
|
149
|
+
if (options.language === undefined)
|
|
150
|
+
return { match: options.match };
|
|
151
|
+
return { match: options.match, language: options.language };
|
|
152
|
+
}
|
|
153
|
+
export {
|
|
154
|
+
applyTextSearch
|
|
155
|
+
};
|
package/dist/tooling/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import"../shared/
|
|
1
|
+
import"../shared/12z7aznj.js";
|
|
2
2
|
import"../shared/n442h54c.js";
|
|
3
|
-
import"../shared/
|
|
3
|
+
import"../shared/35q0n9tz.js";
|
|
4
4
|
import {
|
|
5
5
|
formatFindings,
|
|
6
6
|
hasError,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
generateProject,
|
|
10
10
|
planProject,
|
|
11
11
|
checkProject
|
|
12
|
-
} from "../shared/
|
|
12
|
+
} from "../shared/f4jy1j7x.js";
|
|
13
13
|
import {
|
|
14
14
|
sessionFailure
|
|
15
|
-
} from "../shared/
|
|
16
|
-
import"../shared/
|
|
15
|
+
} from "../shared/dpc2r7rb.js";
|
|
16
|
+
import"../shared/sjk86yrx.js";
|
|
17
17
|
import {
|
|
18
18
|
OkmError2
|
|
19
19
|
} from "../shared/52szzakm.js";
|
|
@@ -73,12 +73,12 @@ async function run(argv, io) {
|
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
if (command === "dev") {
|
|
76
|
-
const { devProject } = await import("../shared/
|
|
76
|
+
const { devProject } = await import("../shared/zgex00fd.js");
|
|
77
77
|
stdout(await devProject(cwd));
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
if (command === "push") {
|
|
81
|
-
const { pushProject } = await import("../shared/
|
|
81
|
+
const { pushProject } = await import("../shared/njga14v4.js");
|
|
82
82
|
stdout(await pushProject(cwd, invoke(splitFlags(rest))));
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
@@ -97,17 +97,17 @@ async function run(argv, io) {
|
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
99
|
if (sub === "apply") {
|
|
100
|
-
const { applyProject } = await import("../shared/
|
|
100
|
+
const { applyProject } = await import("../shared/njga14v4.js");
|
|
101
101
|
stdout(await applyProject(cwd, invoke(parsed), stdout));
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
104
|
if (sub === "status") {
|
|
105
|
-
const { statusProject } = await import("../shared/
|
|
105
|
+
const { statusProject } = await import("../shared/195pzzzz.js");
|
|
106
106
|
stdout(await statusProject(cwd, invoke(parsed)));
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
109
|
if (sub === "check") {
|
|
110
|
-
const { checkMigrations } = await import("../shared/
|
|
110
|
+
const { checkMigrations } = await import("../shared/jp36k7dp.js");
|
|
111
111
|
const provision = parsed.flags.includes("--provision") || rest.slice(1).includes("--provision");
|
|
112
112
|
stdout(await checkMigrations(cwd, invoke(parsed), { provision }));
|
|
113
113
|
return;
|
|
@@ -120,16 +120,28 @@ async function run(argv, io) {
|
|
|
120
120
|
fix: { summary: "Pass okm seed <file>." }
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
const { seedProject } = await import("../shared/
|
|
123
|
+
const { seedProject } = await import("../shared/hfqmpasr.js");
|
|
124
124
|
stdout(await seedProject(cwd, parsed.name, invoke(parsed)));
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
if (command === "doctor") {
|
|
128
128
|
const parsed = splitFlags(rest);
|
|
129
|
-
const { doctorProject } = await import("../shared/
|
|
129
|
+
const { doctorProject } = await import("../shared/hm5f8jby.js");
|
|
130
130
|
stdout(await doctorProject(cwd, parsed.name, invoke(parsed)));
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
|
+
if (command === "driver") {
|
|
134
|
+
const sub = rest[0];
|
|
135
|
+
if (sub !== "test") {
|
|
136
|
+
const message = sub === undefined ? "Unknown command driver." : `Unknown command driver ${sub}.`;
|
|
137
|
+
throw new OkmError2("invalid", message, {
|
|
138
|
+
fix: { summary: "Use okm driver test <driver>." }
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const { driverTest } = await import("../shared/n7kg8mmx.js");
|
|
142
|
+
await driverTest(rest.slice(1), stdout);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
133
145
|
if (command === "ext") {
|
|
134
146
|
const sub = rest[0];
|
|
135
147
|
if (sub === "test" || sub === "scaffold") {
|
|
@@ -138,7 +150,7 @@ async function run(argv, io) {
|
|
|
138
150
|
});
|
|
139
151
|
}
|
|
140
152
|
if (sub === "list" || sub === "check") {
|
|
141
|
-
const { extProject } = await import("../shared/
|
|
153
|
+
const { extProject } = await import("../shared/n41w4fbz.js");
|
|
142
154
|
stdout(await extProject(cwd, sub, invoke(splitFlags(rest.slice(1)))));
|
|
143
155
|
return;
|
|
144
156
|
}
|
|
@@ -231,6 +243,7 @@ var COMMANDS = [
|
|
|
231
243
|
["check", "Lint the schema and compare it with one target."],
|
|
232
244
|
["dev", "Watch the schema and reload."],
|
|
233
245
|
["doctor [code]", "Print a target report, or one error code."],
|
|
246
|
+
["driver test <driver>", "Run conformance against one driver."],
|
|
234
247
|
["ext list", "List extensions the server can install."],
|
|
235
248
|
["ext check", "Compare declared extensions with the server."],
|
|
236
249
|
["generate [name]", "Write the next migration."],
|