@jini-ai/cms 0.1.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/LICENSE +201 -0
- package/README.md +84 -0
- package/dist/content-types/agent-tools.d.ts +65 -0
- package/dist/content-types/agent-tools.d.ts.map +1 -0
- package/dist/content-types/agent-tools.js +172 -0
- package/dist/content-types/agent-tools.js.map +1 -0
- package/dist/content-types/cleanup.d.ts +118 -0
- package/dist/content-types/cleanup.d.ts.map +1 -0
- package/dist/content-types/cleanup.js +65 -0
- package/dist/content-types/cleanup.js.map +1 -0
- package/dist/content-types/errors.d.ts +90 -0
- package/dist/content-types/errors.d.ts.map +1 -0
- package/dist/content-types/errors.js +119 -0
- package/dist/content-types/errors.js.map +1 -0
- package/dist/content-types/field-defs.d.ts +25 -0
- package/dist/content-types/field-defs.d.ts.map +1 -0
- package/dist/content-types/field-defs.js +155 -0
- package/dist/content-types/field-defs.js.map +1 -0
- package/dist/content-types/index-provisioning.d.ts +94 -0
- package/dist/content-types/index-provisioning.d.ts.map +1 -0
- package/dist/content-types/index-provisioning.js +133 -0
- package/dist/content-types/index-provisioning.js.map +1 -0
- package/dist/content-types/index.d.ts +63 -0
- package/dist/content-types/index.d.ts.map +1 -0
- package/dist/content-types/index.js +36 -0
- package/dist/content-types/index.js.map +1 -0
- package/dist/content-types/lifecycle-dispatch.d.ts +38 -0
- package/dist/content-types/lifecycle-dispatch.d.ts.map +1 -0
- package/dist/content-types/lifecycle-dispatch.js +28 -0
- package/dist/content-types/lifecycle-dispatch.js.map +1 -0
- package/dist/content-types/lifecycle.d.ts +104 -0
- package/dist/content-types/lifecycle.d.ts.map +1 -0
- package/dist/content-types/lifecycle.js +143 -0
- package/dist/content-types/lifecycle.js.map +1 -0
- package/dist/content-types/list.d.ts +44 -0
- package/dist/content-types/list.d.ts.map +1 -0
- package/dist/content-types/list.js +13 -0
- package/dist/content-types/list.js.map +1 -0
- package/dist/content-types/repo.memory.d.ts +72 -0
- package/dist/content-types/repo.memory.d.ts.map +1 -0
- package/dist/content-types/repo.memory.js +71 -0
- package/dist/content-types/repo.memory.js.map +1 -0
- package/dist/content-types/tool-registrations.d.ts +65 -0
- package/dist/content-types/tool-registrations.d.ts.map +1 -0
- package/dist/content-types/tool-registrations.js +180 -0
- package/dist/content-types/tool-registrations.js.map +1 -0
- package/dist/content-types/types.d.ts +78 -0
- package/dist/content-types/types.d.ts.map +1 -0
- package/dist/content-types/types.js +32 -0
- package/dist/content-types/types.js.map +1 -0
- package/dist/content-types/write-service.d.ts +141 -0
- package/dist/content-types/write-service.d.ts.map +1 -0
- package/dist/content-types/write-service.js +180 -0
- package/dist/content-types/write-service.js.map +1 -0
- package/dist/core/commands/change-set.d.ts +98 -0
- package/dist/core/commands/change-set.d.ts.map +1 -0
- package/dist/core/commands/change-set.js +2 -0
- package/dist/core/commands/change-set.js.map +1 -0
- package/dist/core/commands/command.d.ts +168 -0
- package/dist/core/commands/command.d.ts.map +1 -0
- package/dist/core/commands/command.js +173 -0
- package/dist/core/commands/command.js.map +1 -0
- package/dist/core/index.d.ts +45 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +43 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/ports.d.ts +139 -0
- package/dist/core/ports.d.ts.map +1 -0
- package/dist/core/ports.js +2 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/tools/registration-kit.d.ts +308 -0
- package/dist/core/tools/registration-kit.d.ts.map +1 -0
- package/dist/core/tools/registration-kit.js +381 -0
- package/dist/core/tools/registration-kit.js.map +1 -0
- package/dist/entries/agent-tools.d.ts +78 -0
- package/dist/entries/agent-tools.d.ts.map +1 -0
- package/dist/entries/agent-tools.js +158 -0
- package/dist/entries/agent-tools.js.map +1 -0
- package/dist/entries/errors.d.ts +43 -0
- package/dist/entries/errors.d.ts.map +1 -0
- package/dist/entries/errors.js +59 -0
- package/dist/entries/errors.js.map +1 -0
- package/dist/entries/field-validation.d.ts +70 -0
- package/dist/entries/field-validation.d.ts.map +1 -0
- package/dist/entries/field-validation.js +87 -0
- package/dist/entries/field-validation.js.map +1 -0
- package/dist/entries/index.d.ts +55 -0
- package/dist/entries/index.d.ts.map +1 -0
- package/dist/entries/index.js +38 -0
- package/dist/entries/index.js.map +1 -0
- package/dist/entries/lifecycle-dispatch.d.ts +15 -0
- package/dist/entries/lifecycle-dispatch.d.ts.map +1 -0
- package/dist/entries/lifecycle-dispatch.js +16 -0
- package/dist/entries/lifecycle-dispatch.js.map +1 -0
- package/dist/entries/list.d.ts +47 -0
- package/dist/entries/list.d.ts.map +1 -0
- package/dist/entries/list.js +12 -0
- package/dist/entries/list.js.map +1 -0
- package/dist/entries/repo.memory.d.ts +64 -0
- package/dist/entries/repo.memory.d.ts.map +1 -0
- package/dist/entries/repo.memory.js +73 -0
- package/dist/entries/repo.memory.js.map +1 -0
- package/dist/entries/tool-registrations.d.ts +52 -0
- package/dist/entries/tool-registrations.d.ts.map +1 -0
- package/dist/entries/tool-registrations.js +141 -0
- package/dist/entries/tool-registrations.js.map +1 -0
- package/dist/entries/types.d.ts +55 -0
- package/dist/entries/types.d.ts.map +1 -0
- package/dist/entries/types.js +2 -0
- package/dist/entries/types.js.map +1 -0
- package/dist/entries/write-service.d.ts +202 -0
- package/dist/entries/write-service.d.ts.map +1 -0
- package/dist/entries/write-service.js +204 -0
- package/dist/entries/write-service.js.map +1 -0
- package/dist/identity/admin-crud-service.d.ts +252 -0
- package/dist/identity/admin-crud-service.d.ts.map +1 -0
- package/dist/identity/admin-crud-service.js +437 -0
- package/dist/identity/admin-crud-service.js.map +1 -0
- package/dist/identity/agent-tool-input.d.ts +58 -0
- package/dist/identity/agent-tool-input.d.ts.map +1 -0
- package/dist/identity/agent-tool-input.js +126 -0
- package/dist/identity/agent-tool-input.js.map +1 -0
- package/dist/identity/agent-tools.d.ts +101 -0
- package/dist/identity/agent-tools.d.ts.map +1 -0
- package/dist/identity/agent-tools.js +290 -0
- package/dist/identity/agent-tools.js.map +1 -0
- package/dist/identity/auth-service.d.ts +87 -0
- package/dist/identity/auth-service.d.ts.map +1 -0
- package/dist/identity/auth-service.js +141 -0
- package/dist/identity/auth-service.js.map +1 -0
- package/dist/identity/authorize.d.ts +90 -0
- package/dist/identity/authorize.d.ts.map +1 -0
- package/dist/identity/authorize.js +94 -0
- package/dist/identity/authorize.js.map +1 -0
- package/dist/identity/grant-service.d.ts +198 -0
- package/dist/identity/grant-service.d.ts.map +1 -0
- package/dist/identity/grant-service.js +361 -0
- package/dist/identity/grant-service.js.map +1 -0
- package/dist/identity/hasher.d.ts +39 -0
- package/dist/identity/hasher.d.ts.map +1 -0
- package/dist/identity/hasher.js +39 -0
- package/dist/identity/hasher.js.map +1 -0
- package/dist/identity/index.d.ts +59 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +51 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/password-policy.d.ts +58 -0
- package/dist/identity/password-policy.d.ts.map +1 -0
- package/dist/identity/password-policy.js +67 -0
- package/dist/identity/password-policy.js.map +1 -0
- package/dist/identity/permission-migrations.d.ts +86 -0
- package/dist/identity/permission-migrations.d.ts.map +1 -0
- package/dist/identity/permission-migrations.js +67 -0
- package/dist/identity/permission-migrations.js.map +1 -0
- package/dist/identity/permissions.d.ts +35 -0
- package/dist/identity/permissions.d.ts.map +1 -0
- package/dist/identity/permissions.js +603 -0
- package/dist/identity/permissions.js.map +1 -0
- package/dist/identity/ports.d.ts +201 -0
- package/dist/identity/ports.d.ts.map +1 -0
- package/dist/identity/ports.js +2 -0
- package/dist/identity/ports.js.map +1 -0
- package/dist/identity/repo.memory.d.ts +164 -0
- package/dist/identity/repo.memory.d.ts.map +1 -0
- package/dist/identity/repo.memory.js +224 -0
- package/dist/identity/repo.memory.js.map +1 -0
- package/dist/identity/seed.d.ts +42 -0
- package/dist/identity/seed.d.ts.map +1 -0
- package/dist/identity/seed.js +277 -0
- package/dist/identity/seed.js.map +1 -0
- package/dist/identity/tool-registrations.d.ts +50 -0
- package/dist/identity/tool-registrations.d.ts.map +1 -0
- package/dist/identity/tool-registrations.js +419 -0
- package/dist/identity/tool-registrations.js.map +1 -0
- package/dist/identity/types.d.ts +185 -0
- package/dist/identity/types.d.ts.map +1 -0
- package/dist/identity/types.js +64 -0
- package/dist/identity/types.js.map +1 -0
- package/dist/identity/username.d.ts +12 -0
- package/dist/identity/username.d.ts.map +1 -0
- package/dist/identity/username.js +14 -0
- package/dist/identity/username.js.map +1 -0
- package/dist/media/agent-tools.d.ts +66 -0
- package/dist/media/agent-tools.d.ts.map +1 -0
- package/dist/media/agent-tools.js +131 -0
- package/dist/media/agent-tools.js.map +1 -0
- package/dist/media/blob-gc-lock.d.ts +37 -0
- package/dist/media/blob-gc-lock.d.ts.map +1 -0
- package/dist/media/blob-gc-lock.js +55 -0
- package/dist/media/blob-gc-lock.js.map +1 -0
- package/dist/media/blob-gc.d.ts +246 -0
- package/dist/media/blob-gc.d.ts.map +1 -0
- package/dist/media/blob-gc.js +254 -0
- package/dist/media/blob-gc.js.map +1 -0
- package/dist/media/blob-key.d.ts +28 -0
- package/dist/media/blob-key.d.ts.map +1 -0
- package/dist/media/blob-key.js +11 -0
- package/dist/media/blob-key.js.map +1 -0
- package/dist/media/blob-store.fs.d.ts +23 -0
- package/dist/media/blob-store.fs.d.ts.map +1 -0
- package/dist/media/blob-store.fs.js +48 -0
- package/dist/media/blob-store.fs.js.map +1 -0
- package/dist/media/blob-store.memory.d.ts +22 -0
- package/dist/media/blob-store.memory.d.ts.map +1 -0
- package/dist/media/blob-store.memory.js +23 -0
- package/dist/media/blob-store.memory.js.map +1 -0
- package/dist/media/content-type-sniffer.d.ts +49 -0
- package/dist/media/content-type-sniffer.d.ts.map +1 -0
- package/dist/media/content-type-sniffer.js +141 -0
- package/dist/media/content-type-sniffer.js.map +1 -0
- package/dist/media/image-transformer.d.ts +45 -0
- package/dist/media/image-transformer.d.ts.map +1 -0
- package/dist/media/image-transformer.js +23 -0
- package/dist/media/image-transformer.js.map +1 -0
- package/dist/media/image-transformer.sharp.d.ts +26 -0
- package/dist/media/image-transformer.sharp.d.ts.map +1 -0
- package/dist/media/image-transformer.sharp.js +91 -0
- package/dist/media/image-transformer.sharp.js.map +1 -0
- package/dist/media/index.d.ts +43 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +31 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-service.d.ts +244 -0
- package/dist/media/media-service.d.ts.map +1 -0
- package/dist/media/media-service.js +345 -0
- package/dist/media/media-service.js.map +1 -0
- package/dist/media/ports.d.ts +142 -0
- package/dist/media/ports.d.ts.map +1 -0
- package/dist/media/ports.js +2 -0
- package/dist/media/ports.js.map +1 -0
- package/dist/media/rendition-service.d.ts +66 -0
- package/dist/media/rendition-service.d.ts.map +1 -0
- package/dist/media/rendition-service.js +135 -0
- package/dist/media/rendition-service.js.map +1 -0
- package/dist/media/repo.memory.d.ts +107 -0
- package/dist/media/repo.memory.d.ts.map +1 -0
- package/dist/media/repo.memory.js +131 -0
- package/dist/media/repo.memory.js.map +1 -0
- package/dist/media/tool-registrations.d.ts +42 -0
- package/dist/media/tool-registrations.d.ts.map +1 -0
- package/dist/media/tool-registrations.js +121 -0
- package/dist/media/tool-registrations.js.map +1 -0
- package/dist/media/transform-lock.d.ts +36 -0
- package/dist/media/transform-lock.d.ts.map +1 -0
- package/dist/media/transform-lock.js +50 -0
- package/dist/media/transform-lock.js.map +1 -0
- package/dist/media/transform-registry.d.ts +103 -0
- package/dist/media/transform-registry.d.ts.map +1 -0
- package/dist/media/transform-registry.js +87 -0
- package/dist/media/transform-registry.js.map +1 -0
- package/dist/media/transform-types.d.ts +82 -0
- package/dist/media/transform-types.d.ts.map +1 -0
- package/dist/media/transform-types.js +47 -0
- package/dist/media/transform-types.js.map +1 -0
- package/dist/media/types.d.ts +150 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/types.js +26 -0
- package/dist/media/types.js.map +1 -0
- package/dist/navigation/agent-tools.d.ts +90 -0
- package/dist/navigation/agent-tools.d.ts.map +1 -0
- package/dist/navigation/agent-tools.js +225 -0
- package/dist/navigation/agent-tools.js.map +1 -0
- package/dist/navigation/contracts.d.ts +98 -0
- package/dist/navigation/contracts.d.ts.map +1 -0
- package/dist/navigation/contracts.js +70 -0
- package/dist/navigation/contracts.js.map +1 -0
- package/dist/navigation/index.d.ts +39 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +30 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/menu-service.d.ts +256 -0
- package/dist/navigation/menu-service.d.ts.map +1 -0
- package/dist/navigation/menu-service.js +382 -0
- package/dist/navigation/menu-service.js.map +1 -0
- package/dist/navigation/ports.d.ts +147 -0
- package/dist/navigation/ports.d.ts.map +1 -0
- package/dist/navigation/ports.js +2 -0
- package/dist/navigation/ports.js.map +1 -0
- package/dist/navigation/read-model.d.ts +11 -0
- package/dist/navigation/read-model.d.ts.map +1 -0
- package/dist/navigation/read-model.js +27 -0
- package/dist/navigation/read-model.js.map +1 -0
- package/dist/navigation/reconcile.d.ts +57 -0
- package/dist/navigation/reconcile.d.ts.map +1 -0
- package/dist/navigation/reconcile.js +33 -0
- package/dist/navigation/reconcile.js.map +1 -0
- package/dist/navigation/repo.memory.d.ts +137 -0
- package/dist/navigation/repo.memory.d.ts.map +1 -0
- package/dist/navigation/repo.memory.js +95 -0
- package/dist/navigation/repo.memory.js.map +1 -0
- package/dist/navigation/resolver.d.ts +110 -0
- package/dist/navigation/resolver.d.ts.map +1 -0
- package/dist/navigation/resolver.js +131 -0
- package/dist/navigation/resolver.js.map +1 -0
- package/dist/navigation/tool-registrations.d.ts +43 -0
- package/dist/navigation/tool-registrations.d.ts.map +1 -0
- package/dist/navigation/tool-registrations.js +126 -0
- package/dist/navigation/tool-registrations.js.map +1 -0
- package/dist/navigation/types.d.ts +207 -0
- package/dist/navigation/types.d.ts.map +1 -0
- package/dist/navigation/types.js +14 -0
- package/dist/navigation/types.js.map +1 -0
- package/dist/presentation/index.d.ts +15 -0
- package/dist/presentation/index.d.ts.map +1 -0
- package/dist/presentation/index.js +15 -0
- package/dist/presentation/index.js.map +1 -0
- package/dist/presentation/presentation.d.ts +72 -0
- package/dist/presentation/presentation.d.ts.map +1 -0
- package/dist/presentation/presentation.js +51 -0
- package/dist/presentation/presentation.js.map +1 -0
- package/dist/presentation/repo.memory.d.ts +9 -0
- package/dist/presentation/repo.memory.d.ts.map +1 -0
- package/dist/presentation/repo.memory.js +21 -0
- package/dist/presentation/repo.memory.js.map +1 -0
- package/dist/server/index.d.ts +28 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +28 -0
- package/dist/server/index.js.map +1 -0
- package/dist/settings/agent-tools.d.ts +83 -0
- package/dist/settings/agent-tools.d.ts.map +1 -0
- package/dist/settings/agent-tools.js +200 -0
- package/dist/settings/agent-tools.js.map +1 -0
- package/dist/settings/agent-writable-preferences.d.ts +67 -0
- package/dist/settings/agent-writable-preferences.d.ts.map +1 -0
- package/dist/settings/agent-writable-preferences.js +144 -0
- package/dist/settings/agent-writable-preferences.js.map +1 -0
- package/dist/settings/change-feed.d.ts +74 -0
- package/dist/settings/change-feed.d.ts.map +1 -0
- package/dist/settings/change-feed.js +61 -0
- package/dist/settings/change-feed.js.map +1 -0
- package/dist/settings/definitions-dispatch.d.ts +51 -0
- package/dist/settings/definitions-dispatch.d.ts.map +1 -0
- package/dist/settings/definitions-dispatch.js +86 -0
- package/dist/settings/definitions-dispatch.js.map +1 -0
- package/dist/settings/dictionaries/index.d.ts +45 -0
- package/dist/settings/dictionaries/index.d.ts.map +1 -0
- package/dist/settings/dictionaries/index.js +69 -0
- package/dist/settings/dictionaries/index.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ar.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ar.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ar.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ar.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.bn.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.bn.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.bn.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.bn.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.de.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.de.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.de.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.de.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.es.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.es.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.es.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.es.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fa.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.fa.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fa.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.fa.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fr.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.fr.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fr.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.fr.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hi.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.hi.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hi.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.hi.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hu.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.hu.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hu.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.hu.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.id.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.id.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.id.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.id.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.it.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.it.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.it.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.it.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ja.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ja.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ja.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ja.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ko.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ko.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ko.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ko.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pl.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.pl.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pl.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.pl.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ru.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ru.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ru.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ru.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.th.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.th.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.th.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.th.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.tr.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.tr.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.tr.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.tr.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.uk.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.uk.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.uk.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.uk.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ur.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ur.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ur.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ur.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.js.map +1 -0
- package/dist/settings/ensure-definitions.d.ts +88 -0
- package/dist/settings/ensure-definitions.d.ts.map +1 -0
- package/dist/settings/ensure-definitions.js +91 -0
- package/dist/settings/ensure-definitions.js.map +1 -0
- package/dist/settings/errors.d.ts +36 -0
- package/dist/settings/errors.d.ts.map +1 -0
- package/dist/settings/errors.js +40 -0
- package/dist/settings/errors.js.map +1 -0
- package/dist/settings/index.d.ts +37 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +36 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/ports.d.ts +117 -0
- package/dist/settings/ports.d.ts.map +1 -0
- package/dist/settings/ports.js +2 -0
- package/dist/settings/ports.js.map +1 -0
- package/dist/settings/purge-service.d.ts +53 -0
- package/dist/settings/purge-service.d.ts.map +1 -0
- package/dist/settings/purge-service.js +105 -0
- package/dist/settings/purge-service.js.map +1 -0
- package/dist/settings/repo.memory.d.ts +119 -0
- package/dist/settings/repo.memory.d.ts.map +1 -0
- package/dist/settings/repo.memory.js +199 -0
- package/dist/settings/repo.memory.js.map +1 -0
- package/dist/settings/settings.d.ts +124 -0
- package/dist/settings/settings.d.ts.map +1 -0
- package/dist/settings/settings.js +238 -0
- package/dist/settings/settings.js.map +1 -0
- package/dist/settings/tool-registrations.d.ts +56 -0
- package/dist/settings/tool-registrations.d.ts.map +1 -0
- package/dist/settings/tool-registrations.js +240 -0
- package/dist/settings/tool-registrations.js.map +1 -0
- package/dist/settings/types.d.ts +125 -0
- package/dist/settings/types.d.ts.map +1 -0
- package/dist/settings/types.js +3 -0
- package/dist/settings/types.js.map +1 -0
- package/dist/settings/ui-tab-definitions.d.ts +41 -0
- package/dist/settings/ui-tab-definitions.d.ts.map +1 -0
- package/dist/settings/ui-tab-definitions.js +148 -0
- package/dist/settings/ui-tab-definitions.js.map +1 -0
- package/dist/settings/write-service.d.ts +314 -0
- package/dist/settings/write-service.d.ts.map +1 -0
- package/dist/settings/write-service.js +677 -0
- package/dist/settings/write-service.js.map +1 -0
- package/dist/taxonomy/agent-tools.d.ts +76 -0
- package/dist/taxonomy/agent-tools.d.ts.map +1 -0
- package/dist/taxonomy/agent-tools.js +178 -0
- package/dist/taxonomy/agent-tools.js.map +1 -0
- package/dist/taxonomy/content-lookup.d.ts +45 -0
- package/dist/taxonomy/content-lookup.d.ts.map +1 -0
- package/dist/taxonomy/content-lookup.js +9 -0
- package/dist/taxonomy/content-lookup.js.map +1 -0
- package/dist/taxonomy/index.d.ts +38 -0
- package/dist/taxonomy/index.d.ts.map +1 -0
- package/dist/taxonomy/index.js +38 -0
- package/dist/taxonomy/index.js.map +1 -0
- package/dist/taxonomy/list.d.ts +39 -0
- package/dist/taxonomy/list.d.ts.map +1 -0
- package/dist/taxonomy/list.js +19 -0
- package/dist/taxonomy/list.js.map +1 -0
- package/dist/taxonomy/merge-term.d.ts +94 -0
- package/dist/taxonomy/merge-term.d.ts.map +1 -0
- package/dist/taxonomy/merge-term.js +65 -0
- package/dist/taxonomy/merge-term.js.map +1 -0
- package/dist/taxonomy/repo.memory.d.ts +160 -0
- package/dist/taxonomy/repo.memory.d.ts.map +1 -0
- package/dist/taxonomy/repo.memory.js +171 -0
- package/dist/taxonomy/repo.memory.js.map +1 -0
- package/dist/taxonomy/validation-chain.d.ts +114 -0
- package/dist/taxonomy/validation-chain.d.ts.map +1 -0
- package/dist/taxonomy/validation-chain.js +152 -0
- package/dist/taxonomy/validation-chain.js.map +1 -0
- package/dist/taxonomy/write-service.d.ts +387 -0
- package/dist/taxonomy/write-service.d.ts.map +1 -0
- package/dist/taxonomy/write-service.js +350 -0
- package/dist/taxonomy/write-service.js.map +1 -0
- package/dist/workspace/agent-tools.d.ts +67 -0
- package/dist/workspace/agent-tools.d.ts.map +1 -0
- package/dist/workspace/agent-tools.js +103 -0
- package/dist/workspace/agent-tools.js.map +1 -0
- package/dist/workspace/create.d.ts +116 -0
- package/dist/workspace/create.d.ts.map +1 -0
- package/dist/workspace/create.js +69 -0
- package/dist/workspace/create.js.map +1 -0
- package/dist/workspace/delete.d.ts +50 -0
- package/dist/workspace/delete.d.ts.map +1 -0
- package/dist/workspace/delete.js +24 -0
- package/dist/workspace/delete.js.map +1 -0
- package/dist/workspace/index.d.ts +27 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +27 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/repo.memory.d.ts +34 -0
- package/dist/workspace/repo.memory.d.ts.map +1 -0
- package/dist/workspace/repo.memory.js +50 -0
- package/dist/workspace/repo.memory.js.map +1 -0
- package/dist/workspace/tool-registrations.d.ts +38 -0
- package/dist/workspace/tool-registrations.d.ts.map +1 -0
- package/dist/workspace/tool-registrations.js +71 -0
- package/dist/workspace/tool-registrations.js.map +1 -0
- package/dist/workspace/update.d.ts +52 -0
- package/dist/workspace/update.d.ts.map +1 -0
- package/dist/workspace/update.js +41 -0
- package/dist/workspace/update.js.map +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Permission catalog (flat dotted strings, code-side registered)
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
/**
|
|
5
|
+
* The `admin.menus.*` permission strings (renamed
|
|
6
|
+
* from the flat `navigation.manage` to the frozen `admin.<section>.<action>`
|
|
7
|
+
* convention, and split by action so force-purge no longer shares a
|
|
8
|
+
* permission with ordinary edits). `assign` is split from `update` because
|
|
9
|
+
* changing where a menu appears on the live site is higher-trust than
|
|
10
|
+
* editing an item label (mirrors the media library's `media.delete.force` /
|
|
11
|
+
* `media.upload_svg` splits); `delete.force` is split from `delete` for the
|
|
12
|
+
* same reason. The legacy `navigation.manage` string
|
|
13
|
+
* stays registered (deprecated, not deleted) in the host's identity permission
|
|
14
|
+
* registry until the Point of No Return — it
|
|
15
|
+
* is not part of this catalog. See `docs/decisions/permission-catalog-migration.md`
|
|
16
|
+
* for the migration's completion criteria.
|
|
17
|
+
*/
|
|
18
|
+
export const NAVIGATION_PERMISSIONS = [
|
|
19
|
+
"admin.menus.read",
|
|
20
|
+
"admin.menus.create",
|
|
21
|
+
"admin.menus.update",
|
|
22
|
+
"admin.menus.delete",
|
|
23
|
+
"admin.menus.delete.force",
|
|
24
|
+
"admin.menus.assign",
|
|
25
|
+
"admin.menus.manage",
|
|
26
|
+
];
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Domain events (outbox, async, workspace-scoped)
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
/** Stable event names emitted on the outbox for async consumers. */
|
|
31
|
+
export const NAVIGATION_EVENTS = [
|
|
32
|
+
"navigation.menu.created",
|
|
33
|
+
"navigation.menu.updated",
|
|
34
|
+
"navigation.menu.deleted",
|
|
35
|
+
"navigation.location.assigned",
|
|
36
|
+
"navigation.location.unassigned",
|
|
37
|
+
];
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Hook points (synchronous, ordered, declared-before-attached)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
/**
|
|
42
|
+
* Typed navigation hook points. Filters transform a value in-line (events
|
|
43
|
+
* cannot); the action lets extensions register locations. Declared here so the
|
|
44
|
+
* SDK/type system can enforce "declared points only" (the anti-hook-rot rule,
|
|
45
|
+
* the platform's v2 design doc §7).
|
|
46
|
+
*/
|
|
47
|
+
export const NAVIGATION_HOOKS = [
|
|
48
|
+
/** filter: transform a single resolved item (badge/count/dynamic label). */
|
|
49
|
+
"navigation.item.resolve",
|
|
50
|
+
/** filter: transform the whole resolved tree before render (visibility). */
|
|
51
|
+
"navigation.tree.filter",
|
|
52
|
+
/** action: register additional theme/plugin location keys. */
|
|
53
|
+
"navigation.locations.register",
|
|
54
|
+
];
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// AI tool surface (clients of the SAME gateway handlers — dogfooding the media library's pattern)
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* AI tools are thin clients of the same command/read handlers admins use (no
|
|
60
|
+
* back door). Agents are delegated principals (`grant ∩ delegator`);
|
|
61
|
+
* `update`/`assign`/`delete` are HITL through the change-set review layer.
|
|
62
|
+
*/
|
|
63
|
+
export const NAVIGATION_AI_TOOLS = [
|
|
64
|
+
"navigation.search",
|
|
65
|
+
"navigation.get",
|
|
66
|
+
"navigation.where_used",
|
|
67
|
+
"navigation.update", // HITL
|
|
68
|
+
"navigation.assign", // HITL
|
|
69
|
+
];
|
|
70
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/navigation/contracts.ts"],"names":[],"mappings":"AAmBA,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,0BAA0B;IAC1B,oBAAoB;IACpB,oBAAoB;CACZ,CAAC;AAgDX,8EAA8E;AAC9E,kDAAkD;AAClD,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,8BAA8B;IAC9B,gCAAgC;CACxB,CAAC;AAeX,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,4EAA4E;IAC5E,yBAAyB;IACzB,4EAA4E;IAC5E,wBAAwB;IACxB,8DAA8D;IAC9D,+BAA+B;CACvB,CAAC;AAIX,8EAA8E;AAC9E,kGAAkG;AAClG,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;CACpB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Public surface (barrel) for the `navigation` library.
|
|
3
|
+
*
|
|
4
|
+
* A module's public contract is its `index.ts` — deep imports
|
|
5
|
+
* from outside this directory should go through here.
|
|
6
|
+
*/
|
|
7
|
+
export type { NavTargetKind, ReservedNavTargetKind, NavTarget, NavEntryTarget, NavTermTarget, NavUrlTarget, NavRouteTarget, NavItemAttrs, NavItemNode, NavMenuDoc, NavMenuEntry, MenuStatus, NavLocationKey, NavLocationBindingRow, NavLocationDescriptor, ResolvedNavItem, ResolvedNav, } from "./types.js";
|
|
8
|
+
export { NAV_MENU_CONTENT_TYPE, NAV_FIELD_NAMESPACE, NAV_DOC_TYPE } from "./types.js";
|
|
9
|
+
export type { NavLocationBindingRepoPort, NavResolveContext, NavTargetResolver, NavMenuReadModel, NavLocationRegistry, } from "./ports.js";
|
|
10
|
+
export type { NavigationPermission, CreateMenuInput, UpdateMenuInput, AssignLocationInput, UnassignLocationInput, DeleteMenuInput, NavigationEventName, NavMenuChangedPayload, NavLocationChangedPayload, NavigationHookName, NavigationAiTool, NavWhereUsedResult, } from "./contracts.js";
|
|
11
|
+
export { NAVIGATION_PERMISSIONS, NAVIGATION_EVENTS, NAVIGATION_HOOKS, NAVIGATION_AI_TOOLS, } from "./contracts.js";
|
|
12
|
+
export { createNavMenuReadModel, type NavMenuReadModelDeps } from "./read-model.js";
|
|
13
|
+
/**
|
|
14
|
+
* `MenuRepoPort` is navigation-owned (not part of the frozen `ports.ts` ADR surface — see
|
|
15
|
+
* `repo.memory.ts`'s file header for why) but is a real public contract: a host's own SQLite
|
|
16
|
+
* adapter implements it directly, the same way it implements `NavLocationBindingRepoPort`.
|
|
17
|
+
*/
|
|
18
|
+
export { InMemoryMenuRepo, InMemoryNavLocationBindingRepo, type MenuRepoPort, } from "./repo.memory.js";
|
|
19
|
+
export { createMenu, updateMenuTree, assignLocation, deleteMenu, validateAndCloneTree, MenuNotFoundError, MenuValidationError, MenuConflictError, MenuLocationBoundError, DEFAULT_MAX_TREE_DEPTH, DEFAULT_MAX_ITEM_COUNT, type TreeValidationLimits, type CreateMenuDeps, type CreateMenuServiceInput, type CreateMenuRequired, type CreateMenuOptional, type UpdateMenuTreeDeps, type UpdateMenuTreeServiceInput, type UpdateMenuTreeRequired, type UpdateMenuTreeOptional, type AssignLocationDeps, type AssignLocationServiceInput, type AssignLocationRequired, type AssignLocationOptional, type DeleteMenuDeps, type DeleteMenuServiceInput, type DeleteMenuRequired, type DeleteMenuOptional, } from "./menu-service.js";
|
|
20
|
+
export { resolveForLocation, resolveMenuDoc, type ResolveTargetHrefFn, type ResolvedTargetHref, type ResolveForLocationDeps, type ResolveForLocationServiceInput, type ResolveForLocationRequired, type ResolveForLocationOptional, } from "./resolver.js";
|
|
21
|
+
export { rebuildNavLocationBindings, type RebuildNavLocationBindingsDeps, type RebuildNavLocationBindingsResult, } from "./reconcile.js";
|
|
22
|
+
/** The agent-tool surface for this domain (see `agent-tools.ts` for what is deliberately omitted). */
|
|
23
|
+
export { menusAgentToolCatalog, type AgentToolDefinition as NavigationAgentToolDefinition, type AgentToolSideEffect as NavigationAgentToolSideEffect, type AgentToolActorClassRule as NavigationAgentToolActorClassRule, } from "./agent-tools.js";
|
|
24
|
+
/**
|
|
25
|
+
* The agent-tool wiring for this domain.
|
|
26
|
+
*
|
|
27
|
+
* `MenusToolDeps` is declared structurally rather than derived from any host's request-scoped
|
|
28
|
+
* dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
|
|
29
|
+
* the shape is the contract, so no host type needs to be named here.
|
|
30
|
+
*/
|
|
31
|
+
export { buildMenusRegistrations, menusDerivedRisk, type MenusToolDeps, } from "./tool-registrations.js";
|
|
32
|
+
/**
|
|
33
|
+
* There is no wiring/composition export here, deliberately. Assembling a concrete `MenuRepoPort`/
|
|
34
|
+
* `NavLocationBindingRepoPort` pair over a specific database handle would put one host's persistence
|
|
35
|
+
* choice on this library's public contract and drag that host's schema into every consumer's
|
|
36
|
+
* dependency closure. Hosts compose their own; this entry point exports the ports they compose
|
|
37
|
+
* against.
|
|
38
|
+
*/
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtF,YAAY,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpF;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,GACtC,MAAM,gBAAgB,CAAC;AAExB,sGAAsG;AACtG,OAAO,EACL,qBAAqB,EACrB,KAAK,mBAAmB,IAAI,6BAA6B,EACzD,KAAK,mBAAmB,IAAI,6BAA6B,EACzD,KAAK,uBAAuB,IAAI,iCAAiC,GAClE,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;GAMG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { NAV_MENU_CONTENT_TYPE, NAV_FIELD_NAMESPACE, NAV_DOC_TYPE } from "./types.js";
|
|
2
|
+
export { NAVIGATION_PERMISSIONS, NAVIGATION_EVENTS, NAVIGATION_HOOKS, NAVIGATION_AI_TOOLS, } from "./contracts.js";
|
|
3
|
+
export { createNavMenuReadModel } from "./read-model.js";
|
|
4
|
+
/**
|
|
5
|
+
* `MenuRepoPort` is navigation-owned (not part of the frozen `ports.ts` ADR surface — see
|
|
6
|
+
* `repo.memory.ts`'s file header for why) but is a real public contract: a host's own SQLite
|
|
7
|
+
* adapter implements it directly, the same way it implements `NavLocationBindingRepoPort`.
|
|
8
|
+
*/
|
|
9
|
+
export { InMemoryMenuRepo, InMemoryNavLocationBindingRepo, } from "./repo.memory.js";
|
|
10
|
+
export { createMenu, updateMenuTree, assignLocation, deleteMenu, validateAndCloneTree, MenuNotFoundError, MenuValidationError, MenuConflictError, MenuLocationBoundError, DEFAULT_MAX_TREE_DEPTH, DEFAULT_MAX_ITEM_COUNT, } from "./menu-service.js";
|
|
11
|
+
export { resolveForLocation, resolveMenuDoc, } from "./resolver.js";
|
|
12
|
+
export { rebuildNavLocationBindings, } from "./reconcile.js";
|
|
13
|
+
/** The agent-tool surface for this domain (see `agent-tools.ts` for what is deliberately omitted). */
|
|
14
|
+
export { menusAgentToolCatalog, } from "./agent-tools.js";
|
|
15
|
+
/**
|
|
16
|
+
* The agent-tool wiring for this domain.
|
|
17
|
+
*
|
|
18
|
+
* `MenusToolDeps` is declared structurally rather than derived from any host's request-scoped
|
|
19
|
+
* dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
|
|
20
|
+
* the shape is the contract, so no host type needs to be named here.
|
|
21
|
+
*/
|
|
22
|
+
export { buildMenusRegistrations, menusDerivedRisk, } from "./tool-registrations.js";
|
|
23
|
+
/**
|
|
24
|
+
* There is no wiring/composition export here, deliberately. Assembling a concrete `MenuRepoPort`/
|
|
25
|
+
* `NavLocationBindingRepoPort` pair over a specific database handle would put one host's persistence
|
|
26
|
+
* choice on this library's public contract and drag that host's schema into every consumer's
|
|
27
|
+
* dependency closure. Hosts compose their own; this entry point exports the ports they compose
|
|
28
|
+
* against.
|
|
29
|
+
*/
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBtF,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAA6B,MAAM,iBAAiB,CAAC;AAEpF;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,8BAA8B,GAE/B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GAkBvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,cAAc,GAOf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,GAG3B,MAAM,gBAAgB,CAAC;AAExB,sGAAsG;AACtG,OAAO,EACL,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;GAMG"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Write-service for the `navigation` library.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* Implements the menu mutation slice: create, whole-tree update (OCC), soft
|
|
6
|
+
* delete → hard purge, and location assignment. Mirrors the host's `post`
|
|
7
|
+
* feature style (required/optional param objects, typed errors, OCC via
|
|
8
|
+
* `version`).
|
|
9
|
+
*
|
|
10
|
+
* How it relates to the project:
|
|
11
|
+
* - Storage is `MenuRepoPort` (`repo.memory.ts`) — a self-contained repo, not
|
|
12
|
+
* the generic entries repo (see `repo.memory.ts`'s file header for why).
|
|
13
|
+
* - Location assignment additionally writes `NavLocationBindingRepoPort`
|
|
14
|
+
* (`ports.ts`), the one real port this library declares.
|
|
15
|
+
* - In production this whole module runs inside the command
|
|
16
|
+
* gateway/write chokepoint (same-transaction revision, attribution,
|
|
17
|
+
* `entry_refs` extraction). That gateway is not implemented as running code
|
|
18
|
+
* yet, so these functions are the chokepoint's future *contents*, called
|
|
19
|
+
* directly for now.
|
|
20
|
+
*
|
|
21
|
+
* Architectural role:
|
|
22
|
+
* Feature logic only. No Express/route code, no direct SQL — everything goes
|
|
23
|
+
* through the injected repo ports (`deps`).
|
|
24
|
+
*/
|
|
25
|
+
import type { ClockPort, IdGeneratorPort, OutboxPort, UUID } from "../core/ports.js";
|
|
26
|
+
import type { MenuRepoPort } from "./repo.memory.js";
|
|
27
|
+
import type { NavLocationBindingRepoPort } from "./ports.js";
|
|
28
|
+
import { type NavItemNode, type NavLocationBindingRow, type NavLocationKey, type NavMenuEntry } from "./types.js";
|
|
29
|
+
export declare class MenuNotFoundError extends Error {
|
|
30
|
+
}
|
|
31
|
+
export declare class MenuValidationError extends Error {
|
|
32
|
+
}
|
|
33
|
+
export declare class MenuConflictError extends Error {
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The 409-style purge rejection: hard delete is blocked while the menu is
|
|
37
|
+
* still bound to at least one theme location (deletion ladder).
|
|
38
|
+
* Carries the offending location keys so a caller can render "unassign these
|
|
39
|
+
* first" without a second lookup.
|
|
40
|
+
*/
|
|
41
|
+
export declare class MenuLocationBoundError extends MenuConflictError {
|
|
42
|
+
readonly boundLocations: readonly NavLocationKey[];
|
|
43
|
+
constructor(message: string, boundLocations: readonly NavLocationKey[]);
|
|
44
|
+
}
|
|
45
|
+
/** Default max nesting depth (root = depth 1). Configurable. */
|
|
46
|
+
export declare const DEFAULT_MAX_TREE_DEPTH = 5;
|
|
47
|
+
/** Default max total item count across the whole tree. */
|
|
48
|
+
export declare const DEFAULT_MAX_ITEM_COUNT = 500;
|
|
49
|
+
export interface TreeValidationLimits {
|
|
50
|
+
maxDepth?: number | undefined;
|
|
51
|
+
maxItemCount?: number | undefined;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Validates a candidate item tree and returns a defensively-cloned copy.
|
|
55
|
+
*
|
|
56
|
+
* Checks (total/bounded validation + target integrity):
|
|
57
|
+
* - every node has a non-empty `id`, unique across the whole tree (id
|
|
58
|
+
* stability is a caller responsibility — see `updateMenuTree` doc for the
|
|
59
|
+
* simplification this build accepts);
|
|
60
|
+
* - nesting depth stays within `maxDepth`;
|
|
61
|
+
* - total item count stays within `maxItemCount`;
|
|
62
|
+
* - every target's `kind` is one of the four v1 kinds — reserved kinds
|
|
63
|
+
* (`dynamicQuery`, `content`) are rejected with a clear "not yet" error
|
|
64
|
+
* rather than silently accepted;
|
|
65
|
+
* - `url` targets reject a scheme denylist (`javascript:`, `data:`, `vbscript:`).
|
|
66
|
+
*
|
|
67
|
+
* @complexity O(n) over total node count for one full walk; no per-node
|
|
68
|
+
* backtracking. Space is O(n) for the cloned tree plus O(n) for the id set.
|
|
69
|
+
* @overallScore 100
|
|
70
|
+
*/
|
|
71
|
+
export declare function validateAndCloneTree(items: readonly NavItemNode[], limits?: TreeValidationLimits): NavItemNode[];
|
|
72
|
+
export interface CreateMenuDeps {
|
|
73
|
+
repo: MenuRepoPort;
|
|
74
|
+
clock: ClockPort;
|
|
75
|
+
idGen: IdGeneratorPort;
|
|
76
|
+
/** Enqueues `navigation.menu.created` after a successful save. */
|
|
77
|
+
outbox: OutboxPort;
|
|
78
|
+
}
|
|
79
|
+
export interface CreateMenuServiceInput {
|
|
80
|
+
workspaceId: UUID;
|
|
81
|
+
title: string;
|
|
82
|
+
slug: string;
|
|
83
|
+
/** Optional initial tree; defaults to an empty menu. Items must carry ids. */
|
|
84
|
+
items?: readonly NavItemNode[] | undefined;
|
|
85
|
+
}
|
|
86
|
+
export interface CreateMenuRequired {
|
|
87
|
+
deps: CreateMenuDeps;
|
|
88
|
+
input: CreateMenuServiceInput;
|
|
89
|
+
}
|
|
90
|
+
export interface CreateMenuOptional {
|
|
91
|
+
limits?: TreeValidationLimits | undefined;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Creates a new `menu` entry in `published` status with no location
|
|
95
|
+
* assignments. Rejects a duplicate slug within the workspace.
|
|
96
|
+
*
|
|
97
|
+
* Was `draft` originally (mirroring `posts`), changed 2026-08-09 on explicit product direction: a
|
|
98
|
+
* menu has no separate review/approval workflow the way a post does, and `resolveForLocation`
|
|
99
|
+
* (`resolver.ts`) never actually branched on `status` — the field only ever gated the trash/purge
|
|
100
|
+
* lifecycle. Landing a new menu in `draft` produced a status label at odds with its real behavior
|
|
101
|
+
* (already fully live wherever it gets bound to a location) rather than gating anything real, so
|
|
102
|
+
* the default now matches the actual behavior instead of implying a workflow that doesn't exist.
|
|
103
|
+
*
|
|
104
|
+
* @complexity O(n) in the initial tree size for validation; O(m) in existing
|
|
105
|
+
* menu count for the slug-uniqueness scan (repo-dependent).
|
|
106
|
+
* @overallScore 100
|
|
107
|
+
*/
|
|
108
|
+
export declare function createMenu(required: CreateMenuRequired, optional?: CreateMenuOptional): Promise<{
|
|
109
|
+
menu: NavMenuEntry;
|
|
110
|
+
}>;
|
|
111
|
+
export interface UpdateMenuTreeDeps {
|
|
112
|
+
repo: MenuRepoPort;
|
|
113
|
+
clock: ClockPort;
|
|
114
|
+
/** Not previously present on this deps bag — needed to mint the outbox event's id. */
|
|
115
|
+
idGen: IdGeneratorPort;
|
|
116
|
+
/** Enqueues `navigation.menu.updated` after a successful save. */
|
|
117
|
+
outbox: OutboxPort;
|
|
118
|
+
}
|
|
119
|
+
export interface UpdateMenuTreeServiceInput {
|
|
120
|
+
workspaceId: UUID;
|
|
121
|
+
id: UUID;
|
|
122
|
+
/** The entry `version` this edit was based on — OCC guard. */
|
|
123
|
+
expectedVersion: number;
|
|
124
|
+
title?: string | undefined;
|
|
125
|
+
slug?: string | undefined;
|
|
126
|
+
/** The full replacement tree (whole-tree edit). */
|
|
127
|
+
items: readonly NavItemNode[];
|
|
128
|
+
}
|
|
129
|
+
export interface UpdateMenuTreeRequired {
|
|
130
|
+
deps: UpdateMenuTreeDeps;
|
|
131
|
+
input: UpdateMenuTreeServiceInput;
|
|
132
|
+
}
|
|
133
|
+
export interface UpdateMenuTreeOptional {
|
|
134
|
+
limits?: TreeValidationLimits | undefined;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Replaces a menu's whole item tree, guarded by optimistic concurrency on the
|
|
138
|
+
* entry `version` (matches the host's `updatePost` pattern).
|
|
139
|
+
*
|
|
140
|
+
* Id-stability note ("an update may not renumber surviving items"):
|
|
141
|
+
* this build enforces only that ids are present and unique within the
|
|
142
|
+
* submitted tree (`validateAndCloneTree`). Detecting whether a *specific*
|
|
143
|
+
* surviving node kept its original id would require diffing against the
|
|
144
|
+
* previous tree and is deferred — a caller-discipline requirement for now,
|
|
145
|
+
* not a runtime-enforced invariant.
|
|
146
|
+
*
|
|
147
|
+
* @complexity O(n) in the new tree size for validation; O(1) additional repo
|
|
148
|
+
* calls (one read, at most one slug-uniqueness read, one write).
|
|
149
|
+
* @overallScore 90
|
|
150
|
+
* @findings Medium: id-stability across edits (ids not renumbered on survive)
|
|
151
|
+
* is documented but not runtime-enforced — see doc comment above. Deferred
|
|
152
|
+
* pending a tree-diff mechanism; would need the previous tree's id set passed
|
|
153
|
+
* in to check "no id vanished and reappeared elsewhere," which is more than
|
|
154
|
+
* this slice's scope calls for.
|
|
155
|
+
*/
|
|
156
|
+
export declare function updateMenuTree(required: UpdateMenuTreeRequired, optional?: UpdateMenuTreeOptional): Promise<{
|
|
157
|
+
menu: NavMenuEntry;
|
|
158
|
+
}>;
|
|
159
|
+
export interface AssignLocationDeps {
|
|
160
|
+
repo: MenuRepoPort;
|
|
161
|
+
bindingRepo: NavLocationBindingRepoPort;
|
|
162
|
+
clock: ClockPort;
|
|
163
|
+
/** Not previously present on this deps bag — needed to mint outbox event ids. */
|
|
164
|
+
idGen: IdGeneratorPort;
|
|
165
|
+
/** Enqueues `navigation.location.assigned` (+ `.unassigned` on reassignment). */
|
|
166
|
+
outbox: OutboxPort;
|
|
167
|
+
}
|
|
168
|
+
export interface AssignLocationServiceInput {
|
|
169
|
+
workspaceId: UUID;
|
|
170
|
+
menuId: UUID;
|
|
171
|
+
locationKey: NavLocationKey;
|
|
172
|
+
}
|
|
173
|
+
export interface AssignLocationRequired {
|
|
174
|
+
deps: AssignLocationDeps;
|
|
175
|
+
input: AssignLocationServiceInput;
|
|
176
|
+
}
|
|
177
|
+
export interface AssignLocationOptional {
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Assigns a menu to a theme location. This writes two
|
|
181
|
+
* representations that must stay in lockstep:
|
|
182
|
+
* 1. the menu's own `locations` field (source of truth, revisioned), and
|
|
183
|
+
* 2. the derived `nav_location_bindings` row (uniqueness index).
|
|
184
|
+
*
|
|
185
|
+
* If the location was already bound to a *different* menu, that menu is
|
|
186
|
+
* **reassigned away** (last-writer-wins, the chosen
|
|
187
|
+
* default) and its `locations` field is updated to drop the key — recorded as
|
|
188
|
+
* its own revision-worthy write.
|
|
189
|
+
*
|
|
190
|
+
* Atomicity note: these writes are
|
|
191
|
+
* logically ONE transaction — the binding-index write is a second in-tx
|
|
192
|
+
* participant alongside a slug-change-capture slot in the host's routing
|
|
193
|
+
* layer. Neither real cross-write transactions nor that routing layer exist
|
|
194
|
+
* as running code yet anywhere this library has shipped, so this function
|
|
195
|
+
* performs the writes sequentially with no rollback if a later step throws.
|
|
196
|
+
* This is an accepted, documented gap pending the command gateway's
|
|
197
|
+
* transaction machinery — do not copy this sequencing pattern into code that
|
|
198
|
+
* has real transactions available.
|
|
199
|
+
*
|
|
200
|
+
* @complexity O(1) repo calls (bounded: at most two menu reads/writes plus one
|
|
201
|
+
* binding upsert), independent of workspace size.
|
|
202
|
+
* @overallScore 90
|
|
203
|
+
* @findings Medium: no rollback across the two writes (menu save, then
|
|
204
|
+
* binding upsert) if the second fails, leaving the derived index stale until
|
|
205
|
+
* a rebuild. Acceptable because the index is declared rebuildable-by-definition;
|
|
206
|
+
* flagged as tech debt for when transactions
|
|
207
|
+
* exist.
|
|
208
|
+
*/
|
|
209
|
+
export declare function assignLocation(required: AssignLocationRequired, _optional?: AssignLocationOptional): Promise<{
|
|
210
|
+
menu: NavMenuEntry;
|
|
211
|
+
binding: NavLocationBindingRow;
|
|
212
|
+
displacedMenu: NavMenuEntry | null;
|
|
213
|
+
}>;
|
|
214
|
+
export interface DeleteMenuDeps {
|
|
215
|
+
repo: MenuRepoPort;
|
|
216
|
+
bindingRepo: NavLocationBindingRepoPort;
|
|
217
|
+
clock: ClockPort;
|
|
218
|
+
/** Not previously present on this deps bag — needed to mint outbox event ids. */
|
|
219
|
+
idGen: IdGeneratorPort;
|
|
220
|
+
/** Enqueues `navigation.menu.updated` (trash) or `navigation.menu.deleted` (purge); nothing on a blocked purge. */
|
|
221
|
+
outbox: OutboxPort;
|
|
222
|
+
}
|
|
223
|
+
export interface DeleteMenuServiceInput {
|
|
224
|
+
workspaceId: UUID;
|
|
225
|
+
id: UUID;
|
|
226
|
+
/** Force past the 409 dangling-location guard (needs `navigation.delete.force`). */
|
|
227
|
+
force?: boolean | undefined;
|
|
228
|
+
}
|
|
229
|
+
export interface DeleteMenuRequired {
|
|
230
|
+
deps: DeleteMenuDeps;
|
|
231
|
+
input: DeleteMenuServiceInput;
|
|
232
|
+
}
|
|
233
|
+
export interface DeleteMenuOptional {
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Deletion ladder (mirrors the media library's):
|
|
237
|
+
* 1. First call on a non-trashed menu **soft-deletes** it (`status: 'trash'`,
|
|
238
|
+
* revisioned) and returns — no purge yet.
|
|
239
|
+
* 2. A second call on an already-trashed menu attempts the **hard purge**. If
|
|
240
|
+
* the menu is still bound to any location, purge is rejected with
|
|
241
|
+
* `MenuLocationBoundError` (409-style) listing the bound keys, unless
|
|
242
|
+
* `force` is set — permission-gating that error behind
|
|
243
|
+
* `navigation.delete.force` is the caller's (gateway's) job, not this
|
|
244
|
+
* function's; this function only enforces the *shape* of the guard.
|
|
245
|
+
* 3. On a successful purge, the menu row and all of its location bindings are
|
|
246
|
+
* removed.
|
|
247
|
+
*
|
|
248
|
+
* @complexity O(1) repo calls; O(k) bindings scanned where k = locations this
|
|
249
|
+
* menu holds (small, bounded by registered locations).
|
|
250
|
+
* @overallScore 100
|
|
251
|
+
*/
|
|
252
|
+
export declare function deleteMenu(required: DeleteMenuRequired, _optional?: DeleteMenuOptional): Promise<{
|
|
253
|
+
menu: NavMenuEntry | null;
|
|
254
|
+
purged: boolean;
|
|
255
|
+
}>;
|
|
256
|
+
//# sourceMappingURL=menu-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-service.d.ts","sourceRoot":"","sources":["../../src/navigation/menu-service.ts"],"names":[],"mappings":"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"}
|