@aotter/mantle-runtime 0.0.11-alpha.41 → 0.0.11-alpha.43

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 (56) hide show
  1. package/dist/domain/port/EntryRepository.d.ts +4 -0
  2. package/dist/domain/port/EntryRepository.d.ts.map +1 -1
  3. package/dist/domain/port/MediaAssetRepository.d.ts +18 -0
  4. package/dist/domain/port/MediaAssetRepository.d.ts.map +1 -1
  5. package/dist/domain/service/io/EntryWriteGuard.d.ts +4 -0
  6. package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
  7. package/dist/domain/service/io/EntryWriteGuard.js +6 -1
  8. package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
  13. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +27 -11
  14. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
  15. package/dist/infrastructure/persistence/DatabaseMediaAssetRepository.d.ts +2 -1
  16. package/dist/infrastructure/persistence/DatabaseMediaAssetRepository.d.ts.map +1 -1
  17. package/dist/infrastructure/persistence/DatabaseMediaAssetRepository.js +50 -0
  18. package/dist/infrastructure/persistence/DatabaseMediaAssetRepository.js.map +1 -1
  19. package/dist/runtime.d.ts +7 -1
  20. package/dist/runtime.d.ts.map +1 -1
  21. package/dist/runtime.js +5 -1
  22. package/dist/runtime.js.map +1 -1
  23. package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
  24. package/dist/usecase/content/CreateDraftUseCase.js +6 -1
  25. package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
  26. package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
  27. package/dist/usecase/content/ListEntriesUseCase.js +1 -0
  28. package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
  29. package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
  30. package/dist/usecase/content/UpdateDraftUseCase.js +7 -2
  31. package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
  32. package/dist/usecase/dto/content/index.d.ts +2 -0
  33. package/dist/usecase/dto/content/index.d.ts.map +1 -1
  34. package/dist/usecase/dto/media/index.d.ts +16 -0
  35. package/dist/usecase/dto/media/index.d.ts.map +1 -1
  36. package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts +32 -0
  37. package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts.map +1 -0
  38. package/dist/usecase/media/DeleteMediaAssetUseCase.js +42 -0
  39. package/dist/usecase/media/DeleteMediaAssetUseCase.js.map +1 -0
  40. package/dist/usecase/media/GetMediaAssetUseCase.d.ts +13 -0
  41. package/dist/usecase/media/GetMediaAssetUseCase.d.ts.map +1 -0
  42. package/dist/usecase/media/GetMediaAssetUseCase.js +21 -0
  43. package/dist/usecase/media/GetMediaAssetUseCase.js.map +1 -0
  44. package/dist/usecase/media/ListMediaAssetsUseCase.d.ts +15 -0
  45. package/dist/usecase/media/ListMediaAssetsUseCase.d.ts.map +1 -0
  46. package/dist/usecase/media/ListMediaAssetsUseCase.js +21 -0
  47. package/dist/usecase/media/ListMediaAssetsUseCase.js.map +1 -0
  48. package/dist/usecase/media/UpdateMediaAssetUseCase.d.ts +20 -0
  49. package/dist/usecase/media/UpdateMediaAssetUseCase.d.ts.map +1 -0
  50. package/dist/usecase/media/UpdateMediaAssetUseCase.js +33 -0
  51. package/dist/usecase/media/UpdateMediaAssetUseCase.js.map +1 -0
  52. package/dist/usecase/media/index.d.ts +4 -0
  53. package/dist/usecase/media/index.d.ts.map +1 -1
  54. package/dist/usecase/media/index.js +4 -0
  55. package/dist/usecase/media/index.js.map +1 -1
  56. package/package.json +2 -2
@@ -109,6 +109,10 @@ export interface ListEntriesArgs {
109
109
  /** Opaque continuation token from a prior `ListEntriesResult.nextCursor`.
110
110
  * Caller must round-trip without interpreting; format is impl-defined. */
111
111
  readonly cursor?: string;
112
+ /** Free-text filter matched against `id` and the raw `data` JSON
113
+ * blob (substring, case-sensitive per SQLite's default `LIKE`).
114
+ * Composes with `status` — both narrow the same query. */
115
+ readonly search?: string;
112
116
  }
113
117
  export interface ListEntriesResult {
114
118
  readonly rows: readonly EntryRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"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"}
@@ -30,5 +30,23 @@ export interface MediaAssetRepository {
30
30
  findManyByIds(ids: readonly string[]): Promise<ReadonlyMap<string, MediaAsset>>;
31
31
  save(asset: MediaAsset): Promise<void>;
32
32
  delete(id: string): Promise<void>;
33
+ /**
34
+ * Newest-first page of committed assets for the admin media library
35
+ * (#434). Cursor-paginated like `EntryRepository.list` — offset-based
36
+ * behind an opaque token. `search` (optional) is a substring match
37
+ * over alt/caption/id; the store owns escaping. No tag/folder filter
38
+ * — `media_assets` carries no such column (see the repository impl).
39
+ */
40
+ list(args: MediaAssetListArgs): Promise<MediaAssetListResult>;
41
+ }
42
+ export interface MediaAssetListArgs {
43
+ readonly limit?: number;
44
+ readonly cursor?: string;
45
+ readonly search?: string;
46
+ }
47
+ export interface MediaAssetListResult {
48
+ readonly rows: readonly MediaAsset[];
49
+ /** Present when there may be more rows; pass back as `cursor`. */
50
+ readonly nextCursor?: string;
33
51
  }
34
52
  //# sourceMappingURL=MediaAssetRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaAssetRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/MediaAssetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"MediaAssetRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/MediaAssetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -8,6 +8,10 @@ export interface AssertEntryWritableArgs {
8
8
  readonly data: Record<string, unknown>;
9
9
  readonly excludeId?: string;
10
10
  readonly siteConfig?: SiteConfigRepository;
11
+ /** Draft mode: skip required-field + locale-presence checks so a
12
+ * work-in-progress entry can be saved incomplete. Publish paths
13
+ * omit this, so completeness is enforced before an entry goes live. */
14
+ readonly partial?: boolean;
11
15
  }
12
16
  /** Shared post-projection guard for every authoring path.
13
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EntryWriteGuard.d.ts","sourceRoot":"","sources":["../../../../src/domain/service/io/EntryWriteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF"}
1
+ {"version":3,"file":"EntryWriteGuard.d.ts","sourceRoot":"","sources":["../../../../src/domain/service/io/EntryWriteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C;;4EAEwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtF"}
@@ -7,7 +7,9 @@ import { DiagnosticError, EntryDataValidator, MANTLE_BIND_KEYWORD, runtimeDiagno
7
7
  */
8
8
  export async function assertEntryWritable(args) {
9
9
  const validator = new EntryDataValidator();
10
- const diagnostics = validator.validate(args.schema, dataForValidation(args.schema, args.data));
10
+ const diagnostics = validator.validate(args.schema, dataForValidation(args.schema, args.data), {
11
+ partial: args.partial ?? false,
12
+ });
11
13
  if (diagnostics.length > 0)
12
14
  throw new DiagnosticError(diagnostics);
13
15
  await assertLocale(args);
@@ -29,6 +31,9 @@ async function assertLocale(args) {
29
31
  }));
30
32
  }
31
33
  if (typeof value !== "string" || value.length === 0) {
34
+ // Draft may not have picked a locale yet; publish re-checks.
35
+ if (args.partial)
36
+ return;
32
37
  throw new DiagnosticError(runtimeDiagnostic({
33
38
  code: "INPUT_VALIDATION_FAILED",
34
39
  severity: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"EntryWriteGuard.js","sourceRoot":"","sources":["../../../../src/domain/service/io/EntryWriteGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntryWriteGuard.js","sourceRoot":"","sources":["../../../../src/domain/service/io/EntryWriteGuard.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export type { KvCache, KvPutOptions, KvListResult } from "./domain/port/KvCache.
20
20
  export type { AssetServer } from "./domain/port/AssetServer.js";
21
21
  export type { MediaStorage, CreateUploadArgs, CreateUploadVariantSpec, CreateUploadResult, UploadCapability, CommitUploadArgs, CommitUploadVariantSpec, GetPublicUrlArgs, DeleteObjectArgs, MediaAsset, MediaVariant, MediaVariantRole, } from "./domain/port/MediaStorage.js";
22
22
  export { pickPrimaryVariant } from "./domain/port/MediaStorage.js";
23
- export type { MediaAssetRepository } from "./domain/port/MediaAssetRepository.js";
23
+ export type { MediaAssetRepository, MediaAssetListArgs, MediaAssetListResult, } from "./domain/port/MediaAssetRepository.js";
24
24
  export type { EmailSender, EmailSendArgs, } from "./domain/port/EmailSender.js";
25
25
  export { extensionForMime } from "./usecase/media/mediaAllowlist.js";
26
26
  export type { DeferredHookDispatcher, DeferredHookEnvelope, CtxSnapshot, } from "./domain/port/DeferredHookDispatcher.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAKtB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,GACZ,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,KAAK,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,8CAA8C,CAAC;AAItD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAKtB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,GACZ,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,KAAK,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,8CAA8C,CAAC;AAItD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AA6BtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAMnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAOrE,qEAAqE;AACrE,oEAAoE;AACpE,wDAAwD;AACxD,OAAO,EAAoB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQrF,OAAO,EACL,gBAAgB,GAKjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,GAIzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,qCAAqC,CAAC;AAE7C,kEAAkE;AAClE,oEAAoE;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,iEAAiE;AACjE,4DAA4D;AAC5D,OAAO,EACL,oBAAoB,GAGrB,MAAM,8CAA8C,CAAC;AAEtD,6DAA6D;AAC7D,4DAA4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,qEAAqE;AACrE,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AA6BtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAUnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAOrE,qEAAqE;AACrE,oEAAoE;AACpE,wDAAwD;AACxD,OAAO,EAAoB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQrF,OAAO,EACL,gBAAgB,GAKjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,GAIzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,qCAAqC,CAAC;AAE7C,kEAAkE;AAClE,oEAAoE;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,iEAAiE;AACjE,4DAA4D;AAC5D,OAAO,EACL,oBAAoB,GAGrB,MAAM,8CAA8C,CAAC;AAEtD,6DAA6D;AAC7D,4DAA4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,qEAAqE;AACrE,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseEntryRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseEntryRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc;IAEzC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6BhD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAWzC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBhD,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAUrE,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAclD,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuC/D,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiCvD,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuBzE,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YA6BnE,eAAe;CAU9B"}
1
+ {"version":3,"file":"DatabaseEntryRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseEntryRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc;IAEzC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6BhD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAWzC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBhD,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAUrE,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAclD,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuC/D,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyCvD,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuBzE,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YA6BnE,eAAe;CAU9B"}
@@ -121,17 +121,27 @@ export class DatabaseEntryRepository {
121
121
  // Fetch limit+1 to detect a next page without a second query —
122
122
  // the extra row never reaches the caller.
123
123
  const probe = limit + 1;
124
- const stmt = args.status
125
- ? this.db
126
- .prepare(`SELECT id, collection, status, version, data, author_id, created_at, updated_at
127
- FROM entries WHERE collection = ? AND status = ?
128
- ORDER BY updated_at DESC, id DESC LIMIT ? OFFSET ?`)
129
- .bind(args.collection, args.status, probe, offset)
130
- : this.db
131
- .prepare(`SELECT id, collection, status, version, data, author_id, created_at, updated_at
132
- FROM entries WHERE collection = ?
133
- ORDER BY updated_at DESC, id DESC LIMIT ? OFFSET ?`)
134
- .bind(args.collection, probe, offset);
124
+ const conditions = ["collection = ?"];
125
+ const binds = [args.collection];
126
+ if (args.status) {
127
+ conditions.push("status = ?");
128
+ binds.push(args.status);
129
+ }
130
+ if (args.search) {
131
+ // LIKE over the raw JSON blob is dumb but fine at this scale —
132
+ // there's no FTS index. Escape the caller's own wildcards so a
133
+ // search for "50%" or "a_b" doesn't turn into an unintended
134
+ // pattern.
135
+ const term = escapeLikeTerm(args.search);
136
+ conditions.push("(id LIKE '%'||?||'%' ESCAPE '\\' OR data LIKE '%'||?||'%' ESCAPE '\\')");
137
+ binds.push(term, term);
138
+ }
139
+ binds.push(probe, offset);
140
+ const stmt = this.db
141
+ .prepare(`SELECT id, collection, status, version, data, author_id, created_at, updated_at
142
+ FROM entries WHERE ${conditions.join(" AND ")}
143
+ ORDER BY updated_at DESC, id DESC LIMIT ? OFFSET ?`)
144
+ .bind(...binds);
135
145
  const rows = await stmt.all();
136
146
  const hasMore = rows.length > limit;
137
147
  const page = hasMore ? rows.slice(0, limit) : rows;
@@ -210,6 +220,12 @@ function rowFromDb(row) {
210
220
  function jsonPathForTopLevelField(field) {
211
221
  return `$."${field.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
212
222
  }
223
+ /** Escape LIKE metacharacters (`%`, `_`, and the escape char itself)
224
+ * so a search term is matched literally as a substring. Paired with
225
+ * `ESCAPE '\'` in the LIKE clause. */
226
+ function escapeLikeTerm(term) {
227
+ return term.replace(/\\/g, "\\\\").replace(/%/g, "\\%").replace(/_/g, "\\_");
228
+ }
213
229
  /**
214
230
  * `list()` cursor: offset-based, prefixed so a future row-value cursor
215
231
  * (`(updatedAt,id)` tuple) can coexist by switching on the prefix.
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseEntryRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseEntryRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseEntryRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseEntryRepository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DatabaseDriver } from "../../domain/port/DatabaseDriver.js";
2
- import type { MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
2
+ import type { MediaAssetListArgs, MediaAssetListResult, MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
3
3
  import type { MediaAsset } from "../../domain/port/MediaStorage.js";
4
4
  /**
5
5
  * `media_assets` row read/write. The variants set + free-form
@@ -23,5 +23,6 @@ export declare class DatabaseMediaAssetRepository implements MediaAssetRepositor
23
23
  findManyByIds(ids: readonly string[]): Promise<ReadonlyMap<string, MediaAsset>>;
24
24
  save(asset: MediaAsset): Promise<void>;
25
25
  delete(id: string): Promise<void>;
26
+ list(args: MediaAssetListArgs): Promise<MediaAssetListResult>;
26
27
  }
27
28
  //# sourceMappingURL=DatabaseMediaAssetRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseMediaAssetRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseMediaAssetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,4BAA6B,YAAW,oBAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc;IAEzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYhD,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAmB/E,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
1
+ {"version":3,"file":"DatabaseMediaAssetRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseMediaAssetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,mCAAmC,CAAC;AAG3C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,4BAA6B,YAAW,oBAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc;IAEzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYhD,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAmB/E,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAmCpE"}
@@ -1,3 +1,4 @@
1
+ import { clampLimit } from "../../domain/service/Pagination.js";
1
2
  /**
2
3
  * `media_assets` row read/write. The variants set + free-form
3
4
  * metadata go in as JSON-encoded TEXT — variants is closed-shape so
@@ -61,8 +62,57 @@ export class DatabaseMediaAssetRepository {
61
62
  async delete(id) {
62
63
  await this.db.prepare(`DELETE FROM media_assets WHERE id = ?`).bind(id).run();
63
64
  }
65
+ async list(args) {
66
+ const limit = clampLimit(args.limit);
67
+ const offset = decodeCursor(args.cursor);
68
+ // Fetch limit+1 to detect a next page without a second query — the
69
+ // extra row never reaches the caller (mirrors EntryRepository.list).
70
+ const probe = limit + 1;
71
+ const conditions = [];
72
+ const binds = [];
73
+ if (args.search) {
74
+ // LIKE over alt/caption/id — media_assets has no FTS index and no
75
+ // tag/folder column, so this is the whole filter surface. Escape
76
+ // the caller's own wildcards so "50%" stays a literal.
77
+ const term = escapeLikeTerm(args.search);
78
+ conditions.push("(id LIKE '%'||?||'%' ESCAPE '\\' OR alt LIKE '%'||?||'%' ESCAPE '\\' OR caption LIKE '%'||?||'%' ESCAPE '\\')");
79
+ binds.push(term, term, term);
80
+ }
81
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
82
+ binds.push(probe, offset);
83
+ const rows = await this.db
84
+ .prepare(`SELECT id, created_at, owner_id, alt, caption, variants, metadata
85
+ FROM media_assets ${where}
86
+ ORDER BY created_at DESC, id DESC LIMIT ? OFFSET ?`)
87
+ .bind(...binds)
88
+ .all();
89
+ const hasMore = rows.length > limit;
90
+ const page = hasMore ? rows.slice(0, limit) : rows;
91
+ return {
92
+ rows: page.map(rowToAsset),
93
+ nextCursor: hasMore ? encodeCursor(offset + limit) : undefined,
94
+ };
95
+ }
64
96
  }
65
97
  const CHUNK = 100;
98
+ /** Offset-based cursor, prefixed so a future row-value cursor can
99
+ * coexist by switching on the prefix. Callers treat it as opaque.
100
+ * Matches `DatabaseEntryRepository`'s scheme. */
101
+ const CURSOR_PREFIX = "o:";
102
+ function encodeCursor(offset) {
103
+ return `${CURSOR_PREFIX}${offset}`;
104
+ }
105
+ function decodeCursor(cursor) {
106
+ if (!cursor || !cursor.startsWith(CURSOR_PREFIX))
107
+ return 0;
108
+ const n = Number(cursor.slice(CURSOR_PREFIX.length));
109
+ return Number.isInteger(n) && n >= 0 ? n : 0;
110
+ }
111
+ /** Escape LIKE metacharacters in a user-supplied search term so `%`,
112
+ * `_`, and `\` are matched literally (ESCAPE '\'). */
113
+ function escapeLikeTerm(term) {
114
+ return term.replace(/[\\%_]/g, (ch) => `\\${ch}`);
115
+ }
66
116
  function rowToAsset(row) {
67
117
  const variants = JSON.parse(row.variants);
68
118
  const metadata = row.metadata
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseMediaAssetRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseMediaAssetRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseMediaAssetRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/DatabaseMediaAssetRepository.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -17,7 +17,7 @@ import { ExecuteViewUseCase } from "./usecase/view/index.js";
17
17
  import { ValidateBootUseCase } from "./usecase/boot/index.js";
18
18
  import { RunDeferredHookUseCase } from "./usecase/lifecycle/index.js";
19
19
  import { ComposeEntrySeoMetaUseCase, ComposeLlmsTxtUseCase, ComposeSitemapUseCase, PreviewEntryUseCase, RenderEntryLiveUseCase, RenderListLiveUseCase } from "./usecase/render/index.js";
20
- import { CommitMediaUploadUseCase, CreateMediaUploadUseCase } from "./usecase/media/index.js";
20
+ import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, ListMediaAssetsUseCase, GetMediaAssetUseCase, UpdateMediaAssetUseCase, DeleteMediaAssetUseCase } from "./usecase/media/index.js";
21
21
  import type { PublicPathResolver } from "./domain/service/PublicPathResolver.js";
22
22
  import type { MediaAsset } from "./domain/port/MediaStorage.js";
23
23
  /**
@@ -113,6 +113,12 @@ export interface CmsRuntime {
113
113
  readonly storage: MediaStorage;
114
114
  readonly createUpload: CreateMediaUploadUseCase;
115
115
  readonly commitUpload: CommitMediaUploadUseCase;
116
+ /** Admin media-library use cases (#434): list/get/patch/delete over
117
+ * committed assets. Adapters route `/admin/api/media*` off these. */
118
+ readonly listAssets: ListMediaAssetsUseCase;
119
+ readonly getAsset: GetMediaAssetUseCase;
120
+ readonly updateAsset: UpdateMediaAssetUseCase;
121
+ readonly deleteAsset: DeleteMediaAssetUseCase;
116
122
  resolve(id: string): Promise<MediaAsset | null>;
117
123
  resolveMany(ids: readonly string[]): Promise<ReadonlyMap<string, MediaAsset>>;
118
124
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -8,7 +8,7 @@ import { ExecuteViewUseCase } from "./usecase/view/index.js";
8
8
  import { ValidateBootUseCase } from "./usecase/boot/index.js";
9
9
  import { RunDeferredHookUseCase, RunLifecycleHooksUseCase, } from "./usecase/lifecycle/index.js";
10
10
  import { ComposeEntrySeoMetaUseCase, ComposeLlmsTxtUseCase, ComposeSitemapUseCase, PreviewEntryUseCase, RenderEntryLiveUseCase, RenderListLiveUseCase, } from "./usecase/render/index.js";
11
- import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, } from "./usecase/media/index.js";
11
+ import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, ListMediaAssetsUseCase, GetMediaAssetUseCase, UpdateMediaAssetUseCase, DeleteMediaAssetUseCase, } from "./usecase/media/index.js";
12
12
  import { TemplateRegistry as TemplateRegistryImpl } from "./domain/model/TemplateRegistry.js";
13
13
  import { TriggerIndex } from "./domain/service/TriggerIndex.js";
14
14
  import { DatabaseEntryRepository } from "./infrastructure/persistence/DatabaseEntryRepository.js";
@@ -92,6 +92,10 @@ export function createCmsRuntime(args) {
92
92
  storage: args.mediaStorage,
93
93
  createUpload: new CreateMediaUploadUseCase(args.mediaStorage, args.kv, clock, idgen, siteConfig, { allowSvg: args.mediaAllowSvg ?? false }),
94
94
  commitUpload: new CommitMediaUploadUseCase(args.mediaStorage, args.kv, clock, mediaAssets),
95
+ listAssets: new ListMediaAssetsUseCase(mediaAssets),
96
+ getAsset: new GetMediaAssetUseCase(mediaAssets),
97
+ updateAsset: new UpdateMediaAssetUseCase(mediaAssets),
98
+ deleteAsset: new DeleteMediaAssetUseCase(args.mediaStorage, mediaAssets),
95
99
  resolve: (id) => mediaAssets.findById(id),
96
100
  resolveMany: (ids) => mediaAssets.findManyByIds(ids),
97
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,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;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE;;;;GAIG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAJX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAgC9D"}
1
+ {"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,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;AAGtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE;;;;GAIG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAJX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAoC9D"}
@@ -1,4 +1,5 @@
1
1
  import { DiagnosticError, } from "@aotter/mantle-spec";
2
+ import { resolveLifecycle } from "@aotter/mantle-spec";
2
3
  import { projectAndStamp } from "../../domain/service/BuiltinProjector.js";
3
4
  import { schemaUnknownDiagnostic, withConflictDiagnostic, } from "./diagnostics.js";
4
5
  import { assertEntryWritable } from "../../domain/service/io/EntryWriteGuard.js";
@@ -36,11 +37,15 @@ export class CreateDraftUseCase {
36
37
  schema,
37
38
  data,
38
39
  siteConfig: this.siteConfig,
40
+ // Drafts save incomplete; publish enforces required + locale.
41
+ partial: true,
39
42
  });
40
43
  return withConflictDiagnostic(opPath, () => this.entries.create({
41
44
  id,
42
45
  collection: request.collection,
43
- status: "draft",
46
+ // Operational records (lifecycle: none) have no publish step —
47
+ // they are live the moment they exist.
48
+ status: resolveLifecycle(schema) === "none" ? "published" : "draft",
44
49
  data,
45
50
  authorId: request.authorId,
46
51
  now,
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAEV;IACA;IACA;IACA;IACA;IALnB,YACmB,OAAwB,EACxB,OAA4C,EAC5C,KAAY,EACZ,KAAkB,EAClB,UAAiC;QAJjC,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;QAC5C,UAAK,GAAL,KAAK,CAAO;QACZ,UAAK,GAAL,KAAK,CAAa;QAClB,eAAU,GAAV,UAAU,CAAuB;IACjD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CACvB,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,MAAM,mBAAmB,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClB,EAAE;YACF,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO;YACf,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG;YACH,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,GAA+B,EAAE,QAAuB;IAChF,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACxC,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,EAAE;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CreateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAEV;IACA;IACA;IACA;IACA;IALnB,YACmB,OAAwB,EACxB,OAA4C,EAC5C,KAAY,EACZ,KAAkB,EAClB,UAAiC;QAJjC,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;QAC5C,UAAK,GAAL,KAAK,CAAO;QACZ,UAAK,GAAL,KAAK,CAAa;QAClB,eAAU,GAAV,UAAU,CAAuB;IACjD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CACvB,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,MAAM,mBAAmB,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,8DAA8D;YAC9D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClB,EAAE;YACF,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,+DAA+D;YAC/D,uCAAuC;YACvC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;YACnE,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG;YACH,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,GAA+B,EAAE,QAAuB;IAChF,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACxC,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,EAAE;KACR,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListEntriesUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/ListEntriesUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAGzD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAKlE,WAAW,CACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CAiB1C"}
1
+ {"version":3,"file":"ListEntriesUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/ListEntriesUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAGzD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAKlE,WAAW,CACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CAkB1C"}
@@ -52,6 +52,7 @@ export class ListEntriesUseCase {
52
52
  status: request.status,
53
53
  limit: clampLimit(request.limit),
54
54
  cursor: request.cursor,
55
+ search: request.search,
55
56
  });
56
57
  }
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListEntriesUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/ListEntriesUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAKhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,kBAAkB;IAEV;IACA;IAFnB,YACmB,OAAwB,EACxB,OAA4C;QAD5C,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;IAC5D,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAA2B;QAE3B,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAe,CACvB,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9E,CAAC;QACJ,CAAC;QACD,mDAAmD;QACnD,gEAAgE;QAChE,+BAA+B;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ListEntriesUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/ListEntriesUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAKhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,kBAAkB;IAEV;IACA;IAFnB,YACmB,OAAwB,EACxB,OAA4C;QAD5C,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;IAC5D,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAA2B;QAE3B,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAe,CACvB,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9E,CAAC;QACJ,CAAC;QACD,mDAAmD;QACnD,gEAAgE;QAChE,+BAA+B;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE;;;;GAIG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAHX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CA6D9D"}
1
+ {"version":3,"file":"UpdateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE;;;;GAIG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAHX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAkE9D"}
@@ -1,4 +1,4 @@
1
- import { DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
1
+ import { DiagnosticError, resolveLifecycle, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
2
  import { projectUpdateAndStamp } from "../../domain/service/BuiltinProjector.js";
3
3
  import { notFoundDiagnostic, withConflictDiagnostic, } from "./diagnostics.js";
4
4
  import { assertEntryWritable } from "../../domain/service/io/EntryWriteGuard.js";
@@ -24,7 +24,10 @@ export class UpdateDraftUseCase {
24
24
  if (!existing) {
25
25
  throw new DiagnosticError(notFoundDiagnostic(opPath, "<unknown>", request.id));
26
26
  }
27
- if (existing.status !== "draft") {
27
+ // lifecycle: none records have no draft/published workflow — they
28
+ // are editable in place regardless of stored status.
29
+ const lifecycle = resolveLifecycle(this.schemas.get(existing.collection));
30
+ if (existing.status !== "draft" && lifecycle !== "none") {
28
31
  throw new DiagnosticError(runtimeDiagnostic({
29
32
  code: "CONFLICT",
30
33
  severity: "error",
@@ -62,6 +65,8 @@ export class UpdateDraftUseCase {
62
65
  data,
63
66
  excludeId: existing.id,
64
67
  siteConfig: this.siteConfig,
68
+ // Drafts save incomplete; publish enforces required + locale.
69
+ partial: true,
65
70
  });
66
71
  return withConflictDiagnostic(opPath, () => this.entries.update({
67
72
  id: request.id,
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,8 @@ export interface ListEntriesRequest {
44
44
  readonly limit?: number;
45
45
  /** Opaque cursor from a prior `ListEntriesResponse.nextCursor`. */
46
46
  readonly cursor?: string;
47
+ /** Free-text filter matched against `id` and the raw data blob. */
48
+ readonly search?: string;
47
49
  }
48
50
  export interface ListEntriesResponse<R> {
49
51
  readonly rows: readonly R[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;mDAI+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;kCAG8B;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;mDAI+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;kCAG8B;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B"}
@@ -45,4 +45,20 @@ export interface CommitMediaUploadRequest {
45
45
  readonly alt?: string;
46
46
  readonly caption?: string;
47
47
  }
48
+ /** Admin media library list request (#434). Cursor-paginated,
49
+ * newest-first; `search` is an optional substring over id/alt/caption. */
50
+ export interface ListMediaAssetsRequest {
51
+ readonly limit?: number;
52
+ readonly cursor?: string;
53
+ readonly search?: string;
54
+ }
55
+ /** Patch alt/caption on a committed asset (#434). Only these two
56
+ * fields are operator-editable — variants/mime/bytes are frozen at
57
+ * commit. `undefined` leaves a field unchanged; an empty string
58
+ * clears it. */
59
+ export interface UpdateMediaAssetRequest {
60
+ readonly id: string;
61
+ readonly alt?: string;
62
+ readonly caption?: string;
63
+ }
48
64
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/media/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,+BAA+B,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;sEACkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC;yDACqD;IACrD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/media/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,+BAA+B,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;sEACkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC;yDACqD;IACrD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;2EAC2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;iBAGiB;AACjB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,32 @@
1
+ import type { MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
2
+ import type { MediaStorage } from "../../domain/port/MediaStorage.js";
3
+ /**
4
+ * `DeleteMediaAssetUseCase` — remove a committed asset (#434).
5
+ * Orchestrates the two-sided deletion the ports describe: delete every
6
+ * variant's R2 object via `MediaStorage.deleteObject`, then delete the
7
+ * `media_assets` row. Ordering matters — drop the objects first so a
8
+ * crash between the two leaves an orphan *row* (which the sweeper can
9
+ * reconcile from a bucket listing) rather than a dangling *reference*
10
+ * to bytes that are already gone.
11
+ *
12
+ * # Reference safety (v1 decision)
13
+ *
14
+ * Entries reference assets by id (`x-mantle-ref: media_assets`) with no
15
+ * reverse index. A full back-scan across every collection's JSON blobs
16
+ * to block/anonymise a referenced asset is O(all-content) per delete —
17
+ * too heavy for the admin path at this stage. v1 deletes cleanly and
18
+ * unconditionally; a stale reference resolves to null at render time
19
+ * (renderers already tolerate a missing asset). A cheap warn-on-
20
+ * reference (or a maintained reverse index) is a follow-up, not a
21
+ * blocker for shipping delete.
22
+ */
23
+ export declare class DeleteMediaAssetUseCase {
24
+ private readonly storage;
25
+ private readonly assets;
26
+ constructor(storage: MediaStorage, assets: MediaAssetRepository);
27
+ execute(id: string): Promise<{
28
+ deleted: true;
29
+ variantsRemoved: number;
30
+ }>;
31
+ }
32
+ //# sourceMappingURL=DeleteMediaAssetUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteMediaAssetUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/DeleteMediaAssetUseCase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,oBAAoB;IAGzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CAa/E"}
@@ -0,0 +1,42 @@
1
+ import { DiagnosticError } from "@aotter/mantle-spec";
2
+ import { mediaAssetNotFoundDiagnostic } from "./diagnostics.js";
3
+ /**
4
+ * `DeleteMediaAssetUseCase` — remove a committed asset (#434).
5
+ * Orchestrates the two-sided deletion the ports describe: delete every
6
+ * variant's R2 object via `MediaStorage.deleteObject`, then delete the
7
+ * `media_assets` row. Ordering matters — drop the objects first so a
8
+ * crash between the two leaves an orphan *row* (which the sweeper can
9
+ * reconcile from a bucket listing) rather than a dangling *reference*
10
+ * to bytes that are already gone.
11
+ *
12
+ * # Reference safety (v1 decision)
13
+ *
14
+ * Entries reference assets by id (`x-mantle-ref: media_assets`) with no
15
+ * reverse index. A full back-scan across every collection's JSON blobs
16
+ * to block/anonymise a referenced asset is O(all-content) per delete —
17
+ * too heavy for the admin path at this stage. v1 deletes cleanly and
18
+ * unconditionally; a stale reference resolves to null at render time
19
+ * (renderers already tolerate a missing asset). A cheap warn-on-
20
+ * reference (or a maintained reverse index) is a follow-up, not a
21
+ * blocker for shipping delete.
22
+ */
23
+ export class DeleteMediaAssetUseCase {
24
+ storage;
25
+ assets;
26
+ constructor(storage, assets) {
27
+ this.storage = storage;
28
+ this.assets = assets;
29
+ }
30
+ async execute(id) {
31
+ const asset = await this.assets.findById(id);
32
+ if (!asset) {
33
+ throw new DiagnosticError(mediaAssetNotFoundDiagnostic("usecase/DeleteMediaAsset", id));
34
+ }
35
+ for (const variant of asset.variants) {
36
+ await this.storage.deleteObject({ storageKey: variant.storageKey });
37
+ }
38
+ await this.assets.delete(id);
39
+ return { deleted: true, variantsRemoved: asset.variants.length };
40
+ }
41
+ }
42
+ //# sourceMappingURL=DeleteMediaAssetUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteMediaAssetUseCase.js","sourceRoot":"","sources":["../../../src/usecase/media/DeleteMediaAssetUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,uBAAuB;IAEf;IACA;IAFnB,YACmB,OAAqB,EACrB,MAA4B;QAD5B,YAAO,GAAP,OAAO,CAAc;QACrB,WAAM,GAAN,MAAM,CAAsB;IAC5C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,eAAe,CACvB,4BAA4B,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACnE,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
2
+ import type { MediaAsset } from "../../domain/port/MediaStorage.js";
3
+ /**
4
+ * `GetMediaAssetUseCase` — one committed asset by id (#434). Throws
5
+ * `MEDIA_ASSET_NOT_FOUND` (404 on the wire) when absent, so the admin
6
+ * detail/picker surfaces get a structured 404 rather than a bare null.
7
+ */
8
+ export declare class GetMediaAssetUseCase {
9
+ private readonly assets;
10
+ constructor(assets: MediaAssetRepository);
11
+ execute(id: string): Promise<MediaAsset>;
12
+ }
13
+ //# sourceMappingURL=GetMediaAssetUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetMediaAssetUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/GetMediaAssetUseCase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;GAIG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEnD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/C"}
@@ -0,0 +1,21 @@
1
+ import { DiagnosticError } from "@aotter/mantle-spec";
2
+ import { mediaAssetNotFoundDiagnostic } from "./diagnostics.js";
3
+ /**
4
+ * `GetMediaAssetUseCase` — one committed asset by id (#434). Throws
5
+ * `MEDIA_ASSET_NOT_FOUND` (404 on the wire) when absent, so the admin
6
+ * detail/picker surfaces get a structured 404 rather than a bare null.
7
+ */
8
+ export class GetMediaAssetUseCase {
9
+ assets;
10
+ constructor(assets) {
11
+ this.assets = assets;
12
+ }
13
+ async execute(id) {
14
+ const asset = await this.assets.findById(id);
15
+ if (!asset) {
16
+ throw new DiagnosticError(mediaAssetNotFoundDiagnostic("usecase/GetMediaAsset", id));
17
+ }
18
+ return asset;
19
+ }
20
+ }
21
+ //# sourceMappingURL=GetMediaAssetUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetMediaAssetUseCase.js","sourceRoot":"","sources":["../../../src/usecase/media/GetMediaAssetUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,eAAe,CACvB,4BAA4B,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { MediaAssetListResult, MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
2
+ import type { ListMediaAssetsRequest } from "../dto/media/index.js";
3
+ /**
4
+ * `ListMediaAssetsUseCase` — newest-first page of committed media
5
+ * assets for the admin media library (#434). Thin over
6
+ * `MediaAssetRepository.list`; the repo owns clamping + cursor
7
+ * round-tripping (shared with entry listing). No manifest lookup: the
8
+ * media library is a flat store, not a Schema collection.
9
+ */
10
+ export declare class ListMediaAssetsUseCase {
11
+ private readonly assets;
12
+ constructor(assets: MediaAssetRepository);
13
+ execute(request: ListMediaAssetsRequest): Promise<MediaAssetListResult>;
14
+ }
15
+ //# sourceMappingURL=ListMediaAssetsUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMediaAssetsUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/ListMediaAssetsUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEnD,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAO9E"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `ListMediaAssetsUseCase` — newest-first page of committed media
3
+ * assets for the admin media library (#434). Thin over
4
+ * `MediaAssetRepository.list`; the repo owns clamping + cursor
5
+ * round-tripping (shared with entry listing). No manifest lookup: the
6
+ * media library is a flat store, not a Schema collection.
7
+ */
8
+ export class ListMediaAssetsUseCase {
9
+ assets;
10
+ constructor(assets) {
11
+ this.assets = assets;
12
+ }
13
+ async execute(request) {
14
+ return this.assets.list({
15
+ limit: request.limit,
16
+ cursor: request.cursor,
17
+ search: request.search,
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=ListMediaAssetsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMediaAssetsUseCase.js","sourceRoot":"","sources":["../../../src/usecase/media/ListMediaAssetsUseCase.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
2
+ import type { MediaAsset } from "../../domain/port/MediaStorage.js";
3
+ import type { UpdateMediaAssetRequest } from "../dto/media/index.js";
4
+ /**
5
+ * `UpdateMediaAssetUseCase` — patch alt/caption on a committed asset
6
+ * (#434). Variants/mime/bytes/createdAt are frozen at commit; only the
7
+ * two operator-authored text fields are mutable here. `save` upserts by
8
+ * id (the commit use case shares the same writer), so the read →
9
+ * merge → save round-trips the full row while touching only alt/caption.
10
+ *
11
+ * A field left `undefined` in the request is preserved; an empty string
12
+ * clears it. Rejects `MEDIA_ASSET_NOT_FOUND` when the id is absent so a
13
+ * PATCH against a deleted asset doesn't silently re-create a partial row.
14
+ */
15
+ export declare class UpdateMediaAssetUseCase {
16
+ private readonly assets;
17
+ constructor(assets: MediaAssetRepository);
18
+ execute(request: UpdateMediaAssetRequest): Promise<MediaAsset>;
19
+ }
20
+ //# sourceMappingURL=UpdateMediaAssetUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateMediaAssetUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/UpdateMediaAssetUseCase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE;;;;;;;;;;GAUG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEnD,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;CAerE"}
@@ -0,0 +1,33 @@
1
+ import { DiagnosticError } from "@aotter/mantle-spec";
2
+ import { mediaAssetNotFoundDiagnostic } from "./diagnostics.js";
3
+ /**
4
+ * `UpdateMediaAssetUseCase` — patch alt/caption on a committed asset
5
+ * (#434). Variants/mime/bytes/createdAt are frozen at commit; only the
6
+ * two operator-authored text fields are mutable here. `save` upserts by
7
+ * id (the commit use case shares the same writer), so the read →
8
+ * merge → save round-trips the full row while touching only alt/caption.
9
+ *
10
+ * A field left `undefined` in the request is preserved; an empty string
11
+ * clears it. Rejects `MEDIA_ASSET_NOT_FOUND` when the id is absent so a
12
+ * PATCH against a deleted asset doesn't silently re-create a partial row.
13
+ */
14
+ export class UpdateMediaAssetUseCase {
15
+ assets;
16
+ constructor(assets) {
17
+ this.assets = assets;
18
+ }
19
+ async execute(request) {
20
+ const existing = await this.assets.findById(request.id);
21
+ if (!existing) {
22
+ throw new DiagnosticError(mediaAssetNotFoundDiagnostic("usecase/UpdateMediaAsset", request.id));
23
+ }
24
+ const next = {
25
+ ...existing,
26
+ alt: request.alt !== undefined ? request.alt : existing.alt,
27
+ caption: request.caption !== undefined ? request.caption : existing.caption,
28
+ };
29
+ await this.assets.save(next);
30
+ return next;
31
+ }
32
+ }
33
+ //# sourceMappingURL=UpdateMediaAssetUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateMediaAssetUseCase.js","sourceRoot":"","sources":["../../../src/usecase/media/UpdateMediaAssetUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,uBAAuB;IACL;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,KAAK,CAAC,OAAO,CAAC,OAAgC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CACvB,4BAA4B,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,CACrE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAe;YACvB,GAAG,QAAQ;YACX,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;YAC3D,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO;SAC5E,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,4 +1,8 @@
1
1
  export { CreateMediaUploadUseCase } from "./CreateMediaUploadUseCase.js";
2
2
  export { CommitMediaUploadUseCase } from "./CommitMediaUploadUseCase.js";
3
+ export { ListMediaAssetsUseCase } from "./ListMediaAssetsUseCase.js";
4
+ export { GetMediaAssetUseCase } from "./GetMediaAssetUseCase.js";
5
+ export { UpdateMediaAssetUseCase } from "./UpdateMediaAssetUseCase.js";
6
+ export { DeleteMediaAssetUseCase } from "./DeleteMediaAssetUseCase.js";
3
7
  export { DEFAULT_MAX_BYTES, MEDIA_MIME_ALLOWLIST, MEDIA_SVG_MIME, PENDING_UPLOAD_KV_PREFIX, PENDING_UPLOAD_KV_TTL_SECONDS, UPLOAD_URL_TTL_SECONDS, extensionForMime, isAllowedMime, type MediaMimeType, } from "./mediaAllowlist.js";
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  export { CreateMediaUploadUseCase } from "./CreateMediaUploadUseCase.js";
2
2
  export { CommitMediaUploadUseCase } from "./CommitMediaUploadUseCase.js";
3
+ export { ListMediaAssetsUseCase } from "./ListMediaAssetsUseCase.js";
4
+ export { GetMediaAssetUseCase } from "./GetMediaAssetUseCase.js";
5
+ export { UpdateMediaAssetUseCase } from "./UpdateMediaAssetUseCase.js";
6
+ export { DeleteMediaAssetUseCase } from "./DeleteMediaAssetUseCase.js";
3
7
  export { DEFAULT_MAX_BYTES, MEDIA_MIME_ALLOWLIST, MEDIA_SVG_MIME, PENDING_UPLOAD_KV_PREFIX, PENDING_UPLOAD_KV_TTL_SECONDS, UPLOAD_URL_TTL_SECONDS, extensionForMime, isAllowedMime, } from "./mediaAllowlist.js";
4
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GAEd,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GAEd,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aotter/mantle-runtime",
3
- "version": "0.0.11-alpha.41",
3
+ "version": "0.0.11-alpha.43",
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,7 +29,7 @@
29
29
  "README.md"
30
30
  ],
31
31
  "dependencies": {
32
- "@aotter/mantle-spec": "0.0.11-alpha.41"
32
+ "@aotter/mantle-spec": "0.0.11-alpha.43"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "zod": "^4.0.0"