@aotter/mantle-runtime 0.0.11-alpha.52 → 0.0.11-alpha.53
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/domain/service/ViewSqlCompiler.d.ts.map +1 -1
- package/dist/domain/service/ViewSqlCompiler.js +11 -2
- package/dist/domain/service/ViewSqlCompiler.js.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js +27 -4
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSqlCompiler.d.ts","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAoCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,kBAAuB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"ViewSqlCompiler.d.ts","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAoCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,kBAAuB,GAAG,YAAY,CAuB9F"}
|
|
@@ -39,7 +39,12 @@ export function compileView(view, options = {}) {
|
|
|
39
39
|
const orderBy = buildOrderBy(view.spec.orderBy);
|
|
40
40
|
const effectiveShow = clampShow(options.show, view.spec.limit);
|
|
41
41
|
const effectivePage = clampPage(options.page);
|
|
42
|
-
|
|
42
|
+
// Cap the offset so a huge `?page=` can't render in exponential
|
|
43
|
+
// notation (`5e+21`) or exceed SQLite's INT64 range — either makes
|
|
44
|
+
// D1 reject the literal and surfaces as a 500 instead of an empty
|
|
45
|
+
// page. MAX_SAFE_INTEGER (~9e15) stringifies as plain digits and is
|
|
46
|
+
// well under INT64 max; any page past the data just returns no rows.
|
|
47
|
+
const offset = Math.min((effectivePage - 1) * effectiveShow, Number.MAX_SAFE_INTEGER);
|
|
43
48
|
const sql = `SELECT ${selectExpr} FROM entries ${where}${orderBy} LIMIT ${effectiveShow} OFFSET ${offset}`;
|
|
44
49
|
return { sql, params: sqlParams, effectivePage, effectiveShow };
|
|
45
50
|
}
|
|
@@ -120,7 +125,11 @@ function buildOrderBy(orderBy) {
|
|
|
120
125
|
if (!orderBy || orderBy.length === 0)
|
|
121
126
|
return "";
|
|
122
127
|
const parts = orderBy.map((o) => {
|
|
123
|
-
|
|
128
|
+
// Closed-set map, never interpolate the raw value: `direction` is
|
|
129
|
+
// only a compile-time "asc"|"desc" type, but manifests are parsed
|
|
130
|
+
// from YAML, so an out-of-enum string (e.g. `DESC LIMIT 0 --`)
|
|
131
|
+
// could otherwise reach the SQL string verbatim.
|
|
132
|
+
const dir = o.direction === "desc" ? "DESC" : "ASC";
|
|
124
133
|
return `${fieldRefExpr(o.field)} ${dir}`;
|
|
125
134
|
});
|
|
126
135
|
return ` ORDER BY ${parts.join(", ")}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSqlCompiler.js","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,UAAU,EACV,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA+BvD,iEAAiE;AACjE,sEAAsE;AACtE,qEAAqE;AACrE,wDAAwD;AACxD,MAAM,eAAe,GAAqC;IACxD,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;CACtB,CAAC;AACF,MAAM,WAAW,GACf,eAAe,CAAC;AAClB,KAAK,WAAW,CAAC;AAEjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;KACvD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC;KACnE,IAAI,CAAC,IAAI,CAAC,CAAC;AAQd,MAAM,iBAAiB,GAAiD;IACtE,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAkB,EAAE,UAA8B,EAAE;IAC9E,MAAM,SAAS,GAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,UAAU,GAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewSqlCompiler.js","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeBuiltinUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeBuiltinUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeBuiltinUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeBuiltinUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAMtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAJX,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAClD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;YA4D5C,QAAQ;YA2BR,QAAQ;YAuDR,QAAQ;YAcR,QAAQ;YAcR,SAAS;CA6CxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { canTransition, DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
2
|
-
import { projectAndStamp } from "../../domain/service/BuiltinProjector.js";
|
|
2
|
+
import { projectAndStamp, projectUpdateAndStamp, } from "../../domain/service/BuiltinProjector.js";
|
|
3
3
|
import { assertEntryWritable } from "../../domain/service/io/EntryWriteGuard.js";
|
|
4
4
|
/**
|
|
5
5
|
* `InvokeBuiltinUseCase` — executes the `handler.kind: builtin` op
|
|
@@ -107,11 +107,34 @@ export class InvokeBuiltinUseCase {
|
|
|
107
107
|
originalInput: input,
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
|
-
async opUpdate(schema, input, ctx, now) {
|
|
110
|
+
async opUpdate(schema, input, ctx, now, preloaded) {
|
|
111
111
|
const opPath = `usecase/InvokeBuiltin/${schema.metadata.name}/update`;
|
|
112
112
|
const id = requireField(input, "id", "string");
|
|
113
113
|
const expectedVersion = requireField(input, "expectedVersion", "number");
|
|
114
|
-
|
|
114
|
+
// Read the existing row and PATCH it. The create projector
|
|
115
|
+
// (`projectAndStamp`) would drop every Schema field the caller
|
|
116
|
+
// omitted and re-stamp `x-mantle-bind` fields (author → current
|
|
117
|
+
// caller, `now` → this edit) — silent data loss. Mirror
|
|
118
|
+
// UpdateDraftUseCase: merge via `projectUpdateAndStamp` so omitted
|
|
119
|
+
// fields and server-stamped values (author, created-at) survive.
|
|
120
|
+
const existing = preloaded ?? (await this.entries.get(id));
|
|
121
|
+
if (!existing) {
|
|
122
|
+
throw new DiagnosticError(runtimeDiagnostic({
|
|
123
|
+
code: "NOT_FOUND",
|
|
124
|
+
severity: "error",
|
|
125
|
+
path: `${opPath}/${id}`,
|
|
126
|
+
value: id,
|
|
127
|
+
expected: "id of an existing entry",
|
|
128
|
+
message: `Entry not found: ${id}.`,
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
const data = projectUpdateAndStamp({
|
|
132
|
+
schema,
|
|
133
|
+
existing: existing.data,
|
|
134
|
+
patch: input,
|
|
135
|
+
ctx,
|
|
136
|
+
clockNow: now,
|
|
137
|
+
});
|
|
115
138
|
await assertEntryWritable({
|
|
116
139
|
opPath,
|
|
117
140
|
entries: this.entries,
|
|
@@ -135,7 +158,7 @@ export class InvokeBuiltinUseCase {
|
|
|
135
158
|
if (id) {
|
|
136
159
|
const existing = await this.entries.get(id);
|
|
137
160
|
if (existing)
|
|
138
|
-
return this.opUpdate(schema, input, ctx, now);
|
|
161
|
+
return this.opUpdate(schema, input, ctx, now, existing);
|
|
139
162
|
}
|
|
140
163
|
return this.opCreate(schema, input, ctx, now);
|
|
141
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeBuiltinUseCase.js","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeBuiltinUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,
|
|
1
|
+
{"version":3,"file":"InvokeBuiltinUseCase.js","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeBuiltinUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aotter/mantle-runtime",
|
|
3
|
-
"version": "0.0.11-alpha.
|
|
3
|
+
"version": "0.0.11-alpha.53",
|
|
4
4
|
"description": "Runtime engine for mantle: dispatcher + entry-writer + view executor + content-ops + render pipeline + auth + MCP. Defines adapter-agnostic ports. MUST NOT import D1Database / KVNamespace types.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://mantle.tools/",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"README.md"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@aotter/mantle-spec": "0.0.11-alpha.
|
|
32
|
+
"@aotter/mantle-spec": "0.0.11-alpha.53"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"zod": "^4.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^
|
|
38
|
+
"@types/node": "^26",
|
|
39
39
|
"typescript": "^6.0.3",
|
|
40
|
-
"vitest": "^4.1.
|
|
40
|
+
"vitest": "^4.1.10",
|
|
41
41
|
"zod": "^4.4.2"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|