@aotter/mantle-runtime 0.1.4 → 0.1.5-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MantleRuntime.d.ts +11 -0
- package/dist/MantleRuntime.d.ts.map +1 -1
- package/dist/MantleRuntime.js +34 -3
- package/dist/MantleRuntime.js.map +1 -1
- package/dist/domain/model/HandlerContext.d.ts +13 -0
- package/dist/domain/model/HandlerContext.d.ts.map +1 -1
- package/dist/domain/port/AtomicEntryWriter.d.ts +23 -0
- package/dist/domain/port/AtomicEntryWriter.d.ts.map +1 -0
- package/dist/domain/port/AtomicEntryWriter.js +2 -0
- package/dist/domain/port/AtomicEntryWriter.js.map +1 -0
- package/dist/domain/port/DatabaseDriver.d.ts +2 -0
- package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
- package/dist/domain/port/ExpirySweeper.d.ts +19 -0
- package/dist/domain/port/ExpirySweeper.d.ts.map +1 -0
- package/dist/domain/port/ExpirySweeper.js +2 -0
- package/dist/domain/port/ExpirySweeper.js.map +1 -0
- package/dist/domain/port/MantleStorageAdapter.d.ts +8 -0
- package/dist/domain/port/MantleStorageAdapter.d.ts.map +1 -1
- package/dist/domain/port/RunObservationStore.d.ts +26 -0
- package/dist/domain/port/RunObservationStore.d.ts.map +1 -0
- package/dist/domain/port/RunObservationStore.js +2 -0
- package/dist/domain/port/RunObservationStore.js.map +1 -0
- package/dist/domain/service/RuntimePlanCompiler.d.ts +16 -2
- package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -1
- package/dist/domain/service/RuntimePlanCompiler.js +13 -2
- package/dist/domain/service/RuntimePlanCompiler.js.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.d.ts +2 -0
- package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.js +2 -1
- package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/bootState.d.ts +1 -1
- package/dist/infrastructure/boot/bootState.d.ts.map +1 -1
- package/dist/infrastructure/boot/bootState.js +19 -4
- package/dist/infrastructure/boot/bootState.js.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +28 -0
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +10 -2
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +123 -11
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseRunObservationStore.d.ts +14 -0
- package/dist/infrastructure/persistence/DatabaseRunObservationStore.d.ts.map +1 -0
- package/dist/infrastructure/persistence/DatabaseRunObservationStore.js +68 -0
- package/dist/infrastructure/persistence/DatabaseRunObservationStore.js.map +1 -0
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts +5 -0
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js +13 -0
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +5 -3
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +49 -16
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -1
- package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts +17 -1
- package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts.map +1 -1
- package/dist/infrastructure/storage/SqliteMigrationArtifact.js +62 -6
- package/dist/infrastructure/storage/SqliteMigrationArtifact.js.map +1 -1
- package/dist/infrastructure/storage/SqliteSchemaTables.d.ts +4 -0
- package/dist/infrastructure/storage/SqliteSchemaTables.d.ts.map +1 -1
- package/dist/infrastructure/storage/SqliteSchemaTables.js +16 -2
- package/dist/infrastructure/storage/SqliteSchemaTables.js.map +1 -1
- package/dist/infrastructure/storage/SqliteViewCompiler.d.ts +1 -1
- package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -1
- package/dist/infrastructure/storage/SqliteViewCompiler.js +11 -2
- package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.js +15 -0
- package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -1
- package/dist/usecase/content/AtomicEntryWriteUseCase.d.ts +37 -0
- package/dist/usecase/content/AtomicEntryWriteUseCase.d.ts.map +1 -0
- package/dist/usecase/content/AtomicEntryWriteUseCase.js +108 -0
- package/dist/usecase/content/AtomicEntryWriteUseCase.js.map +1 -0
- package/dist/usecase/content/CreateDraftUseCase.d.ts +5 -0
- package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.js +8 -3
- package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.d.ts +6 -0
- package/dist/usecase/content/DeleteEntryUseCase.d.ts.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.js +12 -8
- package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.d.ts +9 -0
- package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.js +15 -9
- package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
- package/dist/usecase/procedure/InvokeProcedureUseCase.d.ts +4 -1
- package/dist/usecase/procedure/InvokeProcedureUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeProcedureUseCase.js +10 -2
- package/dist/usecase/procedure/InvokeProcedureUseCase.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,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,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;GAGG;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;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBALT,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAC/B,SAAS,qBAA2B;IAGjD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,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,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;GAGG;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;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBALT,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAC/B,SAAS,qBAA2B;IAGjD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKvD,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,eAAe,CAAC;CAqCrJ"}
|
|
@@ -23,12 +23,16 @@ export class CreateDraftUseCase {
|
|
|
23
23
|
this.validator = validator;
|
|
24
24
|
}
|
|
25
25
|
async execute(request) {
|
|
26
|
+
const args = await this.prepare(request);
|
|
27
|
+
return withConflictDiagnostic(`usecase/CreateDraft/${request.collection}`, () => this.entries.create(args));
|
|
28
|
+
}
|
|
29
|
+
async prepare(request, options = {}) {
|
|
26
30
|
const opPath = `usecase/CreateDraft/${request.collection}`;
|
|
27
31
|
const schema = this.schemas.get(request.collection);
|
|
28
32
|
if (!schema) {
|
|
29
33
|
throw new DiagnosticError(schemaUnknownDiagnostic(opPath, request.collection, [...this.schemas.keys()]));
|
|
30
34
|
}
|
|
31
|
-
const id = this.idgen.next();
|
|
35
|
+
const id = options.id ?? this.idgen.next();
|
|
32
36
|
const now = this.clock.now();
|
|
33
37
|
const ctx = authoringContext(request.ctx, request.authorId);
|
|
34
38
|
const lifecycle = resolveLifecycle(schema);
|
|
@@ -42,8 +46,9 @@ export class CreateDraftUseCase {
|
|
|
42
46
|
siteConfig: this.siteConfig,
|
|
43
47
|
// Real drafts save incomplete; operational records are live immediately.
|
|
44
48
|
partial: lifecycle !== "operational",
|
|
49
|
+
skipUniquePreflight: options.skipUniquePreflight,
|
|
45
50
|
});
|
|
46
|
-
return
|
|
51
|
+
return {
|
|
47
52
|
id,
|
|
48
53
|
collection: request.collection,
|
|
49
54
|
// Operational records have no publish step —
|
|
@@ -54,7 +59,7 @@ export class CreateDraftUseCase {
|
|
|
54
59
|
now,
|
|
55
60
|
hookContext: ctx,
|
|
56
61
|
originalInput: request.originalInput,
|
|
57
|
-
}
|
|
62
|
+
};
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
65
|
//# sourceMappingURL=CreateDraftUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type SchemaManifest } from "@aotter/mantle-spec";
|
|
2
2
|
import type { EntryRepository } from "../../domain/port/EntryRepository.js";
|
|
3
|
+
import type { DeleteEntryArgs } from "../../domain/port/EntryRepository.js";
|
|
4
|
+
import type { EntryRow } from "../../domain/model/EntryRow.js";
|
|
3
5
|
import type { DeleteEntryRequest, DeleteEntryResponse } from "../dto/content/index.js";
|
|
4
6
|
/**
|
|
5
7
|
* `DeleteEntryUseCase` — permanently delete an entry. Distinct from
|
|
@@ -16,5 +18,9 @@ export declare class DeleteEntryUseCase {
|
|
|
16
18
|
private readonly schemas;
|
|
17
19
|
constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>);
|
|
18
20
|
execute(request: DeleteEntryRequest): Promise<DeleteEntryResponse>;
|
|
21
|
+
prepare(request: DeleteEntryRequest): Promise<{
|
|
22
|
+
readonly args: DeleteEntryArgs;
|
|
23
|
+
readonly previous: EntryRow;
|
|
24
|
+
}>;
|
|
19
25
|
}
|
|
20
26
|
//# sourceMappingURL=DeleteEntryUseCase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteEntryUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/DeleteEntryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"DeleteEntryUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/DeleteEntryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;GASG;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,mBAAmB,CAAC;IAKlE,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;CAuBrH"}
|
|
@@ -19,6 +19,10 @@ export class DeleteEntryUseCase {
|
|
|
19
19
|
this.schemas = schemas;
|
|
20
20
|
}
|
|
21
21
|
async execute(request) {
|
|
22
|
+
const { args } = await this.prepare(request);
|
|
23
|
+
return withConflictDiagnostic(`usecase/DeleteEntry/${request.id}`, () => this.entries.delete(args));
|
|
24
|
+
}
|
|
25
|
+
async prepare(request) {
|
|
22
26
|
const opPath = `usecase/DeleteEntry/${request.id}`;
|
|
23
27
|
const existing = await this.entries.get(request);
|
|
24
28
|
if (!existing) {
|
|
@@ -30,14 +34,14 @@ export class DeleteEntryUseCase {
|
|
|
30
34
|
expectedCollection: request.collection,
|
|
31
35
|
opPath,
|
|
32
36
|
});
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
return { previous: existing, args: {
|
|
38
|
+
id: request.id,
|
|
39
|
+
collection: request.collection,
|
|
40
|
+
expectedStatus: existing.status,
|
|
41
|
+
expectedVersion: existing.version,
|
|
42
|
+
hookContext: request.ctx,
|
|
43
|
+
originalInput: request.originalInput,
|
|
44
|
+
} };
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
//# sourceMappingURL=DeleteEntryUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteEntryUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/DeleteEntryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DeleteEntryUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/DeleteEntryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AAI3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAKnF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;;;;;GASG;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,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,sBAAsB,CAAC,uBAAuB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CACvB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAC3D,CAAC;QACJ,CAAC;QACD,oBAAoB,CAAC;YACnB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;YAC5C,kBAAkB,EAAE,OAAO,CAAC,UAAU;YACtC,MAAM;SACP,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,cAAc,EAAE,QAAQ,CAAC,MAAM;gBAC/B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,WAAW,EAAE,OAAO,CAAC,GAAG;gBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;aACvC,EAAE,CAAC;IACN,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ import { EntryDataValidator, type SchemaManifest } from "@aotter/mantle-spec";
|
|
|
2
2
|
import type { EntryRow } from "../../domain/model/EntryRow.js";
|
|
3
3
|
import type { Clock } from "../../domain/port/Clock.js";
|
|
4
4
|
import type { EntryRepository } from "../../domain/port/EntryRepository.js";
|
|
5
|
+
import type { UpdateEntryArgs } from "../../domain/port/EntryRepository.js";
|
|
5
6
|
import type { LocalePolicyReader } from "../../domain/port/SiteConfigRepository.js";
|
|
6
7
|
import type { UpdateDraftRequest } from "../dto/content/index.js";
|
|
7
8
|
/**
|
|
@@ -17,5 +18,13 @@ export declare class UpdateDraftUseCase {
|
|
|
17
18
|
private readonly validator;
|
|
18
19
|
constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>, clock: Clock, siteConfig?: LocalePolicyReader | undefined, validator?: EntryDataValidator);
|
|
19
20
|
execute(request: UpdateDraftRequest): Promise<EntryRow>;
|
|
21
|
+
prepare(request: UpdateDraftRequest, options?: {
|
|
22
|
+
readonly skipUniquePreflight?: boolean;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
readonly args: UpdateEntryArgs & {
|
|
25
|
+
readonly expectedStatus: EntryRow["status"];
|
|
26
|
+
};
|
|
27
|
+
readonly previous: EntryRow;
|
|
28
|
+
}>;
|
|
20
29
|
}
|
|
21
30
|
//# sourceMappingURL=UpdateDraftUseCase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAGlB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,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,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;;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;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAJT,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAC/B,SAAS,qBAA2B;IAGjD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"UpdateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAGlB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,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,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;;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;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAJT,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAC/B,SAAS,qBAA2B;IAGjD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKvD,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC;QAC5G,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG;YAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAAE,CAAC;QACjF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC7B,CAAC;CAmEH"}
|
|
@@ -22,6 +22,10 @@ export class UpdateDraftUseCase {
|
|
|
22
22
|
this.validator = validator;
|
|
23
23
|
}
|
|
24
24
|
async execute(request) {
|
|
25
|
+
const { args } = await this.prepare(request);
|
|
26
|
+
return withConflictDiagnostic(`usecase/UpdateDraft/${request.id}`, () => this.entries.update(args));
|
|
27
|
+
}
|
|
28
|
+
async prepare(request, options = {}) {
|
|
25
29
|
const opPath = `usecase/UpdateDraft/${request.id}`;
|
|
26
30
|
const existing = await this.entries.get(request);
|
|
27
31
|
if (!existing) {
|
|
@@ -71,16 +75,18 @@ export class UpdateDraftUseCase {
|
|
|
71
75
|
siteConfig: this.siteConfig,
|
|
72
76
|
// Real drafts save incomplete; operational records are live immediately.
|
|
73
77
|
partial: lifecycle !== "operational",
|
|
78
|
+
skipUniquePreflight: options.skipUniquePreflight,
|
|
74
79
|
});
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
return { previous: existing, args: {
|
|
81
|
+
id: request.id,
|
|
82
|
+
collection: request.collection,
|
|
83
|
+
expectedVersion: request.expectedVersion,
|
|
84
|
+
expectedStatus: existing.status,
|
|
85
|
+
data,
|
|
86
|
+
now,
|
|
87
|
+
hookContext: ctx,
|
|
88
|
+
originalInput: request.originalInput,
|
|
89
|
+
} };
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
//# sourceMappingURL=UpdateDraftUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"UpdateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { type Diagnostic, type ProcedureManifest } from "@aotter/mantle-spec";
|
|
|
2
2
|
import type { HandlerRegistry } from "../../domain/port/HandlerRegistry.js";
|
|
3
3
|
import type { InvokeProcedureRequest, InvokeProcedureResponse } from "../dto/procedure/index.js";
|
|
4
4
|
import type { InvokeBuiltinUseCase } from "./InvokeBuiltinUseCase.js";
|
|
5
|
+
import type { HandlerContext } from "../../domain/model/HandlerContext.js";
|
|
5
6
|
/**
|
|
6
7
|
* `InvokeProcedureUseCase` — in-process invocation of a Procedure.
|
|
7
8
|
* HTTP-agnostic — the adapter's mount layer wraps this to map to/from
|
|
@@ -40,9 +41,11 @@ export declare class InvokeProcedureUseCase {
|
|
|
40
41
|
private readonly registry;
|
|
41
42
|
private readonly builtin?;
|
|
42
43
|
private readonly proceduresByName;
|
|
44
|
+
private readonly atomicWrites?;
|
|
45
|
+
private readonly expirySweep?;
|
|
43
46
|
private readonly inputCache;
|
|
44
47
|
private readonly outputCache;
|
|
45
|
-
constructor(registry: HandlerRegistry, builtin?: InvokeBuiltinUseCase | undefined, proceduresByName?: ReadonlyMap<string, ProcedureManifest
|
|
48
|
+
constructor(registry: HandlerRegistry, builtin?: InvokeBuiltinUseCase | undefined, proceduresByName?: ReadonlyMap<string, ProcedureManifest>, atomicWrites?: HandlerContext["writeAtomically"], expirySweep?: HandlerContext["sweepExpired"]);
|
|
46
49
|
execute<O = unknown>(request: InvokeProcedureRequest): Promise<InvokeProcedureResponse<O>>;
|
|
47
50
|
private executeInternal;
|
|
48
51
|
private compileInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeProcedureUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeProcedureUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeProcedureUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeProcedureUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,KAAK;aACV,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU;CAInD;AAED,qBAAa,sBAAsB;IAW/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAR/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGvC,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,oBAAoB,YAAA,EAC9B,gBAAgB,GAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAa,EACpE,YAAY,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAChD,WAAW,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC;IAGzD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAIlF,eAAe;IAkM7B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -42,6 +42,8 @@ export class InvokeProcedureUseCase {
|
|
|
42
42
|
registry;
|
|
43
43
|
builtin;
|
|
44
44
|
proceduresByName;
|
|
45
|
+
atomicWrites;
|
|
46
|
+
expirySweep;
|
|
45
47
|
// Per-Procedure compiled zod schemas. zod composition is pure
|
|
46
48
|
// object-tree assembly (no `new Function`) — Workers-CSP-safe.
|
|
47
49
|
// Cached per use-case instance because `jsonSchemaToZod` walks the
|
|
@@ -50,10 +52,12 @@ export class InvokeProcedureUseCase {
|
|
|
50
52
|
// because the runtime owns the use case instance.
|
|
51
53
|
inputCache = new Map();
|
|
52
54
|
outputCache = new Map();
|
|
53
|
-
constructor(registry, builtin, proceduresByName = new Map()) {
|
|
55
|
+
constructor(registry, builtin, proceduresByName = new Map(), atomicWrites, expirySweep) {
|
|
54
56
|
this.registry = registry;
|
|
55
57
|
this.builtin = builtin;
|
|
56
58
|
this.proceduresByName = proceduresByName;
|
|
59
|
+
this.atomicWrites = atomicWrites;
|
|
60
|
+
this.expirySweep = expirySweep;
|
|
57
61
|
}
|
|
58
62
|
async execute(request) {
|
|
59
63
|
return this.executeInternal(request, true);
|
|
@@ -195,7 +199,11 @@ export class InvokeProcedureUseCase {
|
|
|
195
199
|
}),
|
|
196
200
|
};
|
|
197
201
|
}
|
|
198
|
-
result = await handler(inputResult.data,
|
|
202
|
+
result = await handler(inputResult.data, {
|
|
203
|
+
...ctx,
|
|
204
|
+
writeAtomically: allowGuard ? this.atomicWrites : undefined,
|
|
205
|
+
sweepExpired: allowGuard ? this.expirySweep : undefined,
|
|
206
|
+
});
|
|
199
207
|
}
|
|
200
208
|
}
|
|
201
209
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeProcedureUseCase.js","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeProcedureUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,eAAe,GAIhB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeProcedureUseCase.js","sourceRoot":"","sources":["../../../src/usecase/procedure/InvokeProcedureUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aotter/mantle-runtime",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5-alpha.1",
|
|
4
4
|
"description": "Headless runtime engine for Mantle: entry operations, procedures, views, triggers, lifecycle, and adapter-agnostic ports.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://mantle.tools/",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"README.md"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@aotter/mantle-spec": "0.1.
|
|
40
|
+
"@aotter/mantle-spec": "0.1.5-alpha.1"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"zod": "^4.5.0"
|