@kywi-software/core 0.14.0 → 0.15.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/AGENT-PATTERNS.md +153 -17
- package/README.md +38 -12
- package/dist/admin/chrome.d.ts.map +1 -1
- package/dist/admin/chrome.js +6 -7
- package/dist/admin/chrome.js.map +1 -1
- package/dist/admin/field-components.d.ts.map +1 -1
- package/dist/admin/field-components.js +27 -1
- package/dist/admin/field-components.js.map +1 -1
- package/dist/admin/form-helpers.d.ts.map +1 -1
- package/dist/admin/form-helpers.js +6 -1
- package/dist/admin/form-helpers.js.map +1 -1
- package/dist/admin/layout-editor/chrome-env.d.ts +35 -0
- package/dist/admin/layout-editor/chrome-env.d.ts.map +1 -0
- package/dist/admin/layout-editor/chrome-env.js +13 -0
- package/dist/admin/layout-editor/chrome-env.js.map +1 -0
- package/dist/admin/layout-editor/component-actions.d.ts +58 -7
- package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +131 -5
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/component-fork.d.ts +4 -4
- package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-fork.js +76 -10
- package/dist/admin/layout-editor/component-fork.js.map +1 -1
- package/dist/admin/layout-editor/component-picker-field.d.ts +17 -3
- package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-picker-field.js +5 -2
- package/dist/admin/layout-editor/component-picker-field.js.map +1 -1
- package/dist/admin/layout-editor/drag-feedback.d.ts +25 -1
- package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -1
- package/dist/admin/layout-editor/drag-feedback.js +9 -0
- package/dist/admin/layout-editor/drag-feedback.js.map +1 -1
- package/dist/admin/layout-editor/drag-utils.d.ts +103 -5
- package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
- package/dist/admin/layout-editor/drag-utils.js +131 -4
- package/dist/admin/layout-editor/drag-utils.js.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts +11 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +134 -20
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.d.ts +58 -3
- package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.js +71 -9
- package/dist/admin/layout-editor/editor-dialog.js.map +1 -1
- package/dist/admin/layout-editor/editor-state.d.ts +119 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +188 -6
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/editor-toolbar.d.ts +10 -1
- package/dist/admin/layout-editor/editor-toolbar.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-toolbar.js +2 -2
- package/dist/admin/layout-editor/editor-toolbar.js.map +1 -1
- package/dist/admin/layout-editor/editor.css +216 -8
- package/dist/admin/layout-editor/inline-text.d.ts +15 -1
- package/dist/admin/layout-editor/inline-text.d.ts.map +1 -1
- package/dist/admin/layout-editor/inline-text.js +30 -2
- package/dist/admin/layout-editor/inline-text.js.map +1 -1
- package/dist/admin/layout-editor/layout-editor.d.ts +21 -16
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +40 -17
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/linked-component-notes.d.ts +88 -0
- package/dist/admin/layout-editor/linked-component-notes.d.ts.map +1 -0
- package/dist/admin/layout-editor/linked-component-notes.js +88 -0
- package/dist/admin/layout-editor/linked-component-notes.js.map +1 -0
- package/dist/admin/layout-editor/module-overlay.d.ts +23 -4
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +56 -10
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-config.js +9 -2
- package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-panel.d.ts +75 -0
- package/dist/admin/layout-editor/module-variant-container-panel.d.ts.map +1 -0
- package/dist/admin/layout-editor/module-variant-container-panel.js +29 -0
- package/dist/admin/layout-editor/module-variant-container-panel.js.map +1 -0
- package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
- package/dist/admin/layout-editor/node-lookup.js +33 -3
- package/dist/admin/layout-editor/node-lookup.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +19 -4
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +28 -11
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +75 -125
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.js +11 -2
- package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/use-chrome-flip.d.ts +99 -11
- package/dist/admin/layout-editor/use-chrome-flip.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-chrome-flip.js +268 -97
- package/dist/admin/layout-editor/use-chrome-flip.js.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.d.ts +13 -0
- package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.js +116 -20
- package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
- package/dist/admin/layout-editor/use-component-fork.d.ts +49 -19
- package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-fork.js +28 -19
- package/dist/admin/layout-editor/use-component-fork.js.map +1 -1
- package/dist/admin/layout-editor/use-component-library.d.ts +4 -4
- package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-library.js +1 -1
- package/dist/admin/layout-editor/use-component-library.js.map +1 -1
- package/dist/admin/layout-editor/use-editor-dnd.d.ts +10 -0
- package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-editor-dnd.js +234 -14
- package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -1
- package/dist/admin/layout-editor/variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/variant-container-config.js +1 -1
- package/dist/admin/layout-editor/variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/variant-editor.d.ts +16 -15
- package/dist/admin/layout-editor/variant-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/variant-editor.js +16 -5
- package/dist/admin/layout-editor/variant-editor.js.map +1 -1
- package/dist/admin/primitives.d.ts.map +1 -1
- package/dist/admin/primitives.js +1 -1
- package/dist/admin/primitives.js.map +1 -1
- package/dist/admin/registry.d.ts +12 -0
- package/dist/admin/registry.d.ts.map +1 -1
- package/dist/admin/registry.js +12 -0
- package/dist/admin/registry.js.map +1 -1
- package/dist/admin/server.d.ts +10 -1
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +4 -1
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/site-switcher.d.ts +16 -3
- package/dist/admin/site-switcher.d.ts.map +1 -1
- package/dist/admin/site-switcher.js +18 -3
- package/dist/admin/site-switcher.js.map +1 -1
- package/dist/admin/styles/admin.css +0 -3
- package/dist/admin/surface-matcher.d.ts +6 -2
- package/dist/admin/surface-matcher.d.ts.map +1 -1
- package/dist/admin/surface-matcher.js +42 -5
- package/dist/admin/surface-matcher.js.map +1 -1
- package/dist/admin/surfaces/components/components-data.d.ts +31 -11
- package/dist/admin/surfaces/components/components-data.d.ts.map +1 -1
- package/dist/admin/surfaces/components/components-data.js +17 -4
- package/dist/admin/surfaces/components/components-data.js.map +1 -1
- package/dist/admin/surfaces/components/components-list.d.ts.map +1 -1
- package/dist/admin/surfaces/components/components-list.js +20 -7
- package/dist/admin/surfaces/components/components-list.js.map +1 -1
- package/dist/admin/surfaces/components/definition-canvas.d.ts +11 -3
- package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
- package/dist/admin/surfaces/components/definition-canvas.js +138 -17
- package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.js +2 -2
- package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.js +12 -11
- package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
- package/dist/admin/surfaces/menus/menu-editor.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menu-editor.js +17 -4
- package/dist/admin/surfaces/menus/menu-editor.js.map +1 -1
- package/dist/admin/surfaces/menus/menu-tree.d.ts +18 -4
- package/dist/admin/surfaces/menus/menu-tree.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menu-tree.js +18 -3
- package/dist/admin/surfaces/menus/menu-tree.js.map +1 -1
- package/dist/admin/surfaces/menus/menus-data.d.ts +18 -0
- package/dist/admin/surfaces/menus/menus-data.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menus-data.js +4 -0
- package/dist/admin/surfaces/menus/menus-data.js.map +1 -1
- package/dist/admin/surfaces/menus/menus-list.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menus-list.js +2 -12
- package/dist/admin/surfaces/menus/menus-list.js.map +1 -1
- package/dist/admin/surfaces/users/users-data.d.ts +14 -0
- package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-data.js +19 -0
- package/dist/admin/surfaces/users/users-data.js.map +1 -1
- package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-detail.js +40 -4
- package/dist/admin/surfaces/users/users-detail.js.map +1 -1
- package/dist/admin/surfaces/users/users-new.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-new.js +8 -5
- package/dist/admin/surfaces/users/users-new.js.map +1 -1
- package/dist/admin/user-form.d.ts +10 -1
- package/dist/admin/user-form.d.ts.map +1 -1
- package/dist/admin/user-form.js +2 -2
- package/dist/admin/user-form.js.map +1 -1
- package/dist/api/admin-features-routes.js +2 -2
- package/dist/api/admin-features-routes.js.map +1 -1
- package/dist/api/audience-preview-routes.d.ts +7 -0
- package/dist/api/audience-preview-routes.d.ts.map +1 -1
- package/dist/api/audience-preview-routes.js +4 -4
- package/dist/api/audience-preview-routes.js.map +1 -1
- package/dist/api/audience-routes.d.ts +7 -0
- package/dist/api/audience-routes.d.ts.map +1 -1
- package/dist/api/audience-routes.js +21 -15
- package/dist/api/audience-routes.js.map +1 -1
- package/dist/api/audience-runtime-routes.d.ts +6 -0
- package/dist/api/audience-runtime-routes.d.ts.map +1 -1
- package/dist/api/audience-runtime-routes.js +38 -3
- package/dist/api/audience-runtime-routes.js.map +1 -1
- package/dist/api/auth-routes.d.ts.map +1 -1
- package/dist/api/auth-routes.js +10 -4
- package/dist/api/auth-routes.js.map +1 -1
- package/dist/api/auth.d.ts +1 -0
- package/dist/api/auth.d.ts.map +1 -1
- package/dist/api/auth.js +43 -3
- package/dist/api/auth.js.map +1 -1
- package/dist/api/bulk-routes.d.ts.map +1 -1
- package/dist/api/bulk-routes.js +7 -7
- package/dist/api/bulk-routes.js.map +1 -1
- package/dist/api/category-routes.js +3 -3
- package/dist/api/category-routes.js.map +1 -1
- package/dist/api/comment-routes.js +8 -8
- package/dist/api/comment-routes.js.map +1 -1
- package/dist/api/component-routes.d.ts +25 -0
- package/dist/api/component-routes.d.ts.map +1 -1
- package/dist/api/component-routes.js +41 -16
- package/dist/api/component-routes.js.map +1 -1
- package/dist/api/content-routes.js +13 -13
- package/dist/api/content-routes.js.map +1 -1
- package/dist/api/dashboard-routes.js +1 -1
- package/dist/api/dashboard-routes.js.map +1 -1
- package/dist/api/experiment-routes.d.ts +7 -0
- package/dist/api/experiment-routes.d.ts.map +1 -1
- package/dist/api/experiment-routes.js +8 -8
- package/dist/api/experiment-routes.js.map +1 -1
- package/dist/api/experiment-runtime-routes.d.ts +6 -0
- package/dist/api/experiment-runtime-routes.d.ts.map +1 -1
- package/dist/api/experiment-runtime-routes.js +47 -11
- package/dist/api/experiment-runtime-routes.js.map +1 -1
- package/dist/api/feed-routes.d.ts +2 -2
- package/dist/api/feed-routes.js +3 -3
- package/dist/api/feed-routes.js.map +1 -1
- package/dist/api/form-routes.js +4 -4
- package/dist/api/form-routes.js.map +1 -1
- package/dist/api/graphql/resolvers.d.ts +1 -1
- package/dist/api/graphql/resolvers.d.ts.map +1 -1
- package/dist/api/graphql/resolvers.js +68 -33
- package/dist/api/graphql/resolvers.js.map +1 -1
- package/dist/api/group-routes.js +6 -6
- package/dist/api/group-routes.js.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +39 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/layout-routes.d.ts.map +1 -1
- package/dist/api/layout-routes.js +27 -3
- package/dist/api/layout-routes.js.map +1 -1
- package/dist/api/media-routes.d.ts.map +1 -1
- package/dist/api/media-routes.js +50 -26
- package/dist/api/media-routes.js.map +1 -1
- package/dist/api/menu-routes.d.ts +9 -1
- package/dist/api/menu-routes.d.ts.map +1 -1
- package/dist/api/menu-routes.js +44 -10
- package/dist/api/menu-routes.js.map +1 -1
- package/dist/api/nav-routes.d.ts +6 -0
- package/dist/api/nav-routes.d.ts.map +1 -1
- package/dist/api/nav-routes.js +24 -3
- package/dist/api/nav-routes.js.map +1 -1
- package/dist/api/openapi.d.ts.map +1 -1
- package/dist/api/openapi.js +68 -33
- package/dist/api/openapi.js.map +1 -1
- package/dist/api/search-routes.js +2 -2
- package/dist/api/search-routes.js.map +1 -1
- package/dist/api/section-template-routes.d.ts.map +1 -1
- package/dist/api/section-template-routes.js +35 -18
- package/dist/api/section-template-routes.js.map +1 -1
- package/dist/api/site-admin-routes.d.ts +10 -1
- package/dist/api/site-admin-routes.d.ts.map +1 -1
- package/dist/api/site-admin-routes.js +21 -1
- package/dist/api/site-admin-routes.js.map +1 -1
- package/dist/api/site-context.d.ts +35 -5
- package/dist/api/site-context.d.ts.map +1 -1
- package/dist/api/site-context.js +21 -6
- package/dist/api/site-context.js.map +1 -1
- package/dist/api/tag-routes.js +3 -3
- package/dist/api/tag-routes.js.map +1 -1
- package/dist/api/translation-routes.js +5 -5
- package/dist/api/translation-routes.js.map +1 -1
- package/dist/api/user-routes.d.ts.map +1 -1
- package/dist/api/user-routes.js +134 -19
- package/dist/api/user-routes.js.map +1 -1
- package/dist/api/webhook-routes.js +5 -5
- package/dist/api/webhook-routes.js.map +1 -1
- package/dist/api/workflow-routes.js +8 -8
- package/dist/api/workflow-routes.js.map +1 -1
- package/dist/audiences/collectors/identity.d.ts +14 -1
- package/dist/audiences/collectors/identity.d.ts.map +1 -1
- package/dist/audiences/collectors/identity.js +16 -3
- package/dist/audiences/collectors/identity.js.map +1 -1
- package/dist/audiences/collectors/index.d.ts +12 -2
- package/dist/audiences/collectors/index.d.ts.map +1 -1
- package/dist/audiences/collectors/index.js +16 -5
- package/dist/audiences/collectors/index.js.map +1 -1
- package/dist/audiences/collectors/pinned-audience.d.ts +28 -2
- package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -1
- package/dist/audiences/collectors/pinned-audience.js +35 -5
- package/dist/audiences/collectors/pinned-audience.js.map +1 -1
- package/dist/audiences/collectors/utm.d.ts +15 -1
- package/dist/audiences/collectors/utm.d.ts.map +1 -1
- package/dist/audiences/collectors/utm.js +16 -2
- package/dist/audiences/collectors/utm.js.map +1 -1
- package/dist/audiences/consent-config.d.ts +21 -0
- package/dist/audiences/consent-config.d.ts.map +1 -0
- package/dist/audiences/consent-config.js +15 -0
- package/dist/audiences/consent-config.js.map +1 -0
- package/dist/audiences/consent-startup.d.ts +39 -0
- package/dist/audiences/consent-startup.d.ts.map +1 -0
- package/dist/audiences/consent-startup.js +105 -0
- package/dist/audiences/consent-startup.js.map +1 -0
- package/dist/audiences/consent.d.ts +192 -0
- package/dist/audiences/consent.d.ts.map +1 -0
- package/dist/audiences/consent.js +322 -0
- package/dist/audiences/consent.js.map +1 -0
- package/dist/audiences/engine.d.ts +7 -0
- package/dist/audiences/engine.d.ts.map +1 -1
- package/dist/audiences/engine.js +6 -2
- package/dist/audiences/engine.js.map +1 -1
- package/dist/audiences/index.d.ts +3 -0
- package/dist/audiences/index.d.ts.map +1 -1
- package/dist/audiences/index.js +6 -0
- package/dist/audiences/index.js.map +1 -1
- package/dist/audiences/server-eval.d.ts +13 -1
- package/dist/audiences/server-eval.d.ts.map +1 -1
- package/dist/audiences/server-eval.js +18 -2
- package/dist/audiences/server-eval.js.map +1 -1
- package/dist/audiences/ssr.d.ts +18 -1
- package/dist/audiences/ssr.d.ts.map +1 -1
- package/dist/audiences/ssr.js +18 -1
- package/dist/audiences/ssr.js.map +1 -1
- package/dist/audiences/utm-persistence.d.ts +20 -7
- package/dist/audiences/utm-persistence.d.ts.map +1 -1
- package/dist/audiences/utm-persistence.js +20 -7
- package/dist/audiences/utm-persistence.js.map +1 -1
- package/dist/auth/roles.d.ts +11 -0
- package/dist/auth/roles.d.ts.map +1 -1
- package/dist/auth/roles.js +13 -0
- package/dist/auth/roles.js.map +1 -1
- package/dist/auth/tokens.d.ts +7 -0
- package/dist/auth/tokens.d.ts.map +1 -1
- package/dist/auth/tokens.js +24 -2
- package/dist/auth/tokens.js.map +1 -1
- package/dist/config/types.d.ts +43 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +3 -0
- package/dist/config/validate.js.map +1 -1
- package/dist/db/apply-snapshot.d.ts +18 -0
- package/dist/db/apply-snapshot.d.ts.map +1 -1
- package/dist/db/apply-snapshot.js +41 -16
- package/dist/db/apply-snapshot.js.map +1 -1
- package/dist/db/component-instance-queries.d.ts +79 -19
- package/dist/db/component-instance-queries.d.ts.map +1 -1
- package/dist/db/component-instance-queries.js +266 -83
- package/dist/db/component-instance-queries.js.map +1 -1
- package/dist/db/component-queries.d.ts +1 -16
- package/dist/db/component-queries.d.ts.map +1 -1
- package/dist/db/component-queries.js +7 -56
- package/dist/db/component-queries.js.map +1 -1
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +1 -2
- package/dist/db/content-queries.js.map +1 -1
- package/dist/db/extension-queries.d.ts +2 -2
- package/dist/db/feed-queries.d.ts +3 -3
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/layout-queries.d.ts +2 -1
- package/dist/db/layout-queries.d.ts.map +1 -1
- package/dist/db/layout-queries.js +3 -3
- package/dist/db/layout-queries.js.map +1 -1
- package/dist/db/menu-queries.d.ts +69 -5
- package/dist/db/menu-queries.d.ts.map +1 -1
- package/dist/db/menu-queries.js +120 -13
- package/dist/db/menu-queries.js.map +1 -1
- package/dist/db/section-template-queries.d.ts +62 -0
- package/dist/db/section-template-queries.d.ts.map +1 -0
- package/dist/db/section-template-queries.js +178 -0
- package/dist/db/section-template-queries.js.map +1 -0
- package/dist/db/site-plugin-queries.d.ts +2 -2
- package/dist/db/tree-queries.d.ts.map +1 -1
- package/dist/db/tree-queries.js +5 -0
- package/dist/db/tree-queries.js.map +1 -1
- package/dist/db/webhook-queries.d.ts +3 -3
- package/dist/db/workflow-queries.d.ts.map +1 -1
- package/dist/db/workflow-queries.js +5 -20
- package/dist/db/workflow-queries.js.map +1 -1
- package/dist/experiments/runtime.d.ts +21 -3
- package/dist/experiments/runtime.d.ts.map +1 -1
- package/dist/experiments/runtime.js +21 -3
- package/dist/experiments/runtime.js.map +1 -1
- package/dist/layout/component-refs.d.ts +90 -2
- package/dist/layout/component-refs.d.ts.map +1 -1
- package/dist/layout/component-refs.js +293 -16
- package/dist/layout/component-refs.js.map +1 -1
- package/dist/layout/index.d.ts +4 -3
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +3 -2
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/legacy-variant-container.d.ts +123 -0
- package/dist/layout/legacy-variant-container.d.ts.map +1 -0
- package/dist/layout/legacy-variant-container.js +397 -0
- package/dist/layout/legacy-variant-container.js.map +1 -0
- package/dist/layout/module-permissions.d.ts.map +1 -1
- package/dist/layout/module-permissions.js +25 -1
- package/dist/layout/module-permissions.js.map +1 -1
- package/dist/layout/modules-extended.d.ts +28 -1
- package/dist/layout/modules-extended.d.ts.map +1 -1
- package/dist/layout/modules-extended.js +73 -1
- package/dist/layout/modules-extended.js.map +1 -1
- package/dist/layout/modules.d.ts.map +1 -1
- package/dist/layout/modules.js +9 -1
- package/dist/layout/modules.js.map +1 -1
- package/dist/layout/personalization.d.ts +83 -0
- package/dist/layout/personalization.d.ts.map +1 -1
- package/dist/layout/personalization.js +250 -4
- package/dist/layout/personalization.js.map +1 -1
- package/dist/layout/registry.d.ts.map +1 -1
- package/dist/layout/registry.js +20 -0
- package/dist/layout/registry.js.map +1 -1
- package/dist/layout/renderer.d.ts +29 -2
- package/dist/layout/renderer.d.ts.map +1 -1
- package/dist/layout/renderer.js +23 -6
- package/dist/layout/renderer.js.map +1 -1
- package/dist/layout/types.d.ts +17 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +7 -0
- package/dist/layout/types.js.map +1 -1
- package/dist/media/inline-risk.d.ts +26 -0
- package/dist/media/inline-risk.d.ts.map +1 -0
- package/dist/media/inline-risk.js +142 -0
- package/dist/media/inline-risk.js.map +1 -0
- package/dist/nav/builder.d.ts.map +1 -1
- package/dist/nav/builder.js +15 -3
- package/dist/nav/builder.js.map +1 -1
- package/dist/nav/index.d.ts +1 -1
- package/dist/nav/index.d.ts.map +1 -1
- package/dist/nav/index.js +1 -1
- package/dist/nav/index.js.map +1 -1
- package/dist/nav/menu-resolver.d.ts +11 -0
- package/dist/nav/menu-resolver.d.ts.map +1 -1
- package/dist/nav/menu-resolver.js +49 -9
- package/dist/nav/menu-resolver.js.map +1 -1
- package/dist/nav/paths.d.ts +37 -0
- package/dist/nav/paths.d.ts.map +1 -0
- package/dist/nav/paths.js +48 -0
- package/dist/nav/paths.js.map +1 -0
- package/dist/nav/types.d.ts +6 -0
- package/dist/nav/types.d.ts.map +1 -1
- package/dist/nav/url-resolver.d.ts +1 -5
- package/dist/nav/url-resolver.d.ts.map +1 -1
- package/dist/nav/url-resolver.js +6 -12
- package/dist/nav/url-resolver.js.map +1 -1
- package/dist/schema/base.d.ts +24 -4
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +17 -4
- package/dist/schema/base.js.map +1 -1
- package/dist/schema/components.d.ts +90 -9
- package/dist/schema/components.d.ts.map +1 -1
- package/dist/schema/components.js +113 -22
- package/dist/schema/components.js.map +1 -1
- package/dist/schema/mysql-tables.d.ts +5758 -48
- package/dist/schema/mysql-tables.d.ts.map +1 -1
- package/dist/schema/mysql-tables.js +620 -46
- package/dist/schema/mysql-tables.js.map +1 -1
- package/dist/scope/kywi-form.d.ts +11 -0
- package/dist/scope/kywi-form.d.ts.map +1 -1
- package/dist/scope/kywi-form.js +11 -1
- package/dist/scope/kywi-form.js.map +1 -1
- package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
- package/dist/scope/kywi-wizard-form.js +76 -2
- package/dist/scope/kywi-wizard-form.js.map +1 -1
- package/dist/scope/sticky-offset.d.ts +34 -13
- package/dist/scope/sticky-offset.d.ts.map +1 -1
- package/dist/scope/sticky-offset.js +236 -43
- package/dist/scope/sticky-offset.js.map +1 -1
- package/dist/site/styles.css +61 -15
- package/dist/versioning/scheduler.d.ts +28 -0
- package/dist/versioning/scheduler.d.ts.map +1 -1
- package/dist/versioning/scheduler.js +50 -3
- package/dist/versioning/scheduler.js.map +1 -1
- package/package.json +7 -2
package/dist/db/menu-queries.js
CHANGED
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
import { randomUUID } from 'node:crypto';
|
|
19
19
|
import { eq, and, asc, inArray, sql } from 'drizzle-orm';
|
|
20
20
|
import { kywiMenus, kywiMenuItems, kywiContent } from '../schema/base.js';
|
|
21
|
+
/** Coerce a stored/serialized kind, defaulting anything unrecognized to a link. */
|
|
22
|
+
export function toMenuItemKind(value) {
|
|
23
|
+
return value === 'label' ? 'label' : 'link';
|
|
24
|
+
}
|
|
21
25
|
/**
|
|
22
26
|
* Raised when a menu-item payload breaks the contentId-XOR-externalUrl rule or
|
|
23
27
|
* names a content slug that does not exist in the site. Carries the offending
|
|
@@ -34,12 +38,29 @@ export class MenuItemValidationError extends Error {
|
|
|
34
38
|
}
|
|
35
39
|
// ── Menu CRUD ─────────────────────────────────────────────────────────────────
|
|
36
40
|
export async function listMenus(db, siteId) {
|
|
41
|
+
// One LEFT JOIN + GROUP BY, not a count per row: a menu with zero items still
|
|
42
|
+
// has to appear (hence LEFT, and hence counting the ITEM id — `count(*)` would
|
|
43
|
+
// score the null-padded row as 1). Grouped on every selected menu column
|
|
44
|
+
// rather than the primary key alone so the query is legal on MySQL under
|
|
45
|
+
// ONLY_FULL_GROUP_BY too, not just on Postgres' functional-dependency rule.
|
|
37
46
|
const rows = await db
|
|
38
|
-
.select(
|
|
47
|
+
.select({
|
|
48
|
+
id: kywiMenus.id,
|
|
49
|
+
siteId: kywiMenus.siteId,
|
|
50
|
+
slug: kywiMenus.slug,
|
|
51
|
+
name: kywiMenus.name,
|
|
52
|
+
createdAt: kywiMenus.createdAt,
|
|
53
|
+
updatedAt: kywiMenus.updatedAt,
|
|
54
|
+
itemCount: sql `count(${kywiMenuItems.id})`,
|
|
55
|
+
})
|
|
39
56
|
.from(kywiMenus)
|
|
57
|
+
.leftJoin(kywiMenuItems, eq(kywiMenuItems.menuId, kywiMenus.id))
|
|
40
58
|
.where(eq(kywiMenus.siteId, siteId))
|
|
59
|
+
.groupBy(kywiMenus.id, kywiMenus.siteId, kywiMenus.slug, kywiMenus.name, kywiMenus.createdAt, kywiMenus.updatedAt)
|
|
41
60
|
.orderBy(asc(kywiMenus.slug));
|
|
42
|
-
|
|
61
|
+
// node-postgres hands `count()` back as a string (bigint), so coerce once here
|
|
62
|
+
// rather than leaving every caller to wonder which it got.
|
|
63
|
+
return rows.map(r => ({ ...r, itemCount: Number(r.itemCount) }));
|
|
43
64
|
}
|
|
44
65
|
export async function getMenuById(db, id, siteId) {
|
|
45
66
|
const [menu] = await db
|
|
@@ -106,6 +127,7 @@ export async function getMenuItemRows(db, menuId) {
|
|
|
106
127
|
parentId: kywiMenuItems.parentId,
|
|
107
128
|
sortOrder: kywiMenuItems.sortOrder,
|
|
108
129
|
label: kywiMenuItems.label,
|
|
130
|
+
kind: kywiMenuItems.kind,
|
|
109
131
|
contentId: kywiMenuItems.contentId,
|
|
110
132
|
externalUrl: kywiMenuItems.externalUrl,
|
|
111
133
|
openInNewWindow: kywiMenuItems.openInNewWindow,
|
|
@@ -145,19 +167,26 @@ export function assembleMenuItemTree(rows) {
|
|
|
145
167
|
}
|
|
146
168
|
const known = new Set(rows.map(r => r.id));
|
|
147
169
|
function build(row) {
|
|
170
|
+
const kind = toMenuItemKind(row.kind);
|
|
171
|
+
const isLabel = kind === 'label';
|
|
148
172
|
const isExternal = row.externalUrl != null && row.externalUrl !== '';
|
|
149
173
|
const contentLive = row.contentPath != null && row.contentDeletedAt == null;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const
|
|
174
|
+
// A heading has no target by design, so it is never "missing" one and is
|
|
175
|
+
// always renderable — the resolver keeps it and its children (kywi-cms#116).
|
|
176
|
+
const href = isLabel ? null : isExternal ? row.externalUrl : contentLive ? row.contentPath : null;
|
|
177
|
+
const contentMissing = !isLabel && !isExternal && !contentLive;
|
|
178
|
+
const resolvable = isLabel
|
|
153
179
|
? true
|
|
154
|
-
:
|
|
180
|
+
: isExternal
|
|
181
|
+
? true
|
|
182
|
+
: contentLive && row.contentStatus != null && PUBLIC_STATUSES.has(row.contentStatus);
|
|
155
183
|
return {
|
|
156
184
|
id: row.id,
|
|
157
185
|
menuId: row.menuId,
|
|
158
186
|
parentId: row.parentId,
|
|
159
187
|
sortOrder: row.sortOrder,
|
|
160
188
|
label: row.label,
|
|
189
|
+
kind,
|
|
161
190
|
contentId: row.contentId,
|
|
162
191
|
externalUrl: row.externalUrl,
|
|
163
192
|
openInNewWindow: row.openInNewWindow,
|
|
@@ -199,6 +228,8 @@ async function runInTransaction(db, fn) {
|
|
|
199
228
|
function labelPath(trail, label) {
|
|
200
229
|
return [...trail, label || '(untitled)'].join(' > ');
|
|
201
230
|
}
|
|
231
|
+
/** Canonical uuid form — the id column's type on both dialects. */
|
|
232
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
202
233
|
/**
|
|
203
234
|
* Validate the contentId-XOR-externalUrl rule over a nested payload.
|
|
204
235
|
*
|
|
@@ -206,21 +237,66 @@ function labelPath(trail, label) {
|
|
|
206
237
|
* reads identically on Postgres and MySQL and surfaces as a 400 naming the bad
|
|
207
238
|
* item, rather than as a driver error naming a constraint.
|
|
208
239
|
*/
|
|
209
|
-
export function assertMenuItemsValid(items, trail = []
|
|
240
|
+
export function assertMenuItemsValid(items, trail = [],
|
|
241
|
+
/** Ids claimed so far in this tree — a full replace cannot reuse one twice. */
|
|
242
|
+
seen = new Set()) {
|
|
210
243
|
for (const item of items) {
|
|
211
244
|
const path = labelPath(trail, item.label);
|
|
212
245
|
if (typeof item.label !== 'string' || item.label.trim() === '') {
|
|
213
246
|
throw new MenuItemValidationError(path, 'Menu item label is required');
|
|
214
247
|
}
|
|
248
|
+
if (item.id !== undefined && item.id !== null) {
|
|
249
|
+
// A malformed id would be rejected by the driver as a uuid cast error
|
|
250
|
+
// naming a column, not an item; a duplicate would insert two rows with
|
|
251
|
+
// the same primary key. Both are caught here so the message names the
|
|
252
|
+
// offending item, like every other menu-item rule.
|
|
253
|
+
if (typeof item.id !== 'string' || !UUID_RE.test(item.id)) {
|
|
254
|
+
throw new MenuItemValidationError(path, `Menu item "${item.label}" has an invalid id "${String(item.id)}" — omit it for a new item, or send the uuid returned by a previous read`);
|
|
255
|
+
}
|
|
256
|
+
if (seen.has(item.id)) {
|
|
257
|
+
throw new MenuItemValidationError(path, `Menu item "${item.label}" reuses id ${item.id}, which another item in this tree already claims`);
|
|
258
|
+
}
|
|
259
|
+
seen.add(item.id);
|
|
260
|
+
}
|
|
261
|
+
if (item.kind !== undefined && item.kind !== 'link' && item.kind !== 'label') {
|
|
262
|
+
throw new MenuItemValidationError(path, `Menu item "${item.label}" has an unknown kind "${String(item.kind)}" — use "link" or "label"`);
|
|
263
|
+
}
|
|
215
264
|
const targets = [item.contentId, item.contentSlug, item.externalUrl].filter(v => typeof v === 'string' && v.trim() !== '');
|
|
265
|
+
// A heading is defined by having no target: silently ignoring one would
|
|
266
|
+
// hide a real authoring mistake behind a link that never renders.
|
|
267
|
+
if (item.kind === 'label') {
|
|
268
|
+
if (targets.length > 0) {
|
|
269
|
+
throw new MenuItemValidationError(path, `Menu item "${item.label}" is a label-only heading and cannot link anywhere — drop contentSlug/contentId/externalUrl, or remove kind: "label"`);
|
|
270
|
+
}
|
|
271
|
+
if (item.children && item.children.length > 0) {
|
|
272
|
+
assertMenuItemsValid(item.children, [...trail, item.label], seen);
|
|
273
|
+
}
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
216
276
|
if (targets.length === 0) {
|
|
217
|
-
throw new MenuItemValidationError(path, `Menu item "${item.label}" needs a target: set contentSlug (or contentId) to link a page,
|
|
277
|
+
throw new MenuItemValidationError(path, `Menu item "${item.label}" needs a target: set contentSlug (or contentId) to link a page, externalUrl to link off-site, or kind: "label" to make it a heading`);
|
|
218
278
|
}
|
|
219
279
|
if (targets.length > 1) {
|
|
220
280
|
throw new MenuItemValidationError(path, `Menu item "${item.label}" sets more than one target — use exactly one of contentSlug, contentId or externalUrl`);
|
|
221
281
|
}
|
|
222
282
|
if (item.children && item.children.length > 0) {
|
|
223
|
-
assertMenuItemsValid(item.children, [...trail, item.label]);
|
|
283
|
+
assertMenuItemsValid(item.children, [...trail, item.label], seen);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Collect every id the payload claims, keyed to the label path of the item that
|
|
289
|
+
* claims it so a rejection can name the offending item (kywi-cms#116).
|
|
290
|
+
* `assertMenuItemsValid` has already refused a duplicate, so nothing is lost to
|
|
291
|
+
* the map.
|
|
292
|
+
*/
|
|
293
|
+
function collectSuppliedIds(items, trail, out) {
|
|
294
|
+
for (const item of items) {
|
|
295
|
+
if (typeof item.id === 'string' && item.id !== '') {
|
|
296
|
+
out.set(item.id, { label: item.label, path: labelPath(trail, item.label) });
|
|
297
|
+
}
|
|
298
|
+
if (item.children && item.children.length > 0) {
|
|
299
|
+
collectSuppliedIds(item.children, [...trail, item.label], out);
|
|
224
300
|
}
|
|
225
301
|
}
|
|
226
302
|
}
|
|
@@ -278,22 +354,30 @@ export async function resolveMenuItemContentSlugs(db, siteId, items) {
|
|
|
278
354
|
* child can reference its parent in the same batch. `sortOrder` is the item's
|
|
279
355
|
* index among its siblings — position is the payload's order, never a field the
|
|
280
356
|
* caller has to keep consistent.
|
|
357
|
+
*
|
|
358
|
+
* An item that carries an `id` keeps it (kywi-cms#116); only an item without
|
|
359
|
+
* one gets a fresh uuid. `assertMenuItemsValid` has already rejected a
|
|
360
|
+
* malformed or duplicated id by the time this runs on a write path.
|
|
281
361
|
*/
|
|
282
362
|
export function flattenMenuItems(menuId, items, newId = randomUUID) {
|
|
283
363
|
const out = [];
|
|
284
364
|
function walk(list, parentId) {
|
|
285
365
|
list.forEach((item, index) => {
|
|
286
|
-
const id = newId();
|
|
287
|
-
const
|
|
366
|
+
const id = typeof item.id === 'string' && item.id !== '' ? item.id : newId();
|
|
367
|
+
const kind = toMenuItemKind(item.kind);
|
|
368
|
+
const isLabel = kind === 'label';
|
|
369
|
+
const external = !isLabel && typeof item.externalUrl === 'string' && item.externalUrl.trim() !== '';
|
|
288
370
|
out.push({
|
|
289
371
|
id,
|
|
290
372
|
menuId,
|
|
291
373
|
parentId,
|
|
292
374
|
sortOrder: index,
|
|
293
375
|
label: item.label,
|
|
294
|
-
|
|
376
|
+
kind,
|
|
377
|
+
contentId: external || isLabel ? null : item.contentId ?? null,
|
|
295
378
|
externalUrl: external ? item.externalUrl : null,
|
|
296
|
-
|
|
379
|
+
// A heading is not a link, so it can never open in a new window.
|
|
380
|
+
openInNewWindow: isLabel ? false : item.openInNewWindow ?? false,
|
|
297
381
|
description: item.description ?? null,
|
|
298
382
|
});
|
|
299
383
|
if (item.children && item.children.length > 0)
|
|
@@ -309,6 +393,15 @@ export function flattenMenuItems(menuId, items, newId = randomUUID) {
|
|
|
309
393
|
* Full-replace rather than diff-and-patch, so the write is idempotent: sending
|
|
310
394
|
* the same tree twice leaves the menu in the same state, which is what makes
|
|
311
395
|
* this safe for an agent to call repeatedly (the `upsert_menu` MCP tool).
|
|
396
|
+
* Items that carry their `id` keep it across the rewrite, so "the same state"
|
|
397
|
+
* now includes the row identities and not just their content (kywi-cms#116).
|
|
398
|
+
*
|
|
399
|
+
* A supplied id must already belong to THIS menu. Read inside the transaction,
|
|
400
|
+
* so the check cannot be raced by a concurrent write between the read and the
|
|
401
|
+
* rewrite. Without it a caller could hand over an id from another menu — the
|
|
402
|
+
* delete only clears this menu's rows, so the insert collided with the live row
|
|
403
|
+
* and surfaced as a 500 — or invent a uuid outright and mint rows with ids the
|
|
404
|
+
* server never issued.
|
|
312
405
|
*
|
|
313
406
|
* The delete + inserts run in one transaction — a failure part-way through must
|
|
314
407
|
* not leave the site with a half-empty navigation.
|
|
@@ -316,7 +409,21 @@ export function flattenMenuItems(menuId, items, newId = randomUUID) {
|
|
|
316
409
|
export async function replaceMenuItems(db, menuId, items) {
|
|
317
410
|
assertMenuItemsValid(items);
|
|
318
411
|
const rows = flattenMenuItems(menuId, items);
|
|
412
|
+
const supplied = new Map();
|
|
413
|
+
collectSuppliedIds(items, [], supplied);
|
|
319
414
|
await runInTransaction(db, async (tx) => {
|
|
415
|
+
if (supplied.size > 0) {
|
|
416
|
+
const existing = await tx
|
|
417
|
+
.select({ id: kywiMenuItems.id })
|
|
418
|
+
.from(kywiMenuItems)
|
|
419
|
+
.where(eq(kywiMenuItems.menuId, menuId));
|
|
420
|
+
const known = new Set(existing.map(r => r.id));
|
|
421
|
+
for (const [id, item] of supplied) {
|
|
422
|
+
if (!known.has(id)) {
|
|
423
|
+
throw new MenuItemValidationError(item.path, `Menu item "${item.label}" claims id ${id}, which is not an item of this menu — omit the id to add a new item, or send one returned by a previous read of this menu`);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
320
427
|
await tx.delete(kywiMenuItems).where(eq(kywiMenuItems.menuId, menuId));
|
|
321
428
|
if (rows.length > 0) {
|
|
322
429
|
await tx.insert(kywiMenuItems).values(rows);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-queries.js","sourceRoot":"","sources":["../../src/db/menu-queries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-queries.js","sourceRoot":"","sources":["../../src/db/menu-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { KywiSectionTemplateRow } from '../schema/base.js';
|
|
2
|
+
import type { KywiDb, PartialUndefined } from './client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a saved layout, indexing whatever `componentId` links its definition
|
|
5
|
+
* carries — both in one transaction, so a blueprint and its index rows commit
|
|
6
|
+
* together or not at all.
|
|
7
|
+
*
|
|
8
|
+
* The index is derived from the row `returning()` hands back, not from the
|
|
9
|
+
* argument: what is indexed is what the database actually stored.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createSectionTemplate(db: KywiDb, data: {
|
|
12
|
+
siteId: string;
|
|
13
|
+
name: string;
|
|
14
|
+
category?: string;
|
|
15
|
+
definition: Record<string, unknown>;
|
|
16
|
+
createdBy?: string;
|
|
17
|
+
}): Promise<KywiSectionTemplateRow>;
|
|
18
|
+
/**
|
|
19
|
+
* Persist a blueprint's definition (and, in the same statement, whatever name or
|
|
20
|
+
* category came with it), maintaining `kywi_component_instances`.
|
|
21
|
+
*
|
|
22
|
+
* This is the blueprint twin of `setContentLayout`, and it is the one and only
|
|
23
|
+
* definition write path. The stored row is read `FOR UPDATE` inside the
|
|
24
|
+
* transaction, so a concurrent save of the same blueprint waits rather than
|
|
25
|
+
* racing the index into a state neither of them wrote, and a failure to index is
|
|
26
|
+
* a failure to save.
|
|
27
|
+
*
|
|
28
|
+
* Name and category ride along rather than taking a second write: the admin PUT
|
|
29
|
+
* carries all three in one request, and splitting them would reopen the very
|
|
30
|
+
* window — a definition written with no index row, or an index row for a
|
|
31
|
+
* definition that was rolled back — this function exists to close.
|
|
32
|
+
*
|
|
33
|
+
* Returns the updated row, or null when no blueprint matched the (id, siteId)
|
|
34
|
+
* scope.
|
|
35
|
+
*/
|
|
36
|
+
export declare function setSectionTemplateDefinition(db: KywiDb, id: string, patch: PartialUndefined<{
|
|
37
|
+
name: string;
|
|
38
|
+
category: string;
|
|
39
|
+
definition: Record<string, unknown>;
|
|
40
|
+
}>, siteId?: string): Promise<KywiSectionTemplateRow | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Patch a saved layout.
|
|
43
|
+
*
|
|
44
|
+
* A patch that carries a `definition` is a layout write and goes through
|
|
45
|
+
* {@link setSectionTemplateDefinition} — there is deliberately no second path
|
|
46
|
+
* that could write a definition without writing the index. A metadata-only patch
|
|
47
|
+
* (a rename, a re-category) touches no layout document, so it skips the
|
|
48
|
+
* transaction and the index entirely.
|
|
49
|
+
*/
|
|
50
|
+
export declare function updateSectionTemplate(db: KywiDb, id: string, data: PartialUndefined<{
|
|
51
|
+
name: string;
|
|
52
|
+
category: string;
|
|
53
|
+
definition: Record<string, unknown>;
|
|
54
|
+
}>, siteId?: string): Promise<KywiSectionTemplateRow | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Delete a saved layout. Its index rows go with it: `blueprint_id` cascades, so
|
|
57
|
+
* a deleted blueprint cannot leave a row inflating a component's usage count.
|
|
58
|
+
*/
|
|
59
|
+
export declare function deleteSectionTemplate(db: KywiDb, id: string, siteId?: string): Promise<boolean>;
|
|
60
|
+
export declare function getSectionTemplateById(db: KywiDb, id: string, siteId?: string): Promise<KywiSectionTemplateRow | null>;
|
|
61
|
+
export declare function listSectionTemplates(db: KywiDb, siteId: string, category?: string): Promise<KywiSectionTemplateRow[]>;
|
|
62
|
+
//# sourceMappingURL=section-template-queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-template-queries.d.ts","sourceRoot":"","sources":["../../src/db/section-template-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAqD3D;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GACA,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAC,EACF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA8BxC;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAC,EACF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAUxC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrG;AAID,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAOxC;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAWnC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { eq, and } from 'drizzle-orm';
|
|
2
|
+
import { kywiSectionTemplates } from '../schema/base.js';
|
|
3
|
+
import { syncComponentInstances } from './component-instance-queries.js';
|
|
4
|
+
/**
|
|
5
|
+
* Saved layouts ("section templates", "blueprints") — the write paths.
|
|
6
|
+
*
|
|
7
|
+
* Its own module rather than a corner of `component-queries.ts` for one
|
|
8
|
+
* structural reason: since kywi-cms#156 a blueprint write maintains
|
|
9
|
+
* `kywi_component_instances`, and `component-instance-queries.ts` already
|
|
10
|
+
* imports `component-queries.ts` for `getComponentById`. Keeping the blueprint
|
|
11
|
+
* writes here means the index and the CRUD are not in an import cycle.
|
|
12
|
+
*
|
|
13
|
+
* THE RULE THIS MODULE EXISTS TO HOLD (kywi-cms#156). A blueprint's
|
|
14
|
+
* `definition` is a full {@link LayoutDocument} and may contain `componentId`
|
|
15
|
+
* links, exactly like a page's layout. Until #156 those links were invisible to
|
|
16
|
+
* the index, which is why blueprints were second-class everywhere: the usage
|
|
17
|
+
* dialog could not name them, the save fork on the blueprint canvas had to run
|
|
18
|
+
* inert rather than quote numbers that were lies, and deleting the component
|
|
19
|
+
* left the blueprint holding a dangling link. They are indexed now, and the only
|
|
20
|
+
* way that stays true is if EVERY door that writes a definition also writes the
|
|
21
|
+
* index, in the same transaction. So there is exactly one such door per
|
|
22
|
+
* operation — {@link createSectionTemplate} and
|
|
23
|
+
* {@link setSectionTemplateDefinition} — and {@link updateSectionTemplate}
|
|
24
|
+
* delegates to the latter rather than offering a second, unindexed path.
|
|
25
|
+
*
|
|
26
|
+
* Item-level queries take an OPTIONAL siteId scope. `kywi_section_templates`
|
|
27
|
+
* rows are addressable by UUID, so a query with no siteId predicate lets an
|
|
28
|
+
* admin scoped to one site read/mutate another site's blueprint by id. When
|
|
29
|
+
* siteId is provided the predicate is ANDed in (foreign id → null).
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Run `fn` inside a DB transaction when the client supports one, otherwise run
|
|
33
|
+
* it inline against `db`. Mirrors the guard in content-queries.ts /
|
|
34
|
+
* layout-queries.ts (#95): unit tests hand these queries a minimal chainable
|
|
35
|
+
* mock with no `.transaction`.
|
|
36
|
+
*/
|
|
37
|
+
async function runInTransaction(db, fn) {
|
|
38
|
+
if ('transaction' in db && typeof db.transaction === 'function') {
|
|
39
|
+
return db.transaction(fn);
|
|
40
|
+
}
|
|
41
|
+
return fn(db);
|
|
42
|
+
}
|
|
43
|
+
function scopeOf(id, siteId) {
|
|
44
|
+
return siteId === undefined
|
|
45
|
+
? eq(kywiSectionTemplates.id, id)
|
|
46
|
+
: and(eq(kywiSectionTemplates.id, id), eq(kywiSectionTemplates.siteId, siteId));
|
|
47
|
+
}
|
|
48
|
+
// ── Writes ───────────────────────────────────────────────────────────────────
|
|
49
|
+
/**
|
|
50
|
+
* Create a saved layout, indexing whatever `componentId` links its definition
|
|
51
|
+
* carries — both in one transaction, so a blueprint and its index rows commit
|
|
52
|
+
* together or not at all.
|
|
53
|
+
*
|
|
54
|
+
* The index is derived from the row `returning()` hands back, not from the
|
|
55
|
+
* argument: what is indexed is what the database actually stored.
|
|
56
|
+
*/
|
|
57
|
+
export async function createSectionTemplate(db, data) {
|
|
58
|
+
return runInTransaction(db, async (tx) => {
|
|
59
|
+
const [row] = await tx
|
|
60
|
+
.insert(kywiSectionTemplates)
|
|
61
|
+
.values({
|
|
62
|
+
siteId: data.siteId,
|
|
63
|
+
name: data.name,
|
|
64
|
+
category: data.category ?? 'general',
|
|
65
|
+
definition: data.definition,
|
|
66
|
+
createdBy: data.createdBy ?? null,
|
|
67
|
+
})
|
|
68
|
+
.returning();
|
|
69
|
+
const created = row;
|
|
70
|
+
await syncComponentInstances(tx, {
|
|
71
|
+
siteId: created.siteId,
|
|
72
|
+
holder: { kind: 'blueprint', blueprintId: created.id },
|
|
73
|
+
before: null,
|
|
74
|
+
after: (created.definition ?? null),
|
|
75
|
+
});
|
|
76
|
+
return created;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Persist a blueprint's definition (and, in the same statement, whatever name or
|
|
81
|
+
* category came with it), maintaining `kywi_component_instances`.
|
|
82
|
+
*
|
|
83
|
+
* This is the blueprint twin of `setContentLayout`, and it is the one and only
|
|
84
|
+
* definition write path. The stored row is read `FOR UPDATE` inside the
|
|
85
|
+
* transaction, so a concurrent save of the same blueprint waits rather than
|
|
86
|
+
* racing the index into a state neither of them wrote, and a failure to index is
|
|
87
|
+
* a failure to save.
|
|
88
|
+
*
|
|
89
|
+
* Name and category ride along rather than taking a second write: the admin PUT
|
|
90
|
+
* carries all three in one request, and splitting them would reopen the very
|
|
91
|
+
* window — a definition written with no index row, or an index row for a
|
|
92
|
+
* definition that was rolled back — this function exists to close.
|
|
93
|
+
*
|
|
94
|
+
* Returns the updated row, or null when no blueprint matched the (id, siteId)
|
|
95
|
+
* scope.
|
|
96
|
+
*/
|
|
97
|
+
export async function setSectionTemplateDefinition(db, id, patch, siteId) {
|
|
98
|
+
const scope = scopeOf(id, siteId);
|
|
99
|
+
return runInTransaction(db, async (tx) => {
|
|
100
|
+
const [existing] = await tx
|
|
101
|
+
.select({ siteId: kywiSectionTemplates.siteId, definition: kywiSectionTemplates.definition })
|
|
102
|
+
.from(kywiSectionTemplates)
|
|
103
|
+
.where(scope)
|
|
104
|
+
.for('update')
|
|
105
|
+
.limit(1);
|
|
106
|
+
if (!existing)
|
|
107
|
+
return null;
|
|
108
|
+
const [row] = await tx
|
|
109
|
+
.update(kywiSectionTemplates)
|
|
110
|
+
.set({ ...patch, updatedAt: new Date() })
|
|
111
|
+
.where(scope)
|
|
112
|
+
.returning();
|
|
113
|
+
if (!row)
|
|
114
|
+
return null;
|
|
115
|
+
if (patch.definition !== undefined) {
|
|
116
|
+
await syncComponentInstances(tx, {
|
|
117
|
+
siteId: existing.siteId,
|
|
118
|
+
holder: { kind: 'blueprint', blueprintId: id },
|
|
119
|
+
before: (existing.definition ?? null),
|
|
120
|
+
after: patch.definition,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return row;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Patch a saved layout.
|
|
128
|
+
*
|
|
129
|
+
* A patch that carries a `definition` is a layout write and goes through
|
|
130
|
+
* {@link setSectionTemplateDefinition} — there is deliberately no second path
|
|
131
|
+
* that could write a definition without writing the index. A metadata-only patch
|
|
132
|
+
* (a rename, a re-category) touches no layout document, so it skips the
|
|
133
|
+
* transaction and the index entirely.
|
|
134
|
+
*/
|
|
135
|
+
export async function updateSectionTemplate(db, id, data, siteId) {
|
|
136
|
+
if (data.definition !== undefined) {
|
|
137
|
+
return setSectionTemplateDefinition(db, id, data, siteId);
|
|
138
|
+
}
|
|
139
|
+
const [row] = await db
|
|
140
|
+
.update(kywiSectionTemplates)
|
|
141
|
+
.set({ ...data, updatedAt: new Date() })
|
|
142
|
+
.where(scopeOf(id, siteId))
|
|
143
|
+
.returning();
|
|
144
|
+
return row ?? null;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Delete a saved layout. Its index rows go with it: `blueprint_id` cascades, so
|
|
148
|
+
* a deleted blueprint cannot leave a row inflating a component's usage count.
|
|
149
|
+
*/
|
|
150
|
+
export async function deleteSectionTemplate(db, id, siteId) {
|
|
151
|
+
const [row] = await db
|
|
152
|
+
.delete(kywiSectionTemplates)
|
|
153
|
+
.where(scopeOf(id, siteId))
|
|
154
|
+
.returning({ id: kywiSectionTemplates.id });
|
|
155
|
+
return row !== undefined;
|
|
156
|
+
}
|
|
157
|
+
// ── Reads ────────────────────────────────────────────────────────────────────
|
|
158
|
+
export async function getSectionTemplateById(db, id, siteId) {
|
|
159
|
+
const [row] = await db
|
|
160
|
+
.select()
|
|
161
|
+
.from(kywiSectionTemplates)
|
|
162
|
+
.where(scopeOf(id, siteId))
|
|
163
|
+
.limit(1);
|
|
164
|
+
return row ?? null;
|
|
165
|
+
}
|
|
166
|
+
export async function listSectionTemplates(db, siteId, category) {
|
|
167
|
+
if (category) {
|
|
168
|
+
return db
|
|
169
|
+
.select()
|
|
170
|
+
.from(kywiSectionTemplates)
|
|
171
|
+
.where(and(eq(kywiSectionTemplates.siteId, siteId), eq(kywiSectionTemplates.category, category)));
|
|
172
|
+
}
|
|
173
|
+
return db
|
|
174
|
+
.select()
|
|
175
|
+
.from(kywiSectionTemplates)
|
|
176
|
+
.where(eq(kywiSectionTemplates.siteId, siteId));
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=section-template-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-template-queries.js","sourceRoot":"","sources":["../../src/db/section-template-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@ export declare function activatePlugin(db: KywiDb, siteId: string, pluginPackage
|
|
|
7
7
|
id: string;
|
|
8
8
|
siteId: string;
|
|
9
9
|
updatedAt: Date;
|
|
10
|
-
config: unknown;
|
|
11
10
|
createdAt: Date;
|
|
12
11
|
isActive: boolean;
|
|
12
|
+
config: unknown;
|
|
13
13
|
pluginPackage: string;
|
|
14
14
|
}>;
|
|
15
15
|
export declare function deactivatePlugin(db: KywiDb, siteId: string, pluginPackage: string): Promise<{
|
|
@@ -25,9 +25,9 @@ export declare function listPluginsForSite(db: KywiDb, siteId: string, activeOnl
|
|
|
25
25
|
id: string;
|
|
26
26
|
siteId: string;
|
|
27
27
|
updatedAt: Date;
|
|
28
|
-
config: unknown;
|
|
29
28
|
createdAt: Date;
|
|
30
29
|
isActive: boolean;
|
|
30
|
+
config: unknown;
|
|
31
31
|
pluginPackage: string;
|
|
32
32
|
}[]>;
|
|
33
33
|
export declare function getPluginConfig(db: KywiDb, siteId: string, pluginPackage: string): Promise<Record<string, unknown> | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-queries.d.ts","sourceRoot":"","sources":["../../src/db/tree-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB;;;;4EAIwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;gFAC4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBzB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3E,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,CAAC,EAAE,CAYL;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"tree-queries.d.ts","sourceRoot":"","sources":["../../src/db/tree-queries.ts"],"names":[],"mappings":"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"}
|
package/dist/db/tree-queries.js
CHANGED
|
@@ -82,6 +82,11 @@ export async function getChildren(db, parentId, opts) {
|
|
|
82
82
|
sortOrder: kywiContent.sortOrder,
|
|
83
83
|
isNav: kywiContent.isNav,
|
|
84
84
|
cascadeRule: kywiContent.cascadeRule,
|
|
85
|
+
// `status` is part of NavContentRow and every caller that filters on it
|
|
86
|
+
// needs it selected — without it the column is simply absent from the
|
|
87
|
+
// rows, and a published-only filter over them silently matches
|
|
88
|
+
// everything (GET /nav/:nodeId/children).
|
|
89
|
+
status: kywiContent.status,
|
|
85
90
|
})
|
|
86
91
|
.from(kywiContent)
|
|
87
92
|
.where(and(...conditions))
|