@aotter/mantle-runtime 0.1.2-alpha.1 → 0.1.2-alpha.3

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 (92) hide show
  1. package/dist/MantleRuntime.js +2 -2
  2. package/dist/MantleRuntime.js.map +1 -1
  3. package/dist/domain/model/EntryRow.d.ts +7 -16
  4. package/dist/domain/model/EntryRow.d.ts.map +1 -1
  5. package/dist/domain/model/EntryRow.js +15 -0
  6. package/dist/domain/model/EntryRow.js.map +1 -1
  7. package/dist/domain/port/DatabaseDriver.d.ts +2 -2
  8. package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
  9. package/dist/domain/port/EntryReader.d.ts +5 -4
  10. package/dist/domain/port/EntryReader.d.ts.map +1 -1
  11. package/dist/domain/port/EntryRepository.d.ts +8 -6
  12. package/dist/domain/port/EntryRepository.d.ts.map +1 -1
  13. package/dist/domain/port/index.d.ts +1 -1
  14. package/dist/domain/port/index.d.ts.map +1 -1
  15. package/dist/domain/port/index.js.map +1 -1
  16. package/dist/index.d.ts +5 -3
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts +1 -0
  21. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts.map +1 -1
  22. package/dist/infrastructure/boot/SqliteMigrationRunner.js +71 -12
  23. package/dist/infrastructure/boot/SqliteMigrationRunner.js.map +1 -1
  24. package/dist/infrastructure/boot/bootState.d.ts +2 -0
  25. package/dist/infrastructure/boot/bootState.d.ts.map +1 -1
  26. package/dist/infrastructure/boot/bootState.js +3 -1
  27. package/dist/infrastructure/boot/bootState.js.map +1 -1
  28. package/dist/infrastructure/boot/canonicalMigrations.d.ts +4 -17
  29. package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
  30. package/dist/infrastructure/boot/canonicalMigrations.js +14 -207
  31. package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
  32. package/dist/infrastructure/boot/index.d.ts +2 -2
  33. package/dist/infrastructure/boot/index.d.ts.map +1 -1
  34. package/dist/infrastructure/boot/index.js +2 -2
  35. package/dist/infrastructure/boot/index.js.map +1 -1
  36. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
  37. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +22 -24
  38. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
  39. package/dist/infrastructure/mcp/McpToolCatalog.js +8 -8
  40. package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
  41. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +14 -21
  42. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
  43. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +262 -423
  44. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
  45. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts +2 -2
  46. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts.map +1 -1
  47. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js +5 -5
  48. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js.map +1 -1
  49. package/dist/infrastructure/persistence/Pagination.d.ts +1 -1
  50. package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
  51. package/dist/infrastructure/persistence/Pagination.js +1 -1
  52. package/dist/infrastructure/persistence/Pagination.js.map +1 -1
  53. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +4 -0
  54. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -1
  55. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +57 -6
  56. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -1
  57. package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts +19 -0
  58. package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts.map +1 -0
  59. package/dist/infrastructure/storage/SqliteMigrationArtifact.js +41 -0
  60. package/dist/infrastructure/storage/SqliteMigrationArtifact.js.map +1 -0
  61. package/dist/infrastructure/storage/SqliteSchemaTables.d.ts +23 -0
  62. package/dist/infrastructure/storage/SqliteSchemaTables.d.ts.map +1 -0
  63. package/dist/infrastructure/storage/SqliteSchemaTables.js +244 -0
  64. package/dist/infrastructure/storage/SqliteSchemaTables.js.map +1 -0
  65. package/dist/infrastructure/storage/SqliteViewCompiler.d.ts +3 -5
  66. package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -1
  67. package/dist/infrastructure/storage/SqliteViewCompiler.js +20 -51
  68. package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -1
  69. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -1
  70. package/dist/infrastructure/testing/IndexCoverageHarness.js +19 -31
  71. package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
  72. package/dist/infrastructure/testing/StorageConformance.js +21 -20
  73. package/dist/infrastructure/testing/StorageConformance.js.map +1 -1
  74. package/dist/usecase/content/ArchiveUseCase.js +4 -4
  75. package/dist/usecase/content/ArchiveUseCase.js.map +1 -1
  76. package/dist/usecase/content/DeleteEntryUseCase.js +4 -4
  77. package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
  78. package/dist/usecase/content/GetEntryUseCase.d.ts +1 -2
  79. package/dist/usecase/content/GetEntryUseCase.d.ts.map +1 -1
  80. package/dist/usecase/content/GetEntryUseCase.js +2 -6
  81. package/dist/usecase/content/GetEntryUseCase.js.map +1 -1
  82. package/dist/usecase/content/RequestPublishUseCase.js +4 -4
  83. package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
  84. package/dist/usecase/content/UnpublishUseCase.js +4 -4
  85. package/dist/usecase/content/UnpublishUseCase.js.map +1 -1
  86. package/dist/usecase/content/UpdateDraftUseCase.js +4 -4
  87. package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
  88. package/dist/usecase/dto/content/index.d.ts +6 -5
  89. package/dist/usecase/dto/content/index.d.ts.map +1 -1
  90. package/dist/usecase/procedure/InvokeBuiltinUseCase.js +6 -6
  91. package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
  92. package/package.json +2 -2
@@ -0,0 +1,244 @@
1
+ import { checkSchemaIndexes, } from "@aotter/mantle-spec";
2
+ const SYSTEM_COLUMNS = ["_mantle_id", "_mantle_status", "_mantle_version", "_mantle_author_id", "_mantle_created_at", "_mantle_updated_at"];
3
+ const RESERVED_TABLES = new Set([
4
+ "_migrations", "_mantle_boot_state", "_mantle_schema_tables", "_mantle_storage_state",
5
+ "site_config", "user", "session", "account", "verification", "jwks", "oauthclient",
6
+ "oauthresource", "oauthclientresource", "oauthrefreshtoken", "oauthaccesstoken", "oauthconsent",
7
+ "oauthclientassertion", "media_assets", "pending_media_uploads",
8
+ ]);
9
+ const MAX_D1_COLUMNS = 100;
10
+ export function sqliteSchemaTable(schema) {
11
+ assertTableName(schema.metadata.name);
12
+ const fields = Object.keys(schema.spec.schema.properties ?? {}).sort(compareText);
13
+ const seen = new Set(SYSTEM_COLUMNS.map((name) => name.toLowerCase()));
14
+ for (const field of fields) {
15
+ const folded = field.toLowerCase();
16
+ if (folded.startsWith("_mantle_") || seen.has(folded)) {
17
+ throw new Error(`Schema '${schema.metadata.name}' field '${field}' uses Mantle's reserved SQLite namespace.`);
18
+ }
19
+ seen.add(folded);
20
+ }
21
+ if (fields.length + SYSTEM_COLUMNS.length > MAX_D1_COLUMNS) {
22
+ throw new Error(`Schema '${schema.metadata.name}' exceeds D1's ${MAX_D1_COLUMNS}-column table limit.`);
23
+ }
24
+ return {
25
+ schema,
26
+ table: quoteIdent(schema.metadata.name),
27
+ fields,
28
+ selectColumns: [...SYSTEM_COLUMNS.map(quoteIdent), ...fields.map(quoteIdent)].join(", "),
29
+ };
30
+ }
31
+ export function validateSqliteSchemaTables(schemas) {
32
+ const sorted = [...schemas].sort((a, b) => compareText(a.metadata.name, b.metadata.name));
33
+ const seen = new Map();
34
+ for (const schema of sorted) {
35
+ sqliteSchemaTable(schema);
36
+ const folded = schema.metadata.name.toLowerCase();
37
+ const previous = seen.get(folded);
38
+ if (previous)
39
+ throw new Error(`Schema names '${previous}' and '${schema.metadata.name}' collide in SQLite.`);
40
+ seen.set(folded, schema.metadata.name);
41
+ }
42
+ return sorted;
43
+ }
44
+ export function schemaTableMigrations(schemas) {
45
+ const migrations = [];
46
+ for (const schema of validateSqliteSchemaTables(schemas)) {
47
+ const table = sqliteSchemaTable(schema);
48
+ migrations.push({
49
+ id: `schema-table-v2:table:${utf8Hex(schema.metadata.name)}`,
50
+ description: `Native table for Schema ${schema.metadata.name}`,
51
+ sql: `CREATE TABLE IF NOT EXISTS ${table.table} (
52
+ "_mantle_id" TEXT PRIMARY KEY,
53
+ "_mantle_status" TEXT NOT NULL,
54
+ "_mantle_version" INTEGER NOT NULL DEFAULT 1,
55
+ "_mantle_author_id" TEXT,
56
+ "_mantle_created_at" INTEGER NOT NULL,
57
+ "_mantle_updated_at" INTEGER NOT NULL
58
+ )`,
59
+ });
60
+ for (const field of table.fields) {
61
+ const property = schema.spec.schema.properties[field];
62
+ migrations.push({
63
+ id: `schema-table-v2:column:${utf8Hex(schema.metadata.name)}:${utf8Hex(field)}`,
64
+ description: `Schema ${schema.metadata.name} field ${field}`,
65
+ sql: `ALTER TABLE ${table.table} ADD COLUMN ${quoteIdent(field)} ${fieldDescriptor(property)[0]}`,
66
+ });
67
+ }
68
+ migrations.push({
69
+ id: `schema-table-v2:index:${utf8Hex(schema.metadata.name)}:updated`,
70
+ description: `Schema ${schema.metadata.name} updated-at access path`,
71
+ sql: `CREATE INDEX IF NOT EXISTS ${quoteIdent(indexName(schema.metadata.name, "updated"))} ON ${table.table}("_mantle_updated_at" DESC, "_mantle_id" DESC)`,
72
+ });
73
+ migrations.push({
74
+ id: `schema-table-v2:index:${utf8Hex(schema.metadata.name)}:status-updated`,
75
+ description: `Schema ${schema.metadata.name} status access path`,
76
+ sql: `CREATE INDEX IF NOT EXISTS ${quoteIdent(indexName(schema.metadata.name, "status_updated"))} ON ${table.table}("_mantle_status", "_mantle_updated_at" DESC, "_mantle_id" DESC)`,
77
+ });
78
+ migrations.push({
79
+ id: `schema-table-v2:index:${utf8Hex(schema.metadata.name)}:created`,
80
+ description: `Schema ${schema.metadata.name} creation statistics access path`,
81
+ sql: `CREATE INDEX IF NOT EXISTS ${quoteIdent(indexName(schema.metadata.name, "created"))} ON ${table.table}("_mantle_created_at")`,
82
+ });
83
+ if (table.fields.includes("locale")) {
84
+ migrations.push({
85
+ id: `schema-table-v2:index:${utf8Hex(schema.metadata.name)}:locale-status-updated`,
86
+ description: `Schema ${schema.metadata.name} localized publication access path`,
87
+ sql: `CREATE INDEX IF NOT EXISTS ${quoteIdent(indexName(schema.metadata.name, "locale_status_updated"))} ON ${table.table}(${quoteIdent("locale")}, "_mantle_status", "_mantle_updated_at" DESC, "_mantle_id" DESC)`,
88
+ });
89
+ }
90
+ const checked = checkSchemaIndexes(schema);
91
+ const problem = checked.problems[0];
92
+ if (problem)
93
+ throw new Error(`invalid Schema index declaration at ${problem.pointer}: ${problem.message}`);
94
+ for (const declaration of checked.declarations) {
95
+ const fields = declaration.fields.map(({ name }) => quoteIdent(name));
96
+ const relationship = !declaration.unique && declaration.fields.length === 1 &&
97
+ (schema.spec.translates?.on === declaration.fields[0].name ||
98
+ typeof schema.spec.schema.properties?.[declaration.fields[0].name]?.["x-mantle-ref"] === "string");
99
+ if (relationship)
100
+ fields.push('"_mantle_updated_at" DESC', '"_mantle_id" DESC');
101
+ const suffix = `${declaration.unique ? "unique" : relationship ? "relation" : "index"}_${declaration.fields.map(({ name }) => utf8Hex(name)).join("_")}`;
102
+ migrations.push({
103
+ id: `schema-table-v2:index:${utf8Hex(schema.metadata.name)}:${suffix}`,
104
+ description: `Schema ${schema.metadata.name} ${declaration.unique ? "unique " : ""}index`,
105
+ sql: `CREATE ${declaration.unique ? "UNIQUE " : ""}INDEX IF NOT EXISTS ${quoteIdent(indexName(schema.metadata.name, suffix))} ON ${table.table}(${fields.join(", ")})`,
106
+ });
107
+ }
108
+ }
109
+ return migrations;
110
+ }
111
+ export function schemaTableProjection(schema) {
112
+ sqliteSchemaTable(schema);
113
+ const checked = checkSchemaIndexes(schema);
114
+ const problem = checked.problems[0];
115
+ if (problem)
116
+ throw new Error(`invalid Schema index declaration at ${problem.pointer}: ${problem.message}`);
117
+ const projection = {
118
+ columns: Object.entries(schema.spec.schema.properties ?? {})
119
+ .sort(([a], [b]) => compareText(a, b))
120
+ .map(([name, property]) => [name, ...fieldDescriptor(property)]),
121
+ indexes: checked.declarations.map((declaration) => [
122
+ declaration.unique,
123
+ declaration.fields.map(({ name }) => name),
124
+ !declaration.unique && declaration.fields.length === 1 &&
125
+ (schema.spec.translates?.on === declaration.fields[0].name ||
126
+ typeof schema.spec.schema.properties?.[declaration.fields[0].name]?.["x-mantle-ref"] === "string"),
127
+ ]).sort((a, b) => compareText(JSON.stringify(a), JSON.stringify(b))),
128
+ };
129
+ return JSON.stringify(projection);
130
+ }
131
+ /** Automatic deploys may expand storage but never reinterpret values or alter uniqueness. */
132
+ export function isAdditiveSchemaTableChange(previous, next) {
133
+ const before = parseProjection(previous);
134
+ const after = parseProjection(next);
135
+ const beforeColumns = new Map(before.columns.map((column) => [column[0].toLowerCase(), column]));
136
+ for (const column of after.columns) {
137
+ const existing = beforeColumns.get(column[0].toLowerCase());
138
+ if (existing && JSON.stringify(existing) !== JSON.stringify(column))
139
+ return false;
140
+ }
141
+ const uniqueBefore = new Set(before.indexes.filter(([unique]) => unique).map(indexKey));
142
+ const uniqueAfter = new Set(after.indexes.filter(([unique]) => unique).map(indexKey));
143
+ return setsEqual(uniqueBefore, uniqueAfter);
144
+ }
145
+ /** Persist physical ownership as a superset so an additive rollback remains valid. */
146
+ export function mergeSchemaTableProjections(previous, next) {
147
+ if (!previous)
148
+ return next;
149
+ if (!isAdditiveSchemaTableChange(previous, next))
150
+ throw new Error("Schema table projection requires reviewed migration.");
151
+ const before = parseProjection(previous);
152
+ const after = parseProjection(next);
153
+ const columns = new Map(before.columns.map((column) => [column[0].toLowerCase(), column]));
154
+ for (const column of after.columns)
155
+ columns.set(column[0].toLowerCase(), column);
156
+ const indexes = new Map(before.indexes.map((index) => [indexKey(index), index]));
157
+ for (const index of after.indexes)
158
+ indexes.set(indexKey(index), index);
159
+ return JSON.stringify({
160
+ columns: [...columns.values()].sort((a, b) => compareText(a[0], b[0])),
161
+ indexes: [...indexes.values()].sort((a, b) => compareText(indexKey(a), indexKey(b))),
162
+ });
163
+ }
164
+ export function fieldColumn(schema, field) {
165
+ return Object.hasOwn(schema.spec.schema.properties ?? {}, field) ? field
166
+ : field === "id" ? "_mantle_id"
167
+ : field === "status" ? "_mantle_status"
168
+ : field === "version" ? "_mantle_version"
169
+ : field === "createdAt" ? "_mantle_created_at"
170
+ : field === "updatedAt" ? "_mantle_updated_at"
171
+ : field === "authorId" ? "_mantle_author_id" : null;
172
+ }
173
+ export function fieldSql(schema, field, alias) {
174
+ const native = fieldColumn(schema, field);
175
+ if (!native)
176
+ return null;
177
+ return alias ? `${quoteIdent(alias)}.${quoteIdent(native)}` : quoteIdent(native);
178
+ }
179
+ export function encodeField(value, property) {
180
+ if (value == null)
181
+ return null;
182
+ const codec = fieldDescriptor(property)[1];
183
+ if (codec === "boolean")
184
+ return value ? 1 : 0;
185
+ if (codec === "json")
186
+ return JSON.stringify(value);
187
+ return value;
188
+ }
189
+ export function decodeField(value, property) {
190
+ if (value === null)
191
+ return fieldDescriptor(property)[2] ? null : undefined;
192
+ if (value === undefined)
193
+ return undefined;
194
+ const codec = fieldDescriptor(property)[1];
195
+ if (codec === "boolean")
196
+ return value === 1 || value === true;
197
+ if (codec === "json" && typeof value === "string")
198
+ return JSON.parse(value);
199
+ return value;
200
+ }
201
+ export function isNullableJsonSchema(property) {
202
+ if (property.nullable === true)
203
+ return true;
204
+ const types = typeof property.type === "string" ? [property.type] : property.type ?? [];
205
+ return types.includes("null") || property.oneOf?.some(isNullableJsonSchema) === true;
206
+ }
207
+ function fieldDescriptor(property) {
208
+ const types = [...new Set((typeof property.type === "string" ? [property.type] : property.type ?? []).filter((type) => type !== "null"))];
209
+ const type = types.length === 1 && !property.oneOf ? types[0] : undefined;
210
+ const codec = type === "string" || type === "integer" || type === "number" || type === "boolean" ? type : "json";
211
+ const affinity = codec === "integer" || codec === "boolean" ? "INTEGER" : codec === "number" ? "REAL" : "TEXT";
212
+ return [affinity, codec, isNullableJsonSchema(property)];
213
+ }
214
+ function parseProjection(value) {
215
+ const parsed = JSON.parse(value);
216
+ if (!Array.isArray(parsed.columns) || !Array.isArray(parsed.indexes))
217
+ throw new Error("Invalid Schema table projection.");
218
+ return parsed;
219
+ }
220
+ function assertTableName(name) {
221
+ const folded = name.toLowerCase();
222
+ if (folded.startsWith("_mantle_") || RESERVED_TABLES.has(folded)) {
223
+ throw new Error(`Schema '${name}' collides with a reserved SQLite table.`);
224
+ }
225
+ }
226
+ function indexKey(index) {
227
+ return JSON.stringify(index);
228
+ }
229
+ function setsEqual(a, b) {
230
+ return a.size === b.size && [...a].every((value) => b.has(value));
231
+ }
232
+ function compareText(a, b) {
233
+ return a < b ? -1 : a > b ? 1 : 0;
234
+ }
235
+ function indexName(schema, suffix) {
236
+ return `m_${utf8Hex(schema)}_${suffix}`;
237
+ }
238
+ function utf8Hex(value) {
239
+ return [...new TextEncoder().encode(value)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
240
+ }
241
+ export function quoteIdent(value) {
242
+ return `"${value.replace(/"/g, '""')}"`;
243
+ }
244
+ //# sourceMappingURL=SqliteSchemaTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSchemaTables.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/SqliteSchemaTables.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,9 @@ import type { ViewQueryOptions } from "../../domain/port/ViewQueryExecutor.js";
3
3
  import { type LogicalViewPlan } from "../../domain/service/RuntimePlanCompiler.js";
4
4
  /**
5
5
  * View → SQL compilation. Targets SQLite + JSON1 (D1's dialect).
6
- * Reserved metadata fields project as native columns. Declared Schema
7
- * index fields use their generated columns; undeclared fields keep the
8
- * `json_extract(data, '$.<field>')` fallback. SQL uses positional `?`
9
- * parameters; field-name escapes are defense-in-depth on top of the
10
- * Schema validator gate.
6
+ * Reserved metadata and Schema fields map directly to native columns.
7
+ * SQL uses positional `?` parameters; identifiers come only from the
8
+ * linked RuntimePlan.
11
9
  *
12
10
  * v0.1 filter AST supports comparison operators (`eq`, `gt`, `gte`,
13
11
  * `lt`, `lte`) plus `and` / `or`; comparison values may be literals or
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteViewCompiler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/SqliteViewCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,6CAA6C,CAAC;AAErD;;;;;;;;;;;;;;GAcG;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,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAAC;IACjD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;CACpD;AAoCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,kBAAuB,EAChC,MAAM,CAAC,EAAE,cAAc,GACtB,YAAY,CAEd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,cAAc,GACtB,kBAAkB,CA4CpB"}
1
+ {"version":3,"file":"SqliteViewCompiler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/SqliteViewCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,6CAA6C,CAAC;AAErD;;;;;;;;;;;;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,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAAC;IACjD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;CACpD;AAoCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,kBAAuB,EAChC,MAAM,CAAC,EAAE,cAAc,GACtB,YAAY,CAEd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,cAAc,GACtB,kBAAkB,CA4CpB"}
@@ -1,4 +1,5 @@
1
- import { DiagnosticError, isCtxUserRef, isParamRef, runtimeDiagnostic, schemaIndexedFieldSql, } from "@aotter/mantle-spec";
1
+ import { DiagnosticError, isCtxUserRef, isParamRef, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
+ import { fieldSql } from "./SqliteSchemaTables.js";
2
3
  import { clampPage, clampShow } from "../../domain/service/Pagination.js";
3
4
  import { compileLogicalView, } from "../../domain/service/RuntimePlanCompiler.js";
4
5
  // alias → SQL column. Aliases mirror RESERVED_ENTRY_COLUMNS from
@@ -6,12 +7,12 @@ import { compileLogicalView, } from "../../domain/service/RuntimePlanCompiler.js
6
7
  // The compile-time check below ensures the alias set stays in sync —
7
8
  // adding to spec without updating here is a type error.
8
9
  const RESERVED_COLUMN = {
9
- id: "id",
10
- status: "status",
11
- version: "version",
12
- createdAt: "created_at",
13
- updatedAt: "updated_at",
14
- authorId: "author_id",
10
+ id: "_mantle_id",
11
+ status: "_mantle_status",
12
+ version: "_mantle_version",
13
+ createdAt: "_mantle_created_at",
14
+ updatedAt: "_mantle_updated_at",
15
+ authorId: "_mantle_author_id",
15
16
  };
16
17
  const _aliasCheck = RESERVED_COLUMN;
17
18
  void _aliasCheck;
@@ -51,8 +52,8 @@ export function prepareSqliteView(view, viewName, schema) {
51
52
  const filter = view.filter ? prepareFilter(view.filter, schema) : undefined;
52
53
  return {
53
54
  bind(options = {}) {
54
- const sqlParams = [view.from];
55
- const whereParts = ["collection = ?"];
55
+ const sqlParams = [];
56
+ const whereParts = [];
56
57
  if (filter) {
57
58
  whereParts.push(`(${filter.sql})`);
58
59
  sqlParams.push(...filter.bind(options.params ?? {}, options.ctxUserId));
@@ -63,7 +64,7 @@ export function prepareSqliteView(view, viewName, schema) {
63
64
  const effectiveShow = clampShow(options.show, view.limit);
64
65
  const effectivePage = clampPage(options.page);
65
66
  return {
66
- sql: `SELECT ${selectExpr} FROM entries WHERE ${whereParts.join(" AND ")}${orderBy} LIMIT ${effectiveShow} OFFSET ${pageOffset(effectivePage, effectiveShow)}`,
67
+ sql: `SELECT ${selectExpr} FROM ${quoteIdent(view.from)}${whereParts.length ? ` WHERE ${whereParts.join(" AND ")}` : ""}${orderBy} LIMIT ${effectiveShow} OFFSET ${pageOffset(effectivePage, effectiveShow)}`,
67
68
  params: sqlParams,
68
69
  effectivePage,
69
70
  effectiveShow,
@@ -188,13 +189,17 @@ function fieldExpr(field, schema) {
188
189
  return `${expression} AS ${reserved ? field : quoteIdent(field)}`;
189
190
  }
190
191
  function fieldRefExpr(field, schema) {
192
+ if (schema && Object.hasOwn(schema.spec.schema.properties ?? {}, field))
193
+ return quoteIdent(field);
191
194
  const reserved = RESERVED_COLUMN[field];
192
195
  if (reserved)
193
196
  return reserved;
194
- const indexed = schema ? schemaIndexedFieldSql(schema, field) : null;
195
- if (indexed)
196
- return indexed;
197
- return `json_extract(data, ${quotedJsonPath(field)})`;
197
+ if (!schema)
198
+ return quoteIdent(field);
199
+ const column = fieldSql(schema, field);
200
+ if (!column)
201
+ throw new Error(`View references unknown Schema field '${field}'.`);
202
+ return column;
198
203
  }
199
204
  function prepareFilter(node, schema) {
200
205
  const comparison = getFilterComparison(node);
@@ -261,47 +266,11 @@ function buildOrderBy(orderBy, schema) {
261
266
  });
262
267
  return ` ORDER BY ${parts.join(", ")}`;
263
268
  }
264
- // Schema JSON property keys can be arbitrary strings per RFC 8259,
265
- // but SQLite's JSON1 path syntax (`$."key"`) has no documented way
266
- // to escape an inner `"` or `\` inside a quoted key — doubled-quote
267
- // escaping is the SQLite identifier convention, NOT a JSON-path
268
- // convention. So we always quote the path/alias (admitting hyphens,
269
- // spaces, etc.) but refuse `"`, `\`, and `\0` in field names —
270
- // those break either the JSON-path resolution or the SQL string
271
- // literal. Real Schema authors don't use those characters in keys;
272
- // rejecting them keeps the path always-resolvable.
273
- const FORBIDDEN_FIELD_CHARS = /["\\\0]/;
274
- function assertFieldNameSafe(name, callsite) {
275
- if (!FORBIDDEN_FIELD_CHARS.test(name))
276
- return;
277
- throw new DiagnosticError(runtimeDiagnostic({
278
- code: "INTERNAL_ERROR",
279
- severity: "error",
280
- path: `compileView/${callsite}`,
281
- value: name,
282
- expected: 'field name without `"`, `\\`, or NUL',
283
- message: `field name '${name}' contains an unrepresentable character (\", \\, or NUL); Schema validation should have caught this.`,
284
- }));
285
- }
286
- /**
287
- * Emit `'$."<field>"'` — a SQL string literal containing a SQLite
288
- * JSON path. Doubles single quotes for the surrounding SQL literal
289
- * (SQLite literal escape). Field name itself is guaranteed free of
290
- * `"` / `\` / NUL by `assertFieldNameSafe`, so the inner double-
291
- * quoted key needs no further escape.
292
- */
293
- function quotedJsonPath(field) {
294
- assertFieldNameSafe(field, "quotedJsonPath");
295
- // Only `'` needs escaping for the surrounding SQL literal; field
296
- // is guaranteed free of `"` / `\` / NUL.
297
- return `'$."${field.replace(/'/g, "''")}"'`;
298
- }
299
269
  /**
300
270
  * SQLite quoted-identifier alias (`"hero-image"`). Used as the result
301
271
  * column name so callers read the field back under its declared key.
302
272
  */
303
273
  function quoteIdent(name) {
304
- assertFieldNameSafe(name, "quoteIdent");
305
- return `"${name}"`;
274
+ return `"${name.replace(/"/g, '""')}"`;
306
275
  }
307
276
  //# sourceMappingURL=SqliteViewCompiler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteViewCompiler.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/SqliteViewCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteViewCompiler.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/SqliteViewCompiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IndexCoverageHarness.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/testing/IndexCoverageHarness.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAI/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;QACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAMD,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAoDrB"}
1
+ {"version":3,"file":"IndexCoverageHarness.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/testing/IndexCoverageHarness.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAK/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;QACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAMD,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA+CrB"}
@@ -1,7 +1,8 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import { RESERVED_ENTRY_COLUMNS, buildDdl, buildSchemaSqlView, } from "@aotter/mantle-spec";
2
+ import { RESERVED_ENTRY_COLUMNS, } from "@aotter/mantle-spec";
3
3
  import { compileView } from "../storage/SqliteViewCompiler.js";
4
4
  import { CANONICAL_MIGRATIONS } from "../boot/canonicalMigrations.js";
5
+ import { quoteIdent, schemaTableMigrations } from "../storage/SqliteSchemaTables.js";
5
6
  /** Execute real compiled Views against the real schema in crowded SQLite. */
6
7
  export function inspectIndexCoverage(runtimePlan, options = {}) {
7
8
  const rowsPerSchema = clampRows(options.rowsPerSchema);
@@ -13,14 +14,8 @@ export function inspectIndexCoverage(runtimePlan, options = {}) {
13
14
  try {
14
15
  for (const migration of CANONICAL_MIGRATIONS)
15
16
  db.exec(migration.sql);
16
- for (const schema of schemas) {
17
- const ddl = buildDdl(schema);
18
- for (const column of ddl.columns)
19
- db.exec(column.sql);
20
- for (const index of ddl.indexes)
21
- db.exec(index.sql);
22
- db.exec(buildSchemaSqlView(schema).createSql);
23
- }
17
+ for (const migration of schemaTableMigrations(schemas))
18
+ db.exec(migration.sql);
24
19
  seedSchemas(db, schemas, rowsPerSchema);
25
20
  db.exec("ANALYZE");
26
21
  const paths = views.map((view) => inspectView(db, view, view.spec.from ? schemasByName.get(view.spec.from) : undefined, (options.requirePublic === true && view.spec.surface !== "staff") ||
@@ -60,23 +55,22 @@ function inspectView(db, view, schema, explicitlyRequired) {
60
55
  .map(({ detail }) => detail);
61
56
  const rows = db.prepare(compiled.sql).all(...sqliteParams);
62
57
  const usedIndexes = [...new Set(plan.flatMap(indexFromPlan))];
63
- const entryScans = plan.filter((detail) => /\bSCAN entries\b/.test(detail));
64
- const tableScan = entryScans.some((detail) => !/\bUSING (?:COVERING )?INDEX\b/.test(detail));
65
- const indexedScan = entryScans.some((detail) => /\bUSING (?:COVERING )?INDEX\b/.test(detail));
58
+ const tableAccess = plan.filter((detail) => /\b(?:SCAN|SEARCH)\b/.test(detail));
59
+ const tableScan = tableAccess.some((detail) => !/\bUSING (?:COVERING )?INDEX\b/.test(detail));
60
+ const indexedScan = tableAccess.some((detail) => /\bUSING (?:COVERING )?INDEX\b/.test(detail));
66
61
  const temporarySort = plan.some((detail) => /USE TEMP B-TREE.*ORDER BY/.test(detail));
67
62
  const accessFields = [...dataAccessFields(view)].sort();
68
63
  const filterFields = [...dataFilterFields(view)].sort();
69
- const schemaIndexFields = declaredIndexFields(schema);
70
- const usedSchemaFields = new Set(usedIndexes.flatMap((name) => schemaIndexFields.get(name) ?? []));
64
+ const usedSchemaFields = new Set(usedIndexes.flatMap((name) => indexFields(db, name)));
71
65
  const schemaIndexRequired = accessFields.length > 0;
72
66
  const schemaIndexUsed = schemaIndexRequired &&
73
67
  accessFields.every((field) => usedSchemaFields.has(field));
74
68
  const findings = [];
75
69
  if (tableScan)
76
- findings.push("full entries scan");
70
+ findings.push("full table scan");
77
71
  if (indexedScan &&
78
72
  filterFields.length > 0 &&
79
- !plan.some((detail) => /\bSEARCH entries\b/.test(detail))) {
73
+ !plan.some((detail) => /\bSEARCH\b/.test(detail))) {
80
74
  findings.push("data-field filter scans an index without a searchable prefix");
81
75
  }
82
76
  if (temporarySort)
@@ -104,28 +98,22 @@ function inspectView(db, view, schema, explicitlyRequired) {
104
98
  findings,
105
99
  };
106
100
  }
107
- function declaredIndexFields(schema) {
108
- if (!schema)
109
- return new Map();
110
- const declarations = [
111
- ...(schema.spec.uniqueIndexes ?? []),
112
- ...(schema.spec.indexes ?? []),
113
- ];
114
- return new Map(buildDdl(schema).indexes.map((index, position) => [
115
- index.name,
116
- declarations[position] ?? [],
117
- ]));
101
+ function indexFields(db, name) {
102
+ return db.prepare(`PRAGMA index_info(${quoteIdent(name)})`).all()
103
+ .map((row) => row.name);
118
104
  }
119
105
  function seedSchemas(db, schemas, rowsPerSchema) {
120
- const insert = db.prepare(`INSERT OR IGNORE INTO entries
121
- (id, collection, status, version, data, author_id, created_at, updated_at)
122
- VALUES (?, ?, ?, 1, ?, NULL, ?, ?)`);
123
106
  for (const schema of schemas) {
107
+ const fields = Object.keys(schema.spec.schema.properties ?? {});
108
+ const insert = db.prepare(`INSERT OR IGNORE INTO ${quoteIdent(schema.metadata.name)}
109
+ (${["_mantle_id", "_mantle_status", "_mantle_version", "_mantle_author_id", "_mantle_created_at", "_mantle_updated_at", ...fields].map(quoteIdent).join(", ")})
110
+ VALUES (${Array.from({ length: 6 + fields.length }, () => "?").join(", ")})`);
124
111
  const singleUnique = new Set((schema.spec.uniqueIndexes ?? [])
125
112
  .filter((fields) => fields.length === 1)
126
113
  .map((fields) => fields[0]));
127
114
  for (let index = 0; index < rowsPerSchema; index += 1) {
128
- insert.run(`${schema.metadata.name}-${index}`, schema.metadata.name, index % 5 === 0 ? "published" : "draft", JSON.stringify(sampleData(schema, index, singleUnique)), index, index);
115
+ const data = sampleData(schema, index, singleUnique);
116
+ insert.run(`${schema.metadata.name}-${index}`, index % 5 === 0 ? "published" : "draft", 1, null, index, index, ...fields.map((field) => toSqliteValue(data[field])));
129
117
  }
130
118
  }
131
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IndexCoverageHarness.js","sourceRoot":"","sources":["../../../src/infrastructure/testing/IndexCoverageHarness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexCoverageHarness.js","sourceRoot":"","sources":["../../../src/infrastructure/testing/IndexCoverageHarness.ts"],"names":[],"mappings":"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"}