@aphexcms/cms-core 9.5.2 → 9.7.0
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/api/documents.d.ts +28 -0
- package/dist/api/documents.d.ts.map +1 -1
- package/dist/api/documents.js +18 -0
- package/dist/api/schemas/documents.d.ts +19 -0
- package/dist/api/schemas/documents.d.ts.map +1 -1
- package/dist/api/schemas/documents.js +18 -0
- package/dist/client/api.d.ts +2 -0
- package/dist/client/api.d.ts.map +1 -0
- package/dist/client/api.js +11 -0
- package/dist/client/ui.d.ts +25 -0
- package/dist/client/ui.d.ts.map +1 -0
- package/dist/client/ui.js +53 -0
- package/dist/components/admin/ActivityView.svelte +227 -0
- package/dist/components/admin/ActivityView.svelte.d.ts +4 -0
- package/dist/components/admin/ActivityView.svelte.d.ts.map +1 -0
- package/dist/components/admin/DocumentEditor.svelte +197 -11
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/ScheduleDialog.svelte +174 -0
- package/dist/components/admin/ScheduleDialog.svelte.d.ts +20 -0
- package/dist/components/admin/ScheduleDialog.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/ArrayField.svelte +10 -2
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
- package/dist/components/layout/OrganizationSwitcher.svelte +3 -3
- package/dist/components/layout/sidebar/NavUser.svelte +5 -5
- package/dist/db/interfaces/events.d.ts +55 -0
- package/dist/db/interfaces/events.d.ts.map +1 -0
- package/dist/db/interfaces/events.js +1 -0
- package/dist/db/interfaces/index.d.ts +10 -2
- package/dist/db/interfaces/index.d.ts.map +1 -1
- package/dist/db/interfaces/plugin-storage.d.ts +39 -0
- package/dist/db/interfaces/plugin-storage.d.ts.map +1 -0
- package/dist/db/interfaces/plugin-storage.js +1 -0
- package/dist/events/catalog.d.ts +8 -0
- package/dist/events/catalog.d.ts.map +1 -0
- package/dist/events/catalog.js +11 -0
- package/dist/events/consumer.d.ts +79 -0
- package/dist/events/consumer.d.ts.map +1 -0
- package/dist/events/consumer.js +76 -0
- package/dist/events/define-event.d.ts +17 -0
- package/dist/events/define-event.d.ts.map +1 -0
- package/dist/events/define-event.js +7 -0
- package/dist/events/emit.d.ts +11 -0
- package/dist/events/emit.d.ts.map +1 -0
- package/dist/events/emit.js +20 -0
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/field-validation/rule.d.ts.map +1 -1
- package/dist/field-validation/rule.js +15 -0
- package/dist/field-validation/utils.d.ts.map +1 -1
- package/dist/field-validation/utils.js +7 -1
- package/dist/forms/define-form.d.ts +25 -0
- package/dist/forms/define-form.d.ts.map +1 -0
- package/dist/forms/define-form.js +22 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +5 -0
- package/dist/forms/types.d.ts +49 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +1 -0
- package/dist/forms/validate.d.ts +9 -0
- package/dist/forms/validate.d.ts.map +1 -0
- package/dist/forms/validate.js +18 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +15 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/jobs/document-jobs.d.ts +27 -0
- package/dist/jobs/document-jobs.d.ts.map +1 -0
- package/dist/jobs/document-jobs.js +42 -0
- package/dist/jobs/embedded-runner.d.ts +25 -0
- package/dist/jobs/embedded-runner.d.ts.map +1 -0
- package/dist/jobs/embedded-runner.js +46 -0
- package/dist/jobs/index.d.ts +7 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +8 -0
- package/dist/jobs/relay.d.ts +27 -0
- package/dist/jobs/relay.d.ts.map +1 -0
- package/dist/jobs/relay.js +60 -0
- package/dist/jobs/run-batch.d.ts +52 -0
- package/dist/jobs/run-batch.d.ts.map +1 -0
- package/dist/jobs/run-batch.js +61 -0
- package/dist/jobs/run-due-jobs.d.ts +30 -0
- package/dist/jobs/run-due-jobs.d.ts.map +1 -0
- package/dist/jobs/run-due-jobs.js +69 -0
- package/dist/jobs/types.d.ts +18 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +1 -0
- package/dist/lib/api/documents.d.ts +28 -0
- package/dist/lib/api/documents.d.ts.map +1 -1
- package/dist/lib/api/documents.js +18 -0
- package/dist/lib/api/documents.js.map +1 -1
- package/dist/lib/api/schemas/documents.d.ts +19 -0
- package/dist/lib/api/schemas/documents.d.ts.map +1 -1
- package/dist/lib/api/schemas/documents.js +18 -0
- package/dist/lib/api/schemas/documents.js.map +1 -1
- package/dist/lib/client/api.d.ts +2 -0
- package/dist/lib/client/api.d.ts.map +1 -0
- package/dist/lib/client/api.js +12 -0
- package/dist/lib/client/api.js.map +1 -0
- package/dist/lib/client/ui.d.ts +25 -0
- package/dist/lib/client/ui.d.ts.map +1 -0
- package/dist/lib/client/ui.js +54 -0
- package/dist/lib/client/ui.js.map +1 -0
- package/dist/lib/db/interfaces/events.d.ts +55 -0
- package/dist/lib/db/interfaces/events.d.ts.map +1 -0
- package/dist/lib/db/interfaces/events.js +2 -0
- package/dist/lib/db/interfaces/events.js.map +1 -0
- package/dist/lib/db/interfaces/index.d.ts +10 -2
- package/dist/lib/db/interfaces/index.d.ts.map +1 -1
- package/dist/lib/db/interfaces/plugin-storage.d.ts +39 -0
- package/dist/lib/db/interfaces/plugin-storage.d.ts.map +1 -0
- package/dist/lib/db/interfaces/plugin-storage.js +2 -0
- package/dist/lib/db/interfaces/plugin-storage.js.map +1 -0
- package/dist/lib/events/catalog.d.ts +8 -0
- package/dist/lib/events/catalog.d.ts.map +1 -0
- package/dist/lib/events/catalog.js +12 -0
- package/dist/lib/events/catalog.js.map +1 -0
- package/dist/lib/events/consumer.d.ts +79 -0
- package/dist/lib/events/consumer.d.ts.map +1 -0
- package/dist/lib/events/consumer.js +77 -0
- package/dist/lib/events/consumer.js.map +1 -0
- package/dist/lib/events/define-event.d.ts +17 -0
- package/dist/lib/events/define-event.d.ts.map +1 -0
- package/dist/lib/events/define-event.js +8 -0
- package/dist/lib/events/define-event.js.map +1 -0
- package/dist/lib/events/emit.d.ts +11 -0
- package/dist/lib/events/emit.d.ts.map +1 -0
- package/dist/lib/events/emit.js +21 -0
- package/dist/lib/events/emit.js.map +1 -0
- package/dist/lib/events/index.d.ts +4 -0
- package/dist/lib/events/index.d.ts.map +1 -0
- package/dist/lib/events/index.js +4 -0
- package/dist/lib/events/index.js.map +1 -0
- package/dist/lib/field-validation/rule.d.ts.map +1 -1
- package/dist/lib/field-validation/rule.js +15 -0
- package/dist/lib/field-validation/rule.js.map +1 -1
- package/dist/lib/field-validation/utils.d.ts.map +1 -1
- package/dist/lib/field-validation/utils.js +7 -1
- package/dist/lib/field-validation/utils.js.map +1 -1
- package/dist/lib/forms/define-form.d.ts +25 -0
- package/dist/lib/forms/define-form.d.ts.map +1 -0
- package/dist/lib/forms/define-form.js +23 -0
- package/dist/lib/forms/define-form.js.map +1 -0
- package/dist/lib/forms/index.d.ts +4 -0
- package/dist/lib/forms/index.d.ts.map +1 -0
- package/dist/lib/forms/index.js +6 -0
- package/dist/lib/forms/index.js.map +1 -0
- package/dist/lib/forms/types.d.ts +49 -0
- package/dist/lib/forms/types.d.ts.map +1 -0
- package/dist/lib/forms/types.js +2 -0
- package/dist/lib/forms/types.js.map +1 -0
- package/dist/lib/forms/validate.d.ts +9 -0
- package/dist/lib/forms/validate.d.ts.map +1 -0
- package/dist/lib/forms/validate.js +19 -0
- package/dist/lib/forms/validate.js.map +1 -0
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +15 -0
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +6 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/jobs/document-jobs.d.ts +27 -0
- package/dist/lib/jobs/document-jobs.d.ts.map +1 -0
- package/dist/lib/jobs/document-jobs.js +43 -0
- package/dist/lib/jobs/document-jobs.js.map +1 -0
- package/dist/lib/jobs/embedded-runner.d.ts +25 -0
- package/dist/lib/jobs/embedded-runner.d.ts.map +1 -0
- package/dist/lib/jobs/embedded-runner.js +47 -0
- package/dist/lib/jobs/embedded-runner.js.map +1 -0
- package/dist/lib/jobs/index.d.ts +7 -0
- package/dist/lib/jobs/index.d.ts.map +1 -0
- package/dist/lib/jobs/index.js +9 -0
- package/dist/lib/jobs/index.js.map +1 -0
- package/dist/lib/jobs/relay.d.ts +27 -0
- package/dist/lib/jobs/relay.d.ts.map +1 -0
- package/dist/lib/jobs/relay.js +61 -0
- package/dist/lib/jobs/relay.js.map +1 -0
- package/dist/lib/jobs/run-batch.d.ts +52 -0
- package/dist/lib/jobs/run-batch.d.ts.map +1 -0
- package/dist/lib/jobs/run-batch.js +62 -0
- package/dist/lib/jobs/run-batch.js.map +1 -0
- package/dist/lib/jobs/run-due-jobs.d.ts +30 -0
- package/dist/lib/jobs/run-due-jobs.d.ts.map +1 -0
- package/dist/lib/jobs/run-due-jobs.js +70 -0
- package/dist/lib/jobs/run-due-jobs.js.map +1 -0
- package/dist/lib/jobs/types.d.ts +18 -0
- package/dist/lib/jobs/types.d.ts.map +1 -0
- package/dist/lib/jobs/types.js +2 -0
- package/dist/lib/jobs/types.js.map +1 -0
- package/dist/lib/local-api/collection-api.d.ts +42 -0
- package/dist/lib/local-api/collection-api.d.ts.map +1 -1
- package/dist/lib/local-api/collection-api.js +200 -25
- package/dist/lib/local-api/collection-api.js.map +1 -1
- package/dist/lib/local-api/hooks.d.ts +7 -0
- package/dist/lib/local-api/hooks.d.ts.map +1 -0
- package/dist/lib/local-api/hooks.js +20 -0
- package/dist/lib/local-api/hooks.js.map +1 -0
- package/dist/lib/mcp/tools.js +1 -1
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/plugins/resolver.d.ts +12 -1
- package/dist/lib/plugins/resolver.d.ts.map +1 -1
- package/dist/lib/plugins/resolver.js +4 -1
- package/dist/lib/plugins/resolver.js.map +1 -1
- package/dist/lib/plugins/types.d.ts +47 -2
- package/dist/lib/plugins/types.d.ts.map +1 -1
- package/dist/lib/plugins/types.js.map +1 -1
- package/dist/lib/schema-utils/define-type.d.ts +32 -0
- package/dist/lib/schema-utils/define-type.d.ts.map +1 -0
- package/dist/lib/schema-utils/define-type.js +41 -0
- package/dist/lib/schema-utils/define-type.js.map +1 -0
- package/dist/lib/schema-utils/index.d.ts +1 -0
- package/dist/lib/schema-utils/index.d.ts.map +1 -1
- package/dist/lib/schema-utils/index.js +1 -0
- package/dist/lib/schema-utils/index.js.map +1 -1
- package/dist/lib/server/api/index.d.ts.map +1 -1
- package/dist/lib/server/api/index.js +8 -0
- package/dist/lib/server/api/index.js.map +1 -1
- package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents-publish.js +110 -0
- package/dist/lib/server/api/routes/documents-publish.js.map +1 -1
- package/dist/lib/server/api/routes/jobs.d.ts +4 -0
- package/dist/lib/server/api/routes/jobs.d.ts.map +1 -0
- package/dist/lib/server/api/routes/jobs.js +93 -0
- package/dist/lib/server/api/routes/jobs.js.map +1 -0
- package/dist/lib/server/api/routes/workers-run.d.ts +4 -0
- package/dist/lib/server/api/routes/workers-run.d.ts.map +1 -0
- package/dist/lib/server/api/routes/workers-run.js +41 -0
- package/dist/lib/server/api/routes/workers-run.js.map +1 -0
- package/dist/lib/server/index.d.ts +1 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +2 -0
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +16 -0
- package/dist/lib/services/version-service.d.ts.map +1 -1
- package/dist/lib/services/version-service.js +72 -48
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/types/config.d.ts +43 -0
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/types/events.d.ts +134 -0
- package/dist/lib/types/events.d.ts.map +1 -0
- package/dist/lib/types/events.js +4 -0
- package/dist/lib/types/events.js.map +1 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js +1 -0
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/schemas.d.ts +71 -0
- package/dist/lib/types/schemas.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +1 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/local-api/collection-api.d.ts +42 -0
- package/dist/local-api/collection-api.d.ts.map +1 -1
- package/dist/local-api/collection-api.js +200 -25
- package/dist/local-api/hooks.d.ts +7 -0
- package/dist/local-api/hooks.d.ts.map +1 -0
- package/dist/local-api/hooks.js +19 -0
- package/dist/mcp/tools.js +1 -1
- package/dist/plugins/resolver.d.ts +12 -1
- package/dist/plugins/resolver.d.ts.map +1 -1
- package/dist/plugins/resolver.js +4 -1
- package/dist/plugins/types.d.ts +47 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/schema-utils/define-type.d.ts +32 -0
- package/dist/schema-utils/define-type.d.ts.map +1 -0
- package/dist/schema-utils/define-type.js +40 -0
- package/dist/schema-utils/index.d.ts +1 -0
- package/dist/schema-utils/index.d.ts.map +1 -1
- package/dist/schema-utils/index.js +1 -0
- package/dist/server/api/index.d.ts.map +1 -1
- package/dist/server/api/index.js +8 -0
- package/dist/server/api/routes/documents-publish.d.ts.map +1 -1
- package/dist/server/api/routes/documents-publish.js +110 -0
- package/dist/server/api/routes/jobs.d.ts +4 -0
- package/dist/server/api/routes/jobs.d.ts.map +1 -0
- package/dist/server/api/routes/jobs.js +92 -0
- package/dist/server/api/routes/workers-run.d.ts +4 -0
- package/dist/server/api/routes/workers-run.d.ts.map +1 -0
- package/dist/server/api/routes/workers-run.js +40 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/services/version-service.d.ts +16 -0
- package/dist/services/version-service.d.ts.map +1 -1
- package/dist/services/version-service.js +72 -48
- package/dist/types/config.d.ts +43 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/events.d.ts +134 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +3 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/schemas.d.ts +71 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DatabaseAdapter } from '../db/interfaces/index.js';
|
|
2
|
+
import type { Job } from '../types/events.js';
|
|
3
|
+
import type { Logger } from '../utils/logger.js';
|
|
4
|
+
/** What a job handler receives. `databaseAdapter` is the live adapter (org-scoped calls still take an org id). */
|
|
5
|
+
export interface JobContext {
|
|
6
|
+
job: Job;
|
|
7
|
+
databaseAdapter: DatabaseAdapter;
|
|
8
|
+
logger: Logger;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Runs one job. Resolve to complete it; throw to signal failure — the runner
|
|
12
|
+
* then retries with backoff (attempts remain) or dead-letters it (attempts exhausted).
|
|
13
|
+
* Handlers must be idempotent: at-least-once delivery means a job can run more than once.
|
|
14
|
+
*/
|
|
15
|
+
export type JobHandler = (ctx: JobContext) => Promise<void>;
|
|
16
|
+
/** Map of job `type` → handler. A claimed job whose type has no handler is dead-lettered. */
|
|
17
|
+
export type JobHandlerMap = Record<string, JobHandler>;
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/jobs/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,kHAAkH;AAClH,MAAM,WAAW,UAAU;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5D,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/jobs/types.ts"],"names":[],"mappings":""}
|
|
@@ -9,6 +9,7 @@ import type { LocalAPIContext } from './types.js';
|
|
|
9
9
|
import type { SchemaType } from '../types/schemas.js';
|
|
10
10
|
import { PermissionChecker } from './permissions.js';
|
|
11
11
|
import { type DocumentValidationResult } from '../field-validation/utils.js';
|
|
12
|
+
import type { Job } from '../types/events.js';
|
|
12
13
|
/**
|
|
13
14
|
* Result from create/update operations that includes validation
|
|
14
15
|
*/
|
|
@@ -182,6 +183,13 @@ export declare class CollectionAPI<T = Document> {
|
|
|
182
183
|
* );
|
|
183
184
|
* ```
|
|
184
185
|
*/
|
|
186
|
+
/**
|
|
187
|
+
* Publish without a version snapshot — the branch taken when there's no version service or
|
|
188
|
+
* the caller passed `skipVersioning`. Still emits `document.published` (and its outbox row)
|
|
189
|
+
* atomically with the publish, so the domain fact fires on EVERY publish path, not only the
|
|
190
|
+
* versioned one. The versioned branch emits the same event from `versionService.publishTx`.
|
|
191
|
+
*/
|
|
192
|
+
private publishWithoutVersion;
|
|
185
193
|
publish(context: LocalAPIContext, id: string): Promise<T | null>;
|
|
186
194
|
/**
|
|
187
195
|
* Unpublish a document
|
|
@@ -195,5 +203,39 @@ export declare class CollectionAPI<T = Document> {
|
|
|
195
203
|
* ```
|
|
196
204
|
*/
|
|
197
205
|
unpublish(context: LocalAPIContext, id: string): Promise<T | null>;
|
|
206
|
+
/**
|
|
207
|
+
* Pending scheduled publish/unpublish jobs for one document. Scheduled jobs are few
|
|
208
|
+
* and `pending` is a small set, so filtering the org's pending jobs by documentId in
|
|
209
|
+
* memory is cheap and avoids a dialect-specific JSON query on the hot editor path.
|
|
210
|
+
*/
|
|
211
|
+
private pendingScheduledFor;
|
|
212
|
+
/**
|
|
213
|
+
* Cancel any pending schedule of ONE direction for a document — used when a manual
|
|
214
|
+
* publish/unpublish supersedes a schedule of the same kind. Only same-direction is
|
|
215
|
+
* cancelled on purpose: "publish now, auto-unpublish Friday" and "unpublish now,
|
|
216
|
+
* republish Monday" are legitimate future transitions, so a manual publish leaves a
|
|
217
|
+
* pending unpublish (and vice versa) alone. Without this, the queued job would fire at
|
|
218
|
+
* `runAt` and re-run the same transition — re-emitting `document.published`/`unpublished`
|
|
219
|
+
* and firing every consumer a second time (duplicate notifications, webhooks, cache busts).
|
|
220
|
+
*/
|
|
221
|
+
private cancelPendingScheduleOfType;
|
|
222
|
+
/**
|
|
223
|
+
* Schedule a publish for a future `runAt`. Enqueues a `document.publish` job; the
|
|
224
|
+
* worker runs `publish()` at that time (re-validating, guarding references, emitting
|
|
225
|
+
* `document.published`). The permission check happens NOW — you must be able to publish
|
|
226
|
+
* to schedule one — so an unauthorized caller can't queue work to run later as the system.
|
|
227
|
+
* Actual publish-time validation still runs then, so a doc that goes invalid before
|
|
228
|
+
* `runAt` simply fails/retries rather than publishing bad content.
|
|
229
|
+
*
|
|
230
|
+
* Replace semantics: any existing pending schedule for this document is cancelled first,
|
|
231
|
+
* so a document has at most one pending schedule (rescheduling can't double-publish).
|
|
232
|
+
*/
|
|
233
|
+
schedulePublish(context: LocalAPIContext, id: string, runAt: Date): Promise<Job>;
|
|
234
|
+
/** Schedule an unpublish for a future `runAt`. Permission-checked now; replaces any existing pending schedule. */
|
|
235
|
+
scheduleUnpublish(context: LocalAPIContext, id: string, runAt: Date): Promise<Job>;
|
|
236
|
+
/** Pending scheduled publish/unpublish jobs for a document (read-gated) — for the editor's schedule indicator. */
|
|
237
|
+
getScheduled(context: LocalAPIContext, id: string): Promise<Job[]>;
|
|
238
|
+
/** Cancel all pending scheduled publish/unpublish jobs for a document. Returns how many were cancelled. */
|
|
239
|
+
cancelScheduled(context: LocalAPIContext, id: string): Promise<number>;
|
|
198
240
|
}
|
|
199
241
|
//# sourceMappingURL=collection-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
// Collection API - provides type-safe CRUD operations for a single collection
|
|
4
4
|
import { singletonId } from '../schema-utils/singleton.js';
|
|
5
5
|
import { validateDocumentData } from '../field-validation/utils.js';
|
|
6
|
+
import { runDocumentHooks } from './hooks.js';
|
|
6
7
|
import { collectReferenceIds } from '../utils/reference-walk.js';
|
|
8
|
+
import { emitDocumentPublished } from '../events/emit.js';
|
|
9
|
+
import { DOCUMENT_PUBLISH_JOB, DOCUMENT_UNPUBLISH_JOB } from '../jobs/document-jobs.js';
|
|
7
10
|
import { hiddenReadFields, hiddenWriteFields, dropLockedWrites, stripHiddenFields } from '../field-access.js';
|
|
8
11
|
const EMPTY_SET = new Set();
|
|
9
12
|
/**
|
|
@@ -324,10 +327,17 @@ export class CollectionAPI {
|
|
|
324
327
|
// a specific field; silently dropping keeps the server authoritative.
|
|
325
328
|
const locked = this.resolveHiddenWriteFields(context);
|
|
326
329
|
const filteredData = dropLockedWrites(data, locked);
|
|
327
|
-
//
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
+
// beforeValidate hooks: normalize/derive input before validation runs.
|
|
331
|
+
const hookedData = await runDocumentHooks(this._schema.hooks?.beforeValidate, {
|
|
332
|
+
data: filteredData,
|
|
333
|
+
operation: 'create',
|
|
334
|
+
originalDoc: null,
|
|
335
|
+
context: { organizationId: context.organizationId, userId: context.user?.id },
|
|
336
|
+
schema: this._schema
|
|
330
337
|
});
|
|
338
|
+
// Validate and normalize data (dates converted to ISO). The document context
|
|
339
|
+
// for cross-field validators is built inside validateDocumentData.
|
|
340
|
+
const validationResult = await validateDocumentData(this._schema, hookedData);
|
|
331
341
|
if (options?.publish) {
|
|
332
342
|
await this.permissions.canPublish(context, this.collectionName);
|
|
333
343
|
// Block publish if validation fails
|
|
@@ -338,24 +348,45 @@ export class CollectionAPI {
|
|
|
338
348
|
throw new Error(`Cannot publish: validation errors - ${errorMessage}`);
|
|
339
349
|
}
|
|
340
350
|
}
|
|
341
|
-
//
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
|
|
350
|
-
// Create initial draft version
|
|
351
|
-
if (this.versionService && !options?.skipVersioning) {
|
|
352
|
-
await this.versionService.createVersion(this.databaseAdapter, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
|
|
353
|
-
}
|
|
354
|
-
// Publish immediately if requested (validation already done above)
|
|
351
|
+
// versionService present unless the caller opted out of versioning; capturing it
|
|
352
|
+
// here narrows the type so the tx callbacks don't need non-null assertions.
|
|
353
|
+
const versionService = options?.skipVersioning ? undefined : this.versionService;
|
|
354
|
+
// Publish path: create + draft-version + publish + publish-version must commit
|
|
355
|
+
// together, or a crash between them leaves an inconsistent document (a draft that
|
|
356
|
+
// was meant to be published, or a published doc with no version row). Run all of
|
|
357
|
+
// it in one transaction. Validation already passed the block-check above, so we
|
|
358
|
+
// never enter the tx with invalid data.
|
|
355
359
|
if (options?.publish) {
|
|
356
|
-
const published = this.
|
|
357
|
-
|
|
358
|
-
|
|
360
|
+
const { document, published } = await this.databaseAdapter.withTransaction(async (tx) => {
|
|
361
|
+
const document = await tx.createDocument({
|
|
362
|
+
organizationId: context.organizationId,
|
|
363
|
+
type: this.collectionName,
|
|
364
|
+
draftData: validationResult.normalizedData,
|
|
365
|
+
createdBy: context.user?.id,
|
|
366
|
+
id: options?.id
|
|
367
|
+
});
|
|
368
|
+
if (versionService) {
|
|
369
|
+
await versionService.snapshotTx(tx, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
|
|
370
|
+
}
|
|
371
|
+
// Either branch emits `document.published` in this same tx: the versioned path
|
|
372
|
+
// from publishTx, the non-versioned path via emitDocumentPublished here.
|
|
373
|
+
let published;
|
|
374
|
+
if (versionService) {
|
|
375
|
+
published = await versionService.publishTx(tx, context.organizationId, document.id);
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
published = await tx.publishDoc(context.organizationId, document.id);
|
|
379
|
+
if (published)
|
|
380
|
+
await emitDocumentPublished(tx, context.organizationId, published);
|
|
381
|
+
}
|
|
382
|
+
return { document, published };
|
|
383
|
+
});
|
|
384
|
+
// Post-commit side effects: ref index is best-effort, retention is one pass
|
|
385
|
+
// covering both the draft and publish snapshots written inside the tx.
|
|
386
|
+
await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
|
|
387
|
+
if (versionService) {
|
|
388
|
+
await versionService.enforceRetentionFor(this.databaseAdapter, context.organizationId, document.id);
|
|
389
|
+
}
|
|
359
390
|
if (published) {
|
|
360
391
|
if (this.documentCache) {
|
|
361
392
|
await this.documentCache.invalidateDocument(context.organizationId, document.id);
|
|
@@ -366,6 +397,27 @@ export class CollectionAPI {
|
|
|
366
397
|
validation: validationResult
|
|
367
398
|
};
|
|
368
399
|
}
|
|
400
|
+
// publishDoc returned null (unexpected): fall back to returning the draft.
|
|
401
|
+
if (this.documentCache) {
|
|
402
|
+
await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
|
|
403
|
+
}
|
|
404
|
+
return {
|
|
405
|
+
document: transformDocument(document, 'draft'),
|
|
406
|
+
validation: validationResult
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
// Draft-only path.
|
|
410
|
+
const document = await this.databaseAdapter.createDocument({
|
|
411
|
+
organizationId: context.organizationId,
|
|
412
|
+
type: this.collectionName,
|
|
413
|
+
draftData: validationResult.normalizedData,
|
|
414
|
+
createdBy: context.user?.id,
|
|
415
|
+
id: options?.id
|
|
416
|
+
});
|
|
417
|
+
await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
|
|
418
|
+
// Create initial draft version
|
|
419
|
+
if (versionService) {
|
|
420
|
+
await versionService.createVersion(this.databaseAdapter, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
|
|
369
421
|
}
|
|
370
422
|
if (this.documentCache) {
|
|
371
423
|
await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
|
|
@@ -416,8 +468,16 @@ export class CollectionAPI {
|
|
|
416
468
|
}
|
|
417
469
|
// Merge cleaned existing data with filtered updates
|
|
418
470
|
const mergedData = { ...cleanedExisting, ...filteredData };
|
|
471
|
+
// beforeValidate hooks: normalize/derive input before validation runs.
|
|
472
|
+
const hookedData = await runDocumentHooks(this._schema.hooks?.beforeValidate, {
|
|
473
|
+
data: mergedData,
|
|
474
|
+
operation: 'update',
|
|
475
|
+
originalDoc: existingDoc.draftData ?? null,
|
|
476
|
+
context: { organizationId: context.organizationId, userId: context.user?.id },
|
|
477
|
+
schema: this._schema
|
|
478
|
+
});
|
|
419
479
|
// Validate and normalize the merged data
|
|
420
|
-
const validationResult = await validateDocumentData(this._schema,
|
|
480
|
+
const validationResult = await validateDocumentData(this._schema, hookedData);
|
|
421
481
|
// Update draft with normalized data (dates in ISO format)
|
|
422
482
|
// Use VersionService for atomic save + version creation if available
|
|
423
483
|
const document = this.versionService && !options?.skipVersioning
|
|
@@ -438,7 +498,7 @@ export class CollectionAPI {
|
|
|
438
498
|
}
|
|
439
499
|
const published = this.versionService && !options?.skipVersioning
|
|
440
500
|
? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, document.id)
|
|
441
|
-
: await this.
|
|
501
|
+
: await this.publishWithoutVersion(context.organizationId, document.id);
|
|
442
502
|
if (published) {
|
|
443
503
|
// Invalidate cache
|
|
444
504
|
if (this.documentCache) {
|
|
@@ -500,6 +560,20 @@ export class CollectionAPI {
|
|
|
500
560
|
* );
|
|
501
561
|
* ```
|
|
502
562
|
*/
|
|
563
|
+
/**
|
|
564
|
+
* Publish without a version snapshot — the branch taken when there's no version service or
|
|
565
|
+
* the caller passed `skipVersioning`. Still emits `document.published` (and its outbox row)
|
|
566
|
+
* atomically with the publish, so the domain fact fires on EVERY publish path, not only the
|
|
567
|
+
* versioned one. The versioned branch emits the same event from `versionService.publishTx`.
|
|
568
|
+
*/
|
|
569
|
+
async publishWithoutVersion(organizationId, id) {
|
|
570
|
+
return this.databaseAdapter.withTransaction(async (tx) => {
|
|
571
|
+
const published = await tx.publishDoc(organizationId, id);
|
|
572
|
+
if (published)
|
|
573
|
+
await emitDocumentPublished(tx, organizationId, published);
|
|
574
|
+
return published;
|
|
575
|
+
});
|
|
576
|
+
}
|
|
503
577
|
async publish(context, id) {
|
|
504
578
|
// Fetch first so policies can inspect the target. Order matters here:
|
|
505
579
|
// 404s beat 403s for missing docs.
|
|
@@ -509,7 +583,7 @@ export class CollectionAPI {
|
|
|
509
583
|
}
|
|
510
584
|
await this.permissions.canPublish(context, this.collectionName, document);
|
|
511
585
|
// Validate draft data (dates already in ISO, will be converted for validation)
|
|
512
|
-
const validationResult = await validateDocumentData(this._schema, document.draftData
|
|
586
|
+
const validationResult = await validateDocumentData(this._schema, document.draftData);
|
|
513
587
|
if (!validationResult.isValid) {
|
|
514
588
|
const errorMessage = validationResult.errors
|
|
515
589
|
.map((e) => `${e.field}: ${e.errors.join(', ')}`)
|
|
@@ -533,10 +607,12 @@ export class CollectionAPI {
|
|
|
533
607
|
throw new Error(`Cannot publish — ${unpublished.length} referenced document(s) are not published: ${names}`);
|
|
534
608
|
}
|
|
535
609
|
}
|
|
536
|
-
// Validation passed - proceed with publish (with version if service available)
|
|
610
|
+
// Validation passed - proceed with publish (with version if service available). Either
|
|
611
|
+
// branch emits `document.published`: the versioned path from publishTx, the non-versioned
|
|
612
|
+
// path from publishWithoutVersion.
|
|
537
613
|
const publishedDocument = this.versionService
|
|
538
614
|
? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, id)
|
|
539
|
-
: await this.
|
|
615
|
+
: await this.publishWithoutVersion(context.organizationId, id);
|
|
540
616
|
if (!publishedDocument) {
|
|
541
617
|
return null;
|
|
542
618
|
}
|
|
@@ -545,6 +621,9 @@ export class CollectionAPI {
|
|
|
545
621
|
await this.documentCache.invalidateDocument(context.organizationId, id);
|
|
546
622
|
await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
|
|
547
623
|
}
|
|
624
|
+
// This manual publish supersedes any pending scheduled publish — cancel it so the queued
|
|
625
|
+
// job doesn't fire later and re-emit `document.published` (a pending unpublish is left as-is).
|
|
626
|
+
await this.cancelPendingScheduleOfType(context.organizationId, id, DOCUMENT_PUBLISH_JOB);
|
|
548
627
|
return transformDocument(publishedDocument, 'published');
|
|
549
628
|
}
|
|
550
629
|
/**
|
|
@@ -573,7 +652,103 @@ export class CollectionAPI {
|
|
|
573
652
|
await this.documentCache.invalidateDocument(context.organizationId, id);
|
|
574
653
|
await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
|
|
575
654
|
}
|
|
655
|
+
// This manual unpublish supersedes any pending scheduled unpublish — cancel it so the
|
|
656
|
+
// queued job doesn't fire later (a pending publish is left as-is: "unpublish now,
|
|
657
|
+
// republish Monday" is a legitimate transition).
|
|
658
|
+
await this.cancelPendingScheduleOfType(context.organizationId, id, DOCUMENT_UNPUBLISH_JOB);
|
|
576
659
|
return transformDocument(document, 'draft');
|
|
577
660
|
}
|
|
661
|
+
/**
|
|
662
|
+
* Pending scheduled publish/unpublish jobs for one document. Scheduled jobs are few
|
|
663
|
+
* and `pending` is a small set, so filtering the org's pending jobs by documentId in
|
|
664
|
+
* memory is cheap and avoids a dialect-specific JSON query on the hot editor path.
|
|
665
|
+
*/
|
|
666
|
+
async pendingScheduledFor(organizationId, documentId) {
|
|
667
|
+
const page = await this.databaseAdapter.listJobs({
|
|
668
|
+
organizationId,
|
|
669
|
+
status: 'pending',
|
|
670
|
+
limit: 200
|
|
671
|
+
});
|
|
672
|
+
return page.items.filter((j) => (j.type === DOCUMENT_PUBLISH_JOB || j.type === DOCUMENT_UNPUBLISH_JOB) &&
|
|
673
|
+
j.payload.documentId === documentId);
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Cancel any pending schedule of ONE direction for a document — used when a manual
|
|
677
|
+
* publish/unpublish supersedes a schedule of the same kind. Only same-direction is
|
|
678
|
+
* cancelled on purpose: "publish now, auto-unpublish Friday" and "unpublish now,
|
|
679
|
+
* republish Monday" are legitimate future transitions, so a manual publish leaves a
|
|
680
|
+
* pending unpublish (and vice versa) alone. Without this, the queued job would fire at
|
|
681
|
+
* `runAt` and re-run the same transition — re-emitting `document.published`/`unpublished`
|
|
682
|
+
* and firing every consumer a second time (duplicate notifications, webhooks, cache busts).
|
|
683
|
+
*/
|
|
684
|
+
async cancelPendingScheduleOfType(organizationId, documentId, jobType) {
|
|
685
|
+
const pending = await this.pendingScheduledFor(organizationId, documentId);
|
|
686
|
+
for (const job of pending) {
|
|
687
|
+
if (job.type === jobType) {
|
|
688
|
+
await this.databaseAdapter.cancelJob(organizationId, job.id);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Schedule a publish for a future `runAt`. Enqueues a `document.publish` job; the
|
|
694
|
+
* worker runs `publish()` at that time (re-validating, guarding references, emitting
|
|
695
|
+
* `document.published`). The permission check happens NOW — you must be able to publish
|
|
696
|
+
* to schedule one — so an unauthorized caller can't queue work to run later as the system.
|
|
697
|
+
* Actual publish-time validation still runs then, so a doc that goes invalid before
|
|
698
|
+
* `runAt` simply fails/retries rather than publishing bad content.
|
|
699
|
+
*
|
|
700
|
+
* Replace semantics: any existing pending schedule for this document is cancelled first,
|
|
701
|
+
* so a document has at most one pending schedule (rescheduling can't double-publish).
|
|
702
|
+
*/
|
|
703
|
+
async schedulePublish(context, id, runAt) {
|
|
704
|
+
const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
|
|
705
|
+
if (!document)
|
|
706
|
+
throw new Error('Document not found');
|
|
707
|
+
await this.permissions.canPublish(context, this.collectionName, document);
|
|
708
|
+
for (const existing of await this.pendingScheduledFor(context.organizationId, id)) {
|
|
709
|
+
await this.databaseAdapter.cancelJob(context.organizationId, existing.id);
|
|
710
|
+
}
|
|
711
|
+
return this.databaseAdapter.scheduleJob({
|
|
712
|
+
organizationId: context.organizationId,
|
|
713
|
+
type: DOCUMENT_PUBLISH_JOB,
|
|
714
|
+
payload: { documentId: id, documentType: this.collectionName },
|
|
715
|
+
runAt,
|
|
716
|
+
createdBy: context.user?.id ?? null
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
/** Schedule an unpublish for a future `runAt`. Permission-checked now; replaces any existing pending schedule. */
|
|
720
|
+
async scheduleUnpublish(context, id, runAt) {
|
|
721
|
+
const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
|
|
722
|
+
if (!document)
|
|
723
|
+
throw new Error('Document not found');
|
|
724
|
+
await this.permissions.canUnpublish(context, this.collectionName, document);
|
|
725
|
+
for (const existing of await this.pendingScheduledFor(context.organizationId, id)) {
|
|
726
|
+
await this.databaseAdapter.cancelJob(context.organizationId, existing.id);
|
|
727
|
+
}
|
|
728
|
+
return this.databaseAdapter.scheduleJob({
|
|
729
|
+
organizationId: context.organizationId,
|
|
730
|
+
type: DOCUMENT_UNPUBLISH_JOB,
|
|
731
|
+
payload: { documentId: id, documentType: this.collectionName },
|
|
732
|
+
runAt,
|
|
733
|
+
createdBy: context.user?.id ?? null
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
/** Pending scheduled publish/unpublish jobs for a document (read-gated) — for the editor's schedule indicator. */
|
|
737
|
+
async getScheduled(context, id) {
|
|
738
|
+
await this.permissions.canRead(context, this.collectionName);
|
|
739
|
+
return this.pendingScheduledFor(context.organizationId, id);
|
|
740
|
+
}
|
|
741
|
+
/** Cancel all pending scheduled publish/unpublish jobs for a document. Returns how many were cancelled. */
|
|
742
|
+
async cancelScheduled(context, id) {
|
|
743
|
+
const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
|
|
744
|
+
if (!document)
|
|
745
|
+
throw new Error('Document not found');
|
|
746
|
+
await this.permissions.canPublish(context, this.collectionName, document);
|
|
747
|
+
const pending = await this.pendingScheduledFor(context.organizationId, id);
|
|
748
|
+
for (const job of pending) {
|
|
749
|
+
await this.databaseAdapter.cancelJob(context.organizationId, job.id);
|
|
750
|
+
}
|
|
751
|
+
return pending.length;
|
|
752
|
+
}
|
|
578
753
|
}
|
|
579
754
|
//# sourceMappingURL=collection-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAY9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAiC,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,iBAAiB,CAAC;AAUzB,MAAM,SAAS,GAAwB,IAAI,GAAG,EAAU,CAAC;AAEzD;;;GAGG;AACH,SAAS,mBAAmB,CAAI,MAAqB,EAAE,MAA2B;IACjF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO;QACN,GAAG,MAAM;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KACzD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAI,GAAM,EAAE,MAA2B;IAC/D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAChD,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QAC3E,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC;IACD,OAAO,IAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACzB,GAAa,EACb,cAAqC,OAAO,EAC5C,YAAkC;IAElC,MAAM,GAAG,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IACxE,MAAM,IAAI,GACT,YAAY,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC;QACpC,CAAC,CAAC,iBAAiB,CAAC,GAAiD,EAAE,YAAY,CAAC;QACpF,CAAC,CAAC,GAAG,CAAC;IAER,gDAAgD;IAChD,OAAO;QACN,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,GAAG,IAAI;QACP,0BAA0B;QAC1B,KAAK,EAAE;YACN,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;SAChC;KACI,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACjD,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACvC,CAAC;CACD;AAcD;;;GAGG;AACH,MAAM,OAAO,aAAa;IAEhB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IATT,YACS,cAAsB,EACtB,eAAgC,EAChC,OAAmB,EACnB,WAA8B,EAC9B,aAAoC,EACpC,gBAAmC,EACnC,cAA+B,EAC/B,iBAAqC,EACrC,cAA6B;QAR7B,mBAAc,GAAd,cAAc,CAAQ;QACtB,oBAAe,GAAf,eAAe,CAAiB;QAChC,YAAO,GAAP,OAAO,CAAY;QACnB,gBAAW,GAAX,WAAW,CAAmB;QAC9B,kBAAa,GAAb,aAAa,CAAuB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAoB;QACrC,mBAAc,GAAd,cAAc,CAAe;QAErC,6BAA6B;QAC7B,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc,CAC3B,cAAsB,EACtB,UAAkB,EAClB,IAAa;QAEb,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAC7C,cAAc,EACd,UAAU,EACV,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,IAAI,EAAE,CACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAwB;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;YAC5B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,OAAwB,EAAE,OAAiC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,uBAAuB,CAChC,8CAA8C,IAAI,CAAC,cAAc,uBAAuB,CACxF,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAA6B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,IAAI,CAAC,OAAwB,EAAE,UAA0B,EAAE;QAChE,wEAAwE;QACxE,qEAAqE;QACrE,kEAAkE;QAClE,oDAAoD;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBACnC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO;gBACN,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,KAAK;aAClB,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,0EAA0E;QAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC;QAC1E,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAErD,oCAAoC;QACpC,IAAI,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC/C,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,EACnB,OAAO,CACP,CAAC;YACF,IAAI,MAAM;gBAAE,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzF,WAAW,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC5D,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,EACnB,WAAW,CACX,CAAC;QAEF,4DAA4D;QAC5D,yDAAyD;QACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAI,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAExF,MAAM,gBAAgB,GAAkB;YACvC,GAAG,MAAM;YACT,IAAI,EAAE,cAAc;SACpB,CAAC;QAEF,4DAA4D;QAC5D,IAAI,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,EACnB,OAAO,EACP,gBAAgB,CAChB,CAAC;QACH,CAAC;QAED,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAEO,uBAAuB,CAAC,OAAwB;QACvD,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEO,wBAAwB,CAAC,OAAwB;QACxD,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACb,OAAwB,EACxB,EAAU,EACV,OAAiC;QAEjC,2CAA2C;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,0EAA0E;QAC1E,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAErD,oCAAoC;QACpC,IAAI,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACnF,IAAI,MAAM;gBAAE,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,0EAA0E;QAC1E,MAAM,WAAW,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzF,WAAW,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC5D,OAAO,CAAC,cAAc,EACtB,EAAE,EACF,WAAW,CACX,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QAED,mEAAmE;QACnE,MAAM,UAAU,GAAG,iBAAiB,CAAI,MAAM,EAAE,WAAW,CAAC,CAAC;QAE7D,4DAA4D;QAC5D,IAAI,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEzD,OAAO,WAAW,CAAC;IACpB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CACV,OAAwB,EACxB,OAA2C;QAE3C,2CAA2C;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CACzC,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,EACnB,OAAO,EAAE,KAAK,CACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,MAAM,CACX,OAAwB,EACxB,IAA6B,EAC7B,OAAsE;QAEtE,iEAAiE;QACjE,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5E,IAAI,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACN,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE;wBACX,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,EAAE;wBACV,cAAc,EAAE,QAA+B;qBAC/C;iBACD,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC;QAC9B,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,kEAAkE;QAClE,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,gBAAgB,CACpC,IAA0C,EAC1C,MAAM,CACqB,CAAC;QAE7B,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE;YAC/E,OAAO,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAEhE,oCAAoC;YACpC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM;qBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;qBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QAED,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;YAC1D,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,SAAS,EAAE,gBAAgB,CAAC,cAAc;YAC1C,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE;YAC3B,EAAE,EAAE,OAAO,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAEhG,+BAA+B;QAC/B,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACtC,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,cAAc,EACtB,QAAQ,CAAC,EAAE,EACX,OAAO,EACP,gBAAgB,CAAC,cAAc,EAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAChB,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,SAAS,GACd,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,cAAc;gBAC9C,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAC5C,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,cAAc,EACtB,QAAQ,CAAC,EAAE,CACX;gBACF,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACjF,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAC5C,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,CACnB,CAAC;gBACH,CAAC;gBACD,OAAO;oBACN,QAAQ,EAAE,iBAAiB,CAAI,SAAS,EAAE,WAAW,CAAC;oBACtD,UAAU,EAAE,gBAAgB;iBAC5B,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,iBAAiB,CAAI,QAAQ,EAAE,OAAO,CAAC;YACjD,UAAU,EAAE,gBAAgB;SAC5B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CACX,OAAwB,EACxB,EAAU,EACV,IAAsC,EACtC,OAAyD;QAEzD,uEAAuE;QACvE,qEAAqE;QACrE,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAE5E,4DAA4D;QAC5D,iEAAiE;QACjE,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAA0C,EAAE,MAAM,CAAC,CAAC;QAE1F,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAwB,EAAE,CAAC;QAEhD,kEAAkE;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACxE,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;QACF,CAAC;QAED,oDAAoD;QACpD,MAAM,UAAU,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,YAAY,EAAE,CAAC;QAE3D,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAE1F,0DAA0D;QAC1D,qEAAqE;QACrE,MAAM,QAAQ,GACb,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,cAAc;YAC9C,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CACzC,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,cAAc,EACtB,EAAE,EACF,gBAAgB,CAAC,cAAc,EAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAChB;YACF,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CACzC,OAAO,CAAC,cAAc,EACtB,EAAE,EACF,gBAAgB,CAAC,cAAc,EAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAChB,CAAC;QAEL,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAEvF,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAE1E,oCAAoC;YACpC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM;qBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;qBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,SAAS,GACd,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,cAAc;gBAC9C,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAC5C,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,cAAc,EACtB,QAAQ,CAAC,EAAE,CACX;gBACF,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,SAAS,EAAE,CAAC;gBACf,mBAAmB;gBACnB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACxE,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAC5C,OAAO,CAAC,cAAc,EACtB,IAAI,CAAC,cAAc,CACnB,CAAC;gBACH,CAAC;gBACD,OAAO;oBACN,QAAQ,EAAE,iBAAiB,CAAI,SAAS,EAAE,WAAW,CAAC;oBACtD,UAAU,EAAE,gBAAgB;iBAC5B,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,iBAAiB,CAAI,QAAQ,EAAE,OAAO,CAAC;YACjD,UAAU,EAAE,gBAAgB;SAC5B,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,OAAwB,EAAE,EAAU;QAChD,oEAAoE;QACpE,iEAAiE;QACjE,qEAAqE;QACrE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,uBAAuB,CAChC,6CAA6C,IAAI,CAAC,OAAO,CAAC,IAAI,qDAAqD,CACnH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAEpF,wCAAwC;QACxC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,EAAU;QACjD,sEAAsE;QACtE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE1E,+EAA+E;QAC/E,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAClD,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAAS,CAClB,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;iBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,mEAAmE;QACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAuD,EAAE,CAAC;YAC3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC5D,OAAO,CAAC,cAAc,EACtB,KAAK,CACL,CAAC;gBACF,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,SAA2C,CAAC;oBAChE,MAAM,KAAK,GAAI,IAAI,EAAE,KAAgB,IAAK,IAAI,EAAE,IAAe,IAAI,MAAM,CAAC,EAAE,CAAC;oBAC7E,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CACd,oBAAoB,WAAW,CAAC,MAAM,8CAA8C,KAAK,EAAE,CAC3F,CAAC;YACH,CAAC;QACF,CAAC;QAED,+EAA+E;QAC/E,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc;YAC5C,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAC5C,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,cAAc,EACtB,EAAE,CACF;YACF,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,gEAAgE;QAChE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,iBAAiB,CAAI,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS,CAAC,OAAwB,EAAE,EAAU;QACnD,sDAAsD;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,iBAAiB,CAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DocumentHook, DocumentHookArgs } from '../types/schemas.js';
|
|
2
|
+
/**
|
|
3
|
+
* Run a phase of document hooks in order, threading the (possibly transformed)
|
|
4
|
+
* data through each. Returns the final data. A hook that throws aborts the write.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runDocumentHooks(hooks: DocumentHook[] | undefined, args: DocumentHookArgs): Promise<Record<string, unknown>>;
|
|
7
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/lib/local-api/hooks.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EACjC,IAAI,EAAE,gBAAgB,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// local-api/hooks.ts
|
|
2
|
+
//
|
|
3
|
+
// Runner for schema lifecycle hooks. Currently the only phase is `beforeValidate`
|
|
4
|
+
// (normalization/transform). Hooks are for transforming data — rejection and
|
|
5
|
+
// cross-field invariants belong in `validation: (Rule) => Rule.custom(...)`, which
|
|
6
|
+
// already sees the whole document.
|
|
7
|
+
/**
|
|
8
|
+
* Run a phase of document hooks in order, threading the (possibly transformed)
|
|
9
|
+
* data through each. Returns the final data. A hook that throws aborts the write.
|
|
10
|
+
*/
|
|
11
|
+
export async function runDocumentHooks(hooks, args) {
|
|
12
|
+
if (!hooks?.length)
|
|
13
|
+
return args.data;
|
|
14
|
+
let data = args.data;
|
|
15
|
+
for (const hook of hooks) {
|
|
16
|
+
data = await hook({ ...args, data });
|
|
17
|
+
}
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/lib/local-api/hooks.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,EAAE;AACF,kFAAkF;AAClF,6EAA6E;AAC7E,mFAAmF;AACnF,mCAAmC;AAInC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,KAAiC,EACjC,IAAsB;IAEtB,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACrC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/dist/lib/mcp/tools.js
CHANGED
|
@@ -225,7 +225,7 @@ export function buildContentTools({ aphexCMS, context }) {
|
|
|
225
225
|
if (!schema)
|
|
226
226
|
return fail(`Unknown collection: ${collection}`);
|
|
227
227
|
try {
|
|
228
|
-
const result = await validateDocumentData(schema, data
|
|
228
|
+
const result = await validateDocumentData(schema, data);
|
|
229
229
|
return ok({ isValid: result.isValid, errors: result.errors });
|
|
230
230
|
}
|
|
231
231
|
catch (err) {
|