@aotter/mantle-runtime 0.0.11-alpha.61 → 0.0.11-alpha.63
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 +4 -0
- package/dist/domain/model/EntryRow.d.ts +4 -1
- package/dist/domain/model/EntryRow.d.ts.map +1 -1
- package/dist/domain/model/EntryRow.js +14 -0
- package/dist/domain/model/EntryRow.js.map +1 -1
- package/dist/domain/model/PendingUploadRecord.d.ts +19 -0
- package/dist/domain/model/PendingUploadRecord.d.ts.map +1 -0
- package/dist/domain/model/PendingUploadRecord.js.map +1 -0
- package/dist/domain/model/index.d.ts +1 -0
- package/dist/domain/model/index.d.ts.map +1 -1
- package/dist/domain/model/index.js.map +1 -1
- package/dist/domain/port/EntryReader.d.ts +49 -0
- package/dist/domain/port/EntryReader.d.ts.map +1 -0
- package/dist/domain/port/EntryReader.js +2 -0
- package/dist/domain/port/EntryReader.js.map +1 -0
- package/dist/domain/port/PendingUploadRepository.d.ts +8 -0
- package/dist/domain/port/PendingUploadRepository.d.ts.map +1 -0
- package/dist/domain/port/PendingUploadRepository.js +2 -0
- package/dist/domain/port/PendingUploadRepository.js.map +1 -0
- package/dist/domain/port/PublishOrchestrator.d.ts +2 -0
- package/dist/domain/port/PublishOrchestrator.d.ts.map +1 -1
- package/dist/domain/port/SiteConfigRepository.d.ts +13 -0
- package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -1
- package/dist/domain/port/index.d.ts +3 -1
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.js.map +1 -1
- package/dist/domain/service/PathMatcher.d.ts +2 -0
- package/dist/domain/service/PathMatcher.d.ts.map +1 -1
- package/dist/domain/service/PathMatcher.js +26 -20
- package/dist/domain/service/PathMatcher.js.map +1 -1
- package/dist/domain/service/index.d.ts +1 -2
- package/dist/domain/service/index.d.ts.map +1 -1
- package/dist/domain/service/index.js +1 -2
- package/dist/domain/service/index.js.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.d.ts +3 -3
- package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.js +4 -5
- package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
- package/dist/domain/service/io/index.d.ts +1 -6
- package/dist/domain/service/io/index.d.ts.map +1 -1
- package/dist/domain/service/io/index.js +1 -6
- package/dist/domain/service/io/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +35 -0
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +13 -2
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +175 -13
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabasePendingUploadRepository.d.ts +13 -0
- package/dist/infrastructure/persistence/DatabasePendingUploadRepository.d.ts.map +1 -0
- package/dist/infrastructure/persistence/DatabasePendingUploadRepository.js +36 -0
- package/dist/infrastructure/persistence/DatabasePendingUploadRepository.js.map +1 -0
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts +5 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +37 -5
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
- package/dist/infrastructure/persistence/index.d.ts +1 -0
- package/dist/infrastructure/persistence/index.d.ts.map +1 -1
- package/dist/infrastructure/persistence/index.js +1 -0
- package/dist/infrastructure/persistence/index.js.map +1 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +5 -3
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +1 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js +25 -11
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +1 -1
- package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts +41 -0
- package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts.map +1 -0
- package/dist/infrastructure/testing/HttpBenchmarkHarness.js +88 -0
- package/dist/infrastructure/testing/HttpBenchmarkHarness.js.map +1 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts +42 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.js +222 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -0
- package/dist/infrastructure/testing/index.d.ts +3 -0
- package/dist/infrastructure/testing/index.d.ts.map +1 -0
- package/dist/infrastructure/testing/index.js +3 -0
- package/dist/infrastructure/testing/index.js.map +1 -0
- package/dist/runtime.d.ts +10 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +16 -9
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts +3 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +3 -0
- package/dist/testing.js.map +1 -0
- package/dist/usecase/dto/index.d.ts +1 -0
- package/dist/usecase/dto/index.d.ts.map +1 -1
- package/dist/usecase/dto/index.js +1 -0
- package/dist/usecase/dto/index.js.map +1 -1
- package/dist/usecase/dto/site/UpdateSiteSettingsRequest.d.ts +3 -0
- package/dist/usecase/dto/site/UpdateSiteSettingsRequest.d.ts.map +1 -0
- package/dist/usecase/dto/site/UpdateSiteSettingsRequest.js +2 -0
- package/dist/usecase/dto/site/UpdateSiteSettingsRequest.js.map +1 -0
- package/dist/usecase/dto/site/index.d.ts +2 -0
- package/dist/usecase/dto/site/index.d.ts.map +1 -0
- package/dist/usecase/dto/site/index.js +2 -0
- package/dist/usecase/dto/site/index.js.map +1 -0
- package/dist/usecase/index.d.ts +1 -0
- package/dist/usecase/index.d.ts.map +1 -1
- package/dist/usecase/index.js +1 -0
- package/dist/usecase/index.js.map +1 -1
- package/dist/usecase/media/CommitMediaUploadUseCase.d.ts +4 -4
- package/dist/usecase/media/CommitMediaUploadUseCase.d.ts.map +1 -1
- package/dist/usecase/media/CommitMediaUploadUseCase.js +9 -11
- package/dist/usecase/media/CommitMediaUploadUseCase.js.map +1 -1
- package/dist/usecase/media/CreateMediaUploadUseCase.d.ts +3 -3
- package/dist/usecase/media/CreateMediaUploadUseCase.d.ts.map +1 -1
- package/dist/usecase/media/CreateMediaUploadUseCase.js +5 -5
- package/dist/usecase/media/CreateMediaUploadUseCase.js.map +1 -1
- package/dist/usecase/media/index.d.ts +1 -1
- package/dist/usecase/media/index.d.ts.map +1 -1
- package/dist/usecase/media/index.js +1 -1
- package/dist/usecase/media/index.js.map +1 -1
- package/dist/usecase/media/mediaAllowlist.d.ts +0 -5
- package/dist/usecase/media/mediaAllowlist.d.ts.map +1 -1
- package/dist/usecase/media/mediaAllowlist.js +0 -5
- package/dist/usecase/media/mediaAllowlist.js.map +1 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +3 -3
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +1 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +6 -7
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +1 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +3 -3
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +1 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js +4 -5
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +1 -1
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts +3 -3
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +1 -1
- package/dist/usecase/render/ComposeSitemapUseCase.js +4 -5
- package/dist/usecase/render/ComposeSitemapUseCase.js.map +1 -1
- package/dist/usecase/render/PreviewEntryUseCase.d.ts +3 -3
- package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +1 -1
- package/dist/usecase/render/PreviewEntryUseCase.js +5 -6
- package/dist/usecase/render/PreviewEntryUseCase.js.map +1 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +3 -3
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +1 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.js +5 -6
- package/dist/usecase/render/RenderEntryLiveUseCase.js.map +1 -1
- package/dist/usecase/render/RenderListLiveUseCase.d.ts +3 -3
- package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +1 -1
- package/dist/usecase/render/RenderListLiveUseCase.js +5 -6
- package/dist/usecase/render/RenderListLiveUseCase.js.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts +12 -0
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -0
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js +18 -0
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -0
- package/dist/usecase/site/index.d.ts +2 -0
- package/dist/usecase/site/index.d.ts.map +1 -0
- package/dist/usecase/site/index.js +2 -0
- package/dist/usecase/site/index.js.map +1 -0
- package/package.json +6 -2
- package/dist/domain/service/io/PublishedEntries.d.ts +0 -69
- package/dist/domain/service/io/PublishedEntries.d.ts.map +0 -1
- package/dist/domain/service/io/PublishedEntries.js +0 -116
- package/dist/domain/service/io/PublishedEntries.js.map +0 -1
- package/dist/usecase/media/PendingUploadRecord.d.ts +0 -36
- package/dist/usecase/media/PendingUploadRecord.d.ts.map +0 -1
- package/dist/usecase/media/PendingUploadRecord.js.map +0 -1
- /package/dist/{usecase/media → domain/model}/PendingUploadRecord.js +0 -0
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
export async function readPublishedEntries(db, filter = {}) {
|
|
2
|
-
const conditions = ["status = 'published'"];
|
|
3
|
-
const binds = [];
|
|
4
|
-
if (filter.locale === null) {
|
|
5
|
-
conditions.push(`json_extract(data, '$.locale') IS NULL`);
|
|
6
|
-
}
|
|
7
|
-
else if (typeof filter.locale === "string") {
|
|
8
|
-
conditions.push(`json_extract(data, '$.locale') = ?`);
|
|
9
|
-
binds.push(filter.locale);
|
|
10
|
-
}
|
|
11
|
-
if (filter.collection) {
|
|
12
|
-
conditions.push("collection = ?");
|
|
13
|
-
binds.push(filter.collection);
|
|
14
|
-
}
|
|
15
|
-
let sql = `SELECT id, collection, status, version, data, created_at, updated_at` +
|
|
16
|
-
` FROM entries WHERE ${conditions.join(" AND ")} ORDER BY updated_at DESC`;
|
|
17
|
-
if (typeof filter.limit === "number" && Number.isFinite(filter.limit) && filter.limit > 0) {
|
|
18
|
-
sql += ` LIMIT ${Math.floor(filter.limit)}`;
|
|
19
|
-
}
|
|
20
|
-
const rows = await db.prepare(sql).bind(...binds).all();
|
|
21
|
-
return rows.map(rowToEntry);
|
|
22
|
-
}
|
|
23
|
-
/** Single-entry lookup by id. Used by the publish pipeline to load
|
|
24
|
-
* the entry it's about to render; lifted into the domain service so
|
|
25
|
-
* the orchestrator stops owning row-to-domain mapping. */
|
|
26
|
-
export async function readEntryById(db, id) {
|
|
27
|
-
const row = await db
|
|
28
|
-
.prepare(`SELECT id, collection, status, version, data, created_at, updated_at` +
|
|
29
|
-
` FROM entries WHERE id = ?`)
|
|
30
|
-
.bind(id)
|
|
31
|
-
.first();
|
|
32
|
-
return row ? rowToEntry(row) : null;
|
|
33
|
-
}
|
|
34
|
-
export async function readEntryBySlug(db, args) {
|
|
35
|
-
return readEntryByDataField(db, {
|
|
36
|
-
collection: args.collection,
|
|
37
|
-
field: "slug",
|
|
38
|
-
value: args.slug,
|
|
39
|
-
locale: args.locale,
|
|
40
|
-
status: args.status,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
// Single-segment allowlist (no dots). Deliberately stricter than
|
|
44
|
-
// ViewSqlCompiler.SAFE_FIELD_NAME (which accepts dotted JSON paths
|
|
45
|
-
// like `foo.bar` for multi-segment view projections). Both regexes
|
|
46
|
-
// exist on purpose; keep them in sync conceptually but distinct.
|
|
47
|
-
const SAFE_FIELD_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
48
|
-
function assertSafeField(field) {
|
|
49
|
-
if (!SAFE_FIELD_RE.test(field)) {
|
|
50
|
-
throw new Error(`field name ${JSON.stringify(field)} fails ${SAFE_FIELD_RE} — schema field names must be plain identifiers (SQL-injection backstop for json_extract path interpolation)`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
export async function readEntryByDataField(db, args) {
|
|
54
|
-
assertSafeField(args.field);
|
|
55
|
-
const conditions = [
|
|
56
|
-
"collection = ?",
|
|
57
|
-
`json_extract(data, '$.${args.field}') = ?`,
|
|
58
|
-
];
|
|
59
|
-
const binds = [args.collection, args.value];
|
|
60
|
-
if (args.locale === null) {
|
|
61
|
-
conditions.push(`json_extract(data, '$.locale') IS NULL`);
|
|
62
|
-
}
|
|
63
|
-
else if (typeof args.locale === "string") {
|
|
64
|
-
conditions.push(`json_extract(data, '$.locale') = ?`);
|
|
65
|
-
binds.push(args.locale);
|
|
66
|
-
}
|
|
67
|
-
if (args.status) {
|
|
68
|
-
conditions.push("status = ?");
|
|
69
|
-
binds.push(args.status);
|
|
70
|
-
}
|
|
71
|
-
const sql = `SELECT id, collection, status, version, data, created_at, updated_at` +
|
|
72
|
-
` FROM entries WHERE ${conditions.join(" AND ")} ORDER BY updated_at DESC LIMIT 1`;
|
|
73
|
-
const row = await db.prepare(sql).bind(...binds).first();
|
|
74
|
-
return row ? rowToEntry(row) : null;
|
|
75
|
-
}
|
|
76
|
-
export async function readEntriesByDataFieldIn(db, args) {
|
|
77
|
-
if (args.values.length === 0)
|
|
78
|
-
return [];
|
|
79
|
-
assertSafeField(args.field);
|
|
80
|
-
const placeholders = args.values.map(() => "?").join(", ");
|
|
81
|
-
const conditions = [
|
|
82
|
-
"collection = ?",
|
|
83
|
-
`json_extract(data, '$.${args.field}') IN (${placeholders})`,
|
|
84
|
-
];
|
|
85
|
-
const binds = [args.collection, ...args.values];
|
|
86
|
-
if (args.locale === null) {
|
|
87
|
-
conditions.push(`json_extract(data, '$.locale') IS NULL`);
|
|
88
|
-
}
|
|
89
|
-
else if (typeof args.locale === "string") {
|
|
90
|
-
conditions.push(`json_extract(data, '$.locale') = ?`);
|
|
91
|
-
binds.push(args.locale);
|
|
92
|
-
}
|
|
93
|
-
if (args.status) {
|
|
94
|
-
conditions.push("status = ?");
|
|
95
|
-
binds.push(args.status);
|
|
96
|
-
}
|
|
97
|
-
const sql = `SELECT id, collection, status, version, data, created_at, updated_at` +
|
|
98
|
-
` FROM entries WHERE ${conditions.join(" AND ")} ORDER BY updated_at DESC`;
|
|
99
|
-
const rows = await db.prepare(sql).bind(...binds).all();
|
|
100
|
-
return rows.map(rowToEntry);
|
|
101
|
-
}
|
|
102
|
-
function rowToEntry(row) {
|
|
103
|
-
const data = JSON.parse(row.data);
|
|
104
|
-
const dataLocale = data["locale"];
|
|
105
|
-
return {
|
|
106
|
-
id: row.id,
|
|
107
|
-
collection: row.collection,
|
|
108
|
-
locale: typeof dataLocale === "string" ? dataLocale : undefined,
|
|
109
|
-
status: row.status,
|
|
110
|
-
version: row.version,
|
|
111
|
-
data,
|
|
112
|
-
createdAt: row.created_at,
|
|
113
|
-
updatedAt: row.updated_at,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=PublishedEntries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublishedEntries.js","sourceRoot":"","sources":["../../../../src/domain/service/io/PublishedEntries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { MediaVariantRole } from "../../domain/port/MediaStorage.js";
|
|
2
|
-
/** KV record persisted by `CreateMediaUploadUseCase` and read by
|
|
3
|
-
* `CommitMediaUploadUseCase`. Stored under
|
|
4
|
-
* `${PENDING_UPLOAD_KV_PREFIX}${uploadGroupId}` with a TTL set to
|
|
5
|
-
* `PENDING_UPLOAD_KV_TTL_SECONDS`.
|
|
6
|
-
*
|
|
7
|
-
* Multi-variant from the start (#272): one record tracks every
|
|
8
|
-
* variant the agent declared, so commit can HEAD all N R2 objects
|
|
9
|
-
* in one atomic shot.
|
|
10
|
-
*/
|
|
11
|
-
export interface PendingUploadRecord {
|
|
12
|
-
readonly purpose: string;
|
|
13
|
-
/** Original filename — forwarded by commit into R2 customMetadata
|
|
14
|
-
* on every variant. Preserved here so the commit path sees it
|
|
15
|
-
* without a second hop. */
|
|
16
|
-
readonly filename: string;
|
|
17
|
-
readonly variants: ReadonlyArray<PendingUploadVariant>;
|
|
18
|
-
readonly alt?: string;
|
|
19
|
-
readonly caption?: string;
|
|
20
|
-
readonly expiresAt: number;
|
|
21
|
-
readonly createdAt: number;
|
|
22
|
-
}
|
|
23
|
-
export interface PendingUploadVariant {
|
|
24
|
-
readonly mimeType: string;
|
|
25
|
-
readonly role: MediaVariantRole;
|
|
26
|
-
readonly storageKey: string;
|
|
27
|
-
/** Caller-declared byte size, persisted at create time so commit
|
|
28
|
-
* can enforce a tight per-variant ceiling rather than just the
|
|
29
|
-
* per-purpose `maxBytes`. The adapter ultimately verifies actual
|
|
30
|
-
* stored bytes ≤ this. */
|
|
31
|
-
readonly expectedSize: number;
|
|
32
|
-
/** Per-purpose `maxBytes[mimeType]`. Forwarded to the adapter so
|
|
33
|
-
* HEAD-verify rejects oversized PUTs with the right cap message. */
|
|
34
|
-
readonly maxBytes: number;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=PendingUploadRecord.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PendingUploadRecord.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/PendingUploadRecord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;gCAE4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;+BAG2B;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;yEACqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PendingUploadRecord.js","sourceRoot":"","sources":["../../../src/usecase/media/PendingUploadRecord.ts"],"names":[],"mappings":""}
|
|
File without changes
|