@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.
Files changed (162) hide show
  1. package/README.md +4 -0
  2. package/dist/domain/model/EntryRow.d.ts +4 -1
  3. package/dist/domain/model/EntryRow.d.ts.map +1 -1
  4. package/dist/domain/model/EntryRow.js +14 -0
  5. package/dist/domain/model/EntryRow.js.map +1 -1
  6. package/dist/domain/model/PendingUploadRecord.d.ts +19 -0
  7. package/dist/domain/model/PendingUploadRecord.d.ts.map +1 -0
  8. package/dist/domain/model/PendingUploadRecord.js.map +1 -0
  9. package/dist/domain/model/index.d.ts +1 -0
  10. package/dist/domain/model/index.d.ts.map +1 -1
  11. package/dist/domain/model/index.js.map +1 -1
  12. package/dist/domain/port/EntryReader.d.ts +49 -0
  13. package/dist/domain/port/EntryReader.d.ts.map +1 -0
  14. package/dist/domain/port/EntryReader.js +2 -0
  15. package/dist/domain/port/EntryReader.js.map +1 -0
  16. package/dist/domain/port/PendingUploadRepository.d.ts +8 -0
  17. package/dist/domain/port/PendingUploadRepository.d.ts.map +1 -0
  18. package/dist/domain/port/PendingUploadRepository.js +2 -0
  19. package/dist/domain/port/PendingUploadRepository.js.map +1 -0
  20. package/dist/domain/port/PublishOrchestrator.d.ts +2 -0
  21. package/dist/domain/port/PublishOrchestrator.d.ts.map +1 -1
  22. package/dist/domain/port/SiteConfigRepository.d.ts +13 -0
  23. package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -1
  24. package/dist/domain/port/index.d.ts +3 -1
  25. package/dist/domain/port/index.d.ts.map +1 -1
  26. package/dist/domain/port/index.js.map +1 -1
  27. package/dist/domain/service/PathMatcher.d.ts +2 -0
  28. package/dist/domain/service/PathMatcher.d.ts.map +1 -1
  29. package/dist/domain/service/PathMatcher.js +26 -20
  30. package/dist/domain/service/PathMatcher.js.map +1 -1
  31. package/dist/domain/service/index.d.ts +1 -2
  32. package/dist/domain/service/index.d.ts.map +1 -1
  33. package/dist/domain/service/index.js +1 -2
  34. package/dist/domain/service/index.js.map +1 -1
  35. package/dist/domain/service/io/JoinedEntryReader.d.ts +3 -3
  36. package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
  37. package/dist/domain/service/io/JoinedEntryReader.js +4 -5
  38. package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
  39. package/dist/domain/service/io/index.d.ts +1 -6
  40. package/dist/domain/service/io/index.d.ts.map +1 -1
  41. package/dist/domain/service/io/index.js +1 -6
  42. package/dist/domain/service/io/index.js.map +1 -1
  43. package/dist/index.d.ts +3 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
  48. package/dist/infrastructure/boot/canonicalMigrations.js +35 -0
  49. package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
  50. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +13 -2
  51. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
  52. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +175 -13
  53. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
  54. package/dist/infrastructure/persistence/DatabasePendingUploadRepository.d.ts +13 -0
  55. package/dist/infrastructure/persistence/DatabasePendingUploadRepository.d.ts.map +1 -0
  56. package/dist/infrastructure/persistence/DatabasePendingUploadRepository.js +36 -0
  57. package/dist/infrastructure/persistence/DatabasePendingUploadRepository.js.map +1 -0
  58. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts +5 -1
  59. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
  60. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +37 -5
  61. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
  62. package/dist/infrastructure/persistence/index.d.ts +1 -0
  63. package/dist/infrastructure/persistence/index.d.ts.map +1 -1
  64. package/dist/infrastructure/persistence/index.js +1 -0
  65. package/dist/infrastructure/persistence/index.js.map +1 -1
  66. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +5 -3
  67. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +1 -1
  68. package/dist/infrastructure/render/HtmlPublishOrchestrator.js +25 -11
  69. package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +1 -1
  70. package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts +41 -0
  71. package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts.map +1 -0
  72. package/dist/infrastructure/testing/HttpBenchmarkHarness.js +88 -0
  73. package/dist/infrastructure/testing/HttpBenchmarkHarness.js.map +1 -0
  74. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts +42 -0
  75. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -0
  76. package/dist/infrastructure/testing/IndexCoverageHarness.js +222 -0
  77. package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -0
  78. package/dist/infrastructure/testing/index.d.ts +3 -0
  79. package/dist/infrastructure/testing/index.d.ts.map +1 -0
  80. package/dist/infrastructure/testing/index.js +3 -0
  81. package/dist/infrastructure/testing/index.js.map +1 -0
  82. package/dist/runtime.d.ts +10 -2
  83. package/dist/runtime.d.ts.map +1 -1
  84. package/dist/runtime.js +16 -9
  85. package/dist/runtime.js.map +1 -1
  86. package/dist/testing.d.ts +3 -0
  87. package/dist/testing.d.ts.map +1 -0
  88. package/dist/testing.js +3 -0
  89. package/dist/testing.js.map +1 -0
  90. package/dist/usecase/dto/index.d.ts +1 -0
  91. package/dist/usecase/dto/index.d.ts.map +1 -1
  92. package/dist/usecase/dto/index.js +1 -0
  93. package/dist/usecase/dto/index.js.map +1 -1
  94. package/dist/usecase/dto/site/UpdateSiteSettingsRequest.d.ts +3 -0
  95. package/dist/usecase/dto/site/UpdateSiteSettingsRequest.d.ts.map +1 -0
  96. package/dist/usecase/dto/site/UpdateSiteSettingsRequest.js +2 -0
  97. package/dist/usecase/dto/site/UpdateSiteSettingsRequest.js.map +1 -0
  98. package/dist/usecase/dto/site/index.d.ts +2 -0
  99. package/dist/usecase/dto/site/index.d.ts.map +1 -0
  100. package/dist/usecase/dto/site/index.js +2 -0
  101. package/dist/usecase/dto/site/index.js.map +1 -0
  102. package/dist/usecase/index.d.ts +1 -0
  103. package/dist/usecase/index.d.ts.map +1 -1
  104. package/dist/usecase/index.js +1 -0
  105. package/dist/usecase/index.js.map +1 -1
  106. package/dist/usecase/media/CommitMediaUploadUseCase.d.ts +4 -4
  107. package/dist/usecase/media/CommitMediaUploadUseCase.d.ts.map +1 -1
  108. package/dist/usecase/media/CommitMediaUploadUseCase.js +9 -11
  109. package/dist/usecase/media/CommitMediaUploadUseCase.js.map +1 -1
  110. package/dist/usecase/media/CreateMediaUploadUseCase.d.ts +3 -3
  111. package/dist/usecase/media/CreateMediaUploadUseCase.d.ts.map +1 -1
  112. package/dist/usecase/media/CreateMediaUploadUseCase.js +5 -5
  113. package/dist/usecase/media/CreateMediaUploadUseCase.js.map +1 -1
  114. package/dist/usecase/media/index.d.ts +1 -1
  115. package/dist/usecase/media/index.d.ts.map +1 -1
  116. package/dist/usecase/media/index.js +1 -1
  117. package/dist/usecase/media/index.js.map +1 -1
  118. package/dist/usecase/media/mediaAllowlist.d.ts +0 -5
  119. package/dist/usecase/media/mediaAllowlist.d.ts.map +1 -1
  120. package/dist/usecase/media/mediaAllowlist.js +0 -5
  121. package/dist/usecase/media/mediaAllowlist.js.map +1 -1
  122. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +3 -3
  123. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +1 -1
  124. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +6 -7
  125. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +1 -1
  126. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +3 -3
  127. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +1 -1
  128. package/dist/usecase/render/ComposeLlmsTxtUseCase.js +4 -5
  129. package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +1 -1
  130. package/dist/usecase/render/ComposeSitemapUseCase.d.ts +3 -3
  131. package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +1 -1
  132. package/dist/usecase/render/ComposeSitemapUseCase.js +4 -5
  133. package/dist/usecase/render/ComposeSitemapUseCase.js.map +1 -1
  134. package/dist/usecase/render/PreviewEntryUseCase.d.ts +3 -3
  135. package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +1 -1
  136. package/dist/usecase/render/PreviewEntryUseCase.js +5 -6
  137. package/dist/usecase/render/PreviewEntryUseCase.js.map +1 -1
  138. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +3 -3
  139. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +1 -1
  140. package/dist/usecase/render/RenderEntryLiveUseCase.js +5 -6
  141. package/dist/usecase/render/RenderEntryLiveUseCase.js.map +1 -1
  142. package/dist/usecase/render/RenderListLiveUseCase.d.ts +3 -3
  143. package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +1 -1
  144. package/dist/usecase/render/RenderListLiveUseCase.js +5 -6
  145. package/dist/usecase/render/RenderListLiveUseCase.js.map +1 -1
  146. package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts +12 -0
  147. package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -0
  148. package/dist/usecase/site/UpdateSiteSettingsUseCase.js +18 -0
  149. package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -0
  150. package/dist/usecase/site/index.d.ts +2 -0
  151. package/dist/usecase/site/index.d.ts.map +1 -0
  152. package/dist/usecase/site/index.js +2 -0
  153. package/dist/usecase/site/index.js.map +1 -0
  154. package/package.json +6 -2
  155. package/dist/domain/service/io/PublishedEntries.d.ts +0 -69
  156. package/dist/domain/service/io/PublishedEntries.d.ts.map +0 -1
  157. package/dist/domain/service/io/PublishedEntries.js +0 -116
  158. package/dist/domain/service/io/PublishedEntries.js.map +0 -1
  159. package/dist/usecase/media/PendingUploadRecord.d.ts +0 -36
  160. package/dist/usecase/media/PendingUploadRecord.d.ts.map +0 -1
  161. package/dist/usecase/media/PendingUploadRecord.js.map +0 -1
  162. /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":""}