litedbmodel 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +44 -24
- package/dist/decorators.js.map +1 -1
- package/dist/drivers/mysql.d.ts.map +1 -1
- package/dist/drivers/mysql.js +6 -0
- package/dist/drivers/mysql.js.map +1 -1
- package/dist/drivers/postgres.d.ts.map +1 -1
- package/dist/drivers/postgres.js +7 -0
- package/dist/drivers/postgres.js.map +1 -1
- package/dist/drivers/sqlite.d.ts +2 -0
- package/dist/drivers/sqlite.d.ts.map +1 -1
- package/dist/drivers/sqlite.js +37 -2
- package/dist/drivers/sqlite.js.map +1 -1
- package/dist/scp/authoring.d.ts +66 -3
- package/dist/scp/authoring.d.ts.map +1 -1
- package/dist/scp/authoring.js +194 -5
- package/dist/scp/authoring.js.map +1 -1
- package/dist/scp/catalog.d.ts +2 -1
- package/dist/scp/catalog.d.ts.map +1 -1
- package/dist/scp/catalog.js +12 -1
- package/dist/scp/catalog.js.map +1 -1
- package/dist/scp/codegen.d.ts +43 -31
- package/dist/scp/codegen.d.ts.map +1 -1
- package/dist/scp/codegen.js +279 -95
- package/dist/scp/codegen.js.map +1 -1
- package/dist/scp/coltype.d.ts +83 -0
- package/dist/scp/coltype.d.ts.map +1 -1
- package/dist/scp/coltype.js +220 -0
- package/dist/scp/coltype.js.map +1 -1
- package/dist/scp/guard.d.ts +1 -1
- package/dist/scp/guard.d.ts.map +1 -1
- package/dist/scp/guard.js +6 -0
- package/dist/scp/guard.js.map +1 -1
- package/dist/scp/index.cjs +7149 -9379
- package/dist/scp/index.d.ts +7 -6
- package/dist/scp/index.d.ts.map +1 -1
- package/dist/scp/index.js +21 -6
- package/dist/scp/index.js.map +1 -1
- package/dist/scp/index.mjs +729 -178
- package/dist/scp/makesql/authoring-compile.d.ts.map +1 -1
- package/dist/scp/makesql/authoring-compile.js +11 -0
- package/dist/scp/makesql/authoring-compile.js.map +1 -1
- package/dist/scp/makesql/index.d.ts +2 -3
- package/dist/scp/makesql/index.d.ts.map +1 -1
- package/dist/scp/makesql/index.js +6 -6
- package/dist/scp/makesql/index.js.map +1 -1
- package/dist/scp/makesql/json-batch.d.ts.map +1 -1
- package/dist/scp/makesql/json-batch.js +6 -1
- package/dist/scp/makesql/json-batch.js.map +1 -1
- package/dist/scp/makesql/outtype.d.ts +61 -6
- package/dist/scp/makesql/outtype.d.ts.map +1 -1
- package/dist/scp/makesql/outtype.js +164 -33
- package/dist/scp/makesql/outtype.js.map +1 -1
- package/dist/scp/makesql/pool-executor.d.ts +70 -0
- package/dist/scp/makesql/pool-executor.d.ts.map +1 -1
- package/dist/scp/makesql/pool-executor.js +73 -5
- package/dist/scp/makesql/pool-executor.js.map +1 -1
- package/dist/scp/makesql/static-bundle.d.ts +39 -30
- package/dist/scp/makesql/static-bundle.d.ts.map +1 -1
- package/dist/scp/makesql/static-bundle.js +269 -138
- package/dist/scp/makesql/static-bundle.js.map +1 -1
- package/dist/scp/makesql/writeouttype.d.ts +5 -6
- package/dist/scp/makesql/writeouttype.d.ts.map +1 -1
- package/dist/scp/makesql/writeouttype.js +5 -6
- package/dist/scp/makesql/writeouttype.js.map +1 -1
- package/dist/scp/relation.d.ts +15 -1
- package/dist/scp/relation.d.ts.map +1 -1
- package/dist/scp/relation.js +61 -2
- package/dist/scp/relation.js.map +1 -1
- package/dist/scp/runtime.d.ts +6 -5
- package/dist/scp/runtime.d.ts.map +1 -1
- package/dist/scp/runtime.js +27 -5
- package/dist/scp/runtime.js.map +1 -1
- package/docs/BENCHMARK.md +58 -56
- package/docs/benchmark-chart.svg +166 -166
- package/package.json +8 -2
- package/dist/scp/makesql/ir.d.ts +0 -42
- package/dist/scp/makesql/ir.d.ts.map +0 -1
- package/dist/scp/makesql/ir.js +0 -66
- package/dist/scp/makesql/ir.js.map +0 -1
package/dist/scp/makesql/ir.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* litedbmodel v2 SCP — build a bc `ComponentGraphIR` whose single body node is a
|
|
4
|
-
* `makeSQL` componentRef, so a query rides bc's `runBehavior` (composition / value-eval
|
|
5
|
-
* / plan / envelope come free). The `makeSQL` ports are bc Expression IR: `sql` and
|
|
6
|
-
* `skip` are simple literals/refs; `params` is an `{ arr: [...] }` of Expression IR
|
|
7
|
-
* nodes (each a bound-value literal, an input ref, or a nested-`makeSQL` `{ obj: … }`).
|
|
8
|
-
*
|
|
9
|
-
* The bundle is pure JSON (multi-language ready). The handler (see `handler.ts`)
|
|
10
|
-
* assembles + binds + executes. bc validates the envelope and evaluates the ports.
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.isMakeSQL = void 0;
|
|
14
|
-
exports.makeSqlComponentIR = makeSqlComponentIR;
|
|
15
|
-
exports.makeSqlInput = makeSqlInput;
|
|
16
|
-
const makesql_1 = require("./makesql");
|
|
17
|
-
Object.defineProperty(exports, "isMakeSQL", { enumerable: true, get: function () { return makesql_1.isMakeSQL; } });
|
|
18
|
-
/** Wrap a bound SQL value as a bc Expression IR literal node.
|
|
19
|
-
*
|
|
20
|
-
* bc's Expression IR represents ints as `{int:"…"}` and rejects bare `Date`/arrays.
|
|
21
|
-
* SQL bound values are opaque to bc, so we pass them as an inert `{lit}` marker that
|
|
22
|
-
* the handler unwraps — but since bc has no `lit` op, we instead carry the raw params
|
|
23
|
-
* OUT-OF-BAND: the IR references `input.params` by ref and the caller supplies the
|
|
24
|
-
* assembled params in the input scope. This keeps values byte-exact (no bc coercion).
|
|
25
|
-
*/
|
|
26
|
-
/**
|
|
27
|
-
* Build the single-`makeSQL` component IR + the input scope for a pre-assembled query.
|
|
28
|
-
*
|
|
29
|
-
* We keep SQL bound values OUT of bc's numeric/format coercion by binding them through
|
|
30
|
-
* the input scope: the `params` port is `{ ref: ["__sqlParams"] }` and the caller
|
|
31
|
-
* passes `{ __sqlParams: <the params array>, __sql: <text>, __skip: <bool> }` as input.
|
|
32
|
-
* bc evaluates the refs (returning the values verbatim), then hands them to the
|
|
33
|
-
* `makeSQL` handler, which assembles + binds + executes.
|
|
34
|
-
*/
|
|
35
|
-
function makeSqlComponentIR(entry = 'Query') {
|
|
36
|
-
const component = {
|
|
37
|
-
name: entry,
|
|
38
|
-
inputPorts: {
|
|
39
|
-
__sql: { type: 'string', required: true },
|
|
40
|
-
__sqlParams: { type: 'arr' },
|
|
41
|
-
__skip: { type: 'bool' },
|
|
42
|
-
},
|
|
43
|
-
body: [
|
|
44
|
-
{
|
|
45
|
-
id: 'q',
|
|
46
|
-
component: makesql_1.MAKESQL,
|
|
47
|
-
ports: {
|
|
48
|
-
sql: { ref: ['__sql'] },
|
|
49
|
-
params: { ref: ['__sqlParams'] },
|
|
50
|
-
skip: { ref: ['__skip'] },
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
output: { ref: ['q'] },
|
|
55
|
-
};
|
|
56
|
-
return { irVersion: 1, exprVersion: 2, components: [component] };
|
|
57
|
-
}
|
|
58
|
-
/** The input scope for {@link makeSqlComponentIR}, from a compiled `makeSQL` bundle. */
|
|
59
|
-
function makeSqlInput(node) {
|
|
60
|
-
return {
|
|
61
|
-
__sql: node.sql,
|
|
62
|
-
__sqlParams: node.params,
|
|
63
|
-
__skip: node.skip === true,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=ir.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/scp/makesql/ir.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAuBH,gDAsBC;AAGD,oCAMC;AAnDD,uCAA4E;AA4DnE,0FA5DsC,mBAAS,OA4DtC;AA1DlB;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,KAAK,GAAG,OAAO;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACzB;QACD,IAAI,EAAE;YACJ;gBACE,EAAE,EAAE,GAAG;gBACP,SAAS,EAAE,iBAAO;gBAClB,KAAK,EAAE;oBACL,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;oBACvB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE;oBAChC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;iBAC1B;aACF;SACF;QACD,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE;KACvB,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,wFAAwF;AACxF,SAAgB,YAAY,CAAC,IAAa;IACxC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG;QACf,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;KAC3B,CAAC;AACJ,CAAC"}
|