@plitzi/sdk-server 0.32.4 → 0.32.6
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/CHANGELOG.md +19 -0
- package/dist/adapters/jsonAdapters.js +6 -1
- package/dist/core/createServer.js +8 -44
- package/dist/core/health.js +15 -0
- package/dist/core/http/dispatcher.js +29 -0
- package/dist/core/http/securityHeaders.js +15 -0
- package/dist/core/http/stages/authRoutes.js +41 -0
- package/dist/core/http/stages/health.js +12 -0
- package/dist/core/http/stages/middlewares.js +16 -0
- package/dist/core/http/stages/pluginAssets.js +20 -0
- package/dist/core/http/stages/static.js +30 -0
- package/dist/core/server/baseServer.js +29 -0
- package/dist/core/server/mcpServer.js +29 -0
- package/dist/core/server/ssrServer.js +54 -0
- package/dist/core/services/mcp.js +22 -0
- package/dist/core/services/preview.js +37 -0
- package/dist/core/services/registry.js +30 -0
- package/dist/core/services/resolve.js +12 -0
- package/dist/core/services/rsc.js +11 -0
- package/dist/core/services/ssr.js +13 -0
- package/dist/core/transports.js +9 -9
- package/dist/helpers/buildServerInfo.js +3 -9
- package/dist/index.js +20 -6
- package/dist/modules/ai/AIEngine.js +4 -4
- package/dist/modules/ai/toolkit.js +58 -0
- package/dist/modules/mcp/catalogs/builtinCallbacks.js +204 -0
- package/dist/modules/mcp/catalogs/builtinComponents.js +170 -0
- package/dist/modules/mcp/catalogs/builtinElementCallbacks.js +50 -0
- package/dist/modules/mcp/catalogs/builtinTransformers.js +148 -0
- package/dist/modules/mcp/catalogs/builtinUtilities.js +90 -0
- package/dist/modules/mcp/catalogs/cssCatalog.js +205 -0
- package/dist/modules/mcp/catalogs/observed.js +90 -0
- package/dist/modules/mcp/catalogs/paramSpec.js +69 -0
- package/dist/modules/mcp/catalogs/registry.js +89 -0
- package/dist/modules/mcp/constants.js +4 -0
- package/dist/modules/mcp/handler.js +24 -20
- package/dist/modules/mcp/helpers/agentPrompt.js +104 -0
- package/dist/modules/mcp/helpers/computeVersion.js +16 -0
- package/dist/modules/mcp/helpers/guide.js +449 -0
- package/dist/modules/mcp/helpers/interactions.js +123 -0
- package/dist/modules/mcp/helpers/log.js +54 -0
- package/dist/modules/mcp/helpers/opResult.js +18 -0
- package/dist/modules/mcp/helpers/space.js +262 -0
- package/dist/modules/mcp/helpers/uris.js +44 -0
- package/dist/modules/mcp/previewClient.js +31 -0
- package/dist/modules/mcp/resources/canonical.js +30 -0
- package/dist/modules/mcp/resources/core.js +15 -0
- package/dist/modules/mcp/resources/envelope.js +14 -0
- package/dist/modules/mcp/resources/primer.js +30 -0
- package/dist/modules/mcp/resources/register.js +174 -0
- package/dist/modules/mcp/resources/router.js +25 -0
- package/dist/modules/mcp/resources/schema.js +43 -0
- package/dist/modules/mcp/resources/style.js +34 -0
- package/dist/modules/mcp/screenshotClient.js +47 -0
- package/dist/modules/mcp/server.js +66 -20
- package/dist/modules/mcp/tools/apply/dispatch.js +103 -0
- package/dist/modules/mcp/tools/apply/index.js +136 -0
- package/dist/modules/mcp/tools/apply/writeResult.js +37 -0
- package/dist/modules/mcp/tools/index.js +20 -148
- package/dist/modules/mcp/tools/operations/index.js +41 -0
- package/dist/modules/mcp/tools/operations/schema/bindings/deleteBinding.js +32 -0
- package/dist/modules/mcp/tools/operations/schema/bindings/patchBinding.js +36 -0
- package/dist/modules/mcp/tools/operations/schema/bindings/upsertBinding.js +47 -0
- package/dist/modules/mcp/tools/operations/schema/elements/deleteElement.js +29 -0
- package/dist/modules/mcp/tools/operations/schema/elements/moveElement.js +41 -0
- package/dist/modules/mcp/tools/operations/schema/elements/patchElement.js +58 -0
- package/dist/modules/mcp/tools/operations/schema/elements/upsertElement.js +65 -0
- package/dist/modules/mcp/tools/operations/schema/folders/deleteFolder.js +30 -0
- package/dist/modules/mcp/tools/operations/schema/folders/upsertFolder.js +49 -0
- package/dist/modules/mcp/tools/operations/schema/interactions/deleteInteraction.js +52 -0
- package/dist/modules/mcp/tools/operations/schema/interactions/patchInteractionNode.js +47 -0
- package/dist/modules/mcp/tools/operations/schema/interactions/upsertInteractionFlow.js +43 -0
- package/dist/modules/mcp/tools/operations/schema/operations.js +39 -0
- package/dist/modules/mcp/tools/operations/schema/pages/deletePage.js +25 -0
- package/dist/modules/mcp/tools/operations/schema/pages/upsertPage.js +75 -0
- package/dist/modules/mcp/tools/operations/schema/settings/patchSettings.js +45 -0
- package/dist/modules/mcp/tools/operations/schema/shared.js +119 -0
- package/dist/modules/mcp/tools/operations/schema/translator.js +215 -0
- package/dist/modules/mcp/tools/operations/schema/variables/deleteVariable.js +18 -0
- package/dist/modules/mcp/tools/operations/schema/variables/upsertVariable.js +42 -0
- package/dist/modules/mcp/tools/operations/schema/write.js +109 -0
- package/dist/modules/mcp/tools/operations/style/definitions/deleteDefinition.js +21 -0
- package/dist/modules/mcp/tools/operations/style/definitions/patchDefinition.js +28 -0
- package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinition.js +24 -0
- package/dist/modules/mcp/tools/operations/style/globalStyles/deleteGlobalStyle.js +21 -0
- package/dist/modules/mcp/tools/operations/style/globalStyles/patchGlobalStyle.js +28 -0
- package/dist/modules/mcp/tools/operations/style/globalStyles/upsertGlobalStyle.js +24 -0
- package/dist/modules/mcp/tools/operations/style/idStyles/deleteIdStyle.js +21 -0
- package/dist/modules/mcp/tools/operations/style/idStyles/patchIdStyle.js +28 -0
- package/dist/modules/mcp/tools/operations/style/idStyles/upsertIdStyle.js +24 -0
- package/dist/modules/mcp/tools/operations/style/operations.js +27 -0
- package/dist/modules/mcp/tools/operations/style/shared.js +59 -0
- package/dist/modules/mcp/tools/operations/style/translator.js +101 -0
- package/dist/modules/mcp/tools/operations/style/variables/deleteStyleVariable.js +21 -0
- package/dist/modules/mcp/tools/operations/style/variables/upsertStyleVariable.js +22 -0
- package/dist/modules/mcp/tools/operations/style/write.js +108 -0
- package/dist/modules/mcp/tools/preview.js +37 -0
- package/dist/modules/mcp/tools/read.js +33 -0
- package/dist/modules/mcp/tools/screenshot.js +83 -0
- package/dist/modules/mcp/tools/search.js +115 -0
- package/dist/modules/mcp/tools/shared/tool.js +26 -0
- package/dist/modules/mcp/tools/shared/validator/audit.js +124 -0
- package/dist/modules/mcp/tools/shared/validator/batch.js +30 -0
- package/dist/modules/mcp/tools/shared/validator/bindings.js +70 -0
- package/dist/modules/mcp/tools/shared/validator/context.js +35 -0
- package/dist/modules/mcp/tools/shared/validator/css.js +47 -0
- package/dist/modules/mcp/tools/shared/validator/elements.js +55 -0
- package/dist/modules/mcp/tools/shared/validator/index.js +226 -0
- package/dist/modules/mcp/tools/shared/validator/interactions.js +106 -0
- package/dist/modules/mcp/tools/shared/validator/refs.js +28 -0
- package/dist/modules/mcp/tools/validate.js +39 -0
- package/dist/modules/ssr/buildBody.js +2 -2
- package/dist/modules/ssr/handler.js +6 -4
- package/dist/modules/ssr/prepareRender.js +5 -5
- package/dist/modules/ssr/preview.js +106 -0
- package/dist/modules/ssr/registerExternalPlugins.js +1 -1
- package/dist/modules/ssr/streamBody.js +3 -3
- package/dist/modules/ssr/template.js +1 -1
- package/dist/modules/ssr/views/template.ejs +2 -0
- package/dist/plugins/compile.js +1 -1
- package/dist/plugins/copy.js +1 -1
- package/dist/plugins/manager.js +1 -1
- package/dist/server.js +34 -9
- package/dist/src/core/createServer.d.ts +5 -1
- package/dist/src/core/health.d.ts +10 -0
- package/dist/src/core/http/dispatcher.d.ts +7 -0
- package/dist/src/core/http/securityHeaders.d.ts +2 -0
- package/dist/src/core/http/stages/authRoutes.d.ts +4 -0
- package/dist/src/core/http/stages/health.d.ts +2 -0
- package/dist/src/core/http/stages/middlewares.d.ts +2 -0
- package/dist/src/core/http/stages/pluginAssets.d.ts +2 -0
- package/dist/src/core/http/stages/static.d.ts +5 -0
- package/dist/src/core/http/types.d.ts +19 -0
- package/dist/src/core/server/baseServer.d.ts +9 -0
- package/dist/src/core/server/mcpServer.d.ts +2 -0
- package/dist/src/core/server/ssrServer.d.ts +2 -0
- package/dist/src/core/services/mcp.d.ts +3 -0
- package/dist/src/core/services/preview.d.ts +2 -0
- package/dist/src/core/services/registry.d.ts +4 -0
- package/dist/src/core/services/resolve.d.ts +3 -0
- package/dist/src/core/services/rsc.d.ts +2 -0
- package/dist/src/core/services/ssr.d.ts +3 -0
- package/dist/src/core/transports.d.ts +2 -2
- package/dist/src/index.d.ts +12 -3
- package/dist/src/modules/ai/index.d.ts +1 -0
- package/dist/src/modules/ai/toolkit.d.ts +17 -0
- package/dist/src/modules/mcp/catalogs/builtinCallbacks.d.ts +23 -0
- package/dist/src/modules/mcp/catalogs/builtinComponents.d.ts +4 -0
- package/dist/src/modules/mcp/catalogs/builtinElementCallbacks.d.ts +20 -0
- package/dist/src/modules/mcp/catalogs/builtinTransformers.d.ts +28 -0
- package/dist/src/modules/mcp/catalogs/builtinUtilities.d.ts +18 -0
- package/dist/src/modules/mcp/catalogs/cssCatalog.d.ts +14 -0
- package/dist/src/modules/mcp/catalogs/index.d.ts +9 -0
- package/dist/src/modules/mcp/catalogs/observed.d.ts +48 -0
- package/dist/src/modules/mcp/catalogs/paramSpec.d.ts +42 -0
- package/dist/src/modules/mcp/catalogs/registry.d.ts +35 -0
- package/dist/src/modules/mcp/constants.d.ts +1 -0
- package/dist/src/modules/mcp/handler.d.ts +6 -3
- package/dist/src/modules/mcp/helpers/agentPrompt.d.ts +4 -0
- package/dist/src/modules/mcp/helpers/computeVersion.d.ts +1 -0
- package/dist/src/modules/mcp/helpers/guide.d.ts +3 -0
- package/dist/src/modules/mcp/helpers/index.d.ts +8 -0
- package/dist/src/modules/mcp/helpers/interactions.d.ts +30 -0
- package/dist/src/modules/mcp/helpers/log.d.ts +8 -0
- package/dist/src/modules/mcp/helpers/opResult.d.ts +13 -0
- package/dist/src/modules/mcp/helpers/space.d.ts +105 -0
- package/dist/src/modules/mcp/helpers/uris.d.ts +28 -0
- package/dist/src/modules/mcp/index.d.ts +12 -5
- package/dist/src/modules/mcp/previewClient.d.ts +13 -0
- package/dist/src/modules/mcp/resources/canonical.d.ts +6 -0
- package/dist/src/modules/mcp/resources/core.d.ts +5 -0
- package/dist/src/modules/mcp/resources/envelope.d.ts +10 -0
- package/dist/src/modules/mcp/resources/index.d.ts +7 -10
- package/dist/src/modules/mcp/resources/primer.d.ts +7 -0
- package/dist/src/modules/mcp/resources/register.d.ts +6 -0
- package/dist/src/modules/mcp/resources/router.d.ts +6 -0
- package/dist/src/modules/mcp/resources/schema.d.ts +5 -0
- package/dist/src/modules/mcp/resources/style.d.ts +5 -0
- package/dist/src/modules/mcp/screenshotClient.d.ts +13 -0
- package/dist/src/modules/mcp/server.d.ts +21 -3
- package/dist/src/modules/mcp/tools/apply/dispatch.d.ts +6 -0
- package/dist/src/modules/mcp/tools/apply/index.d.ts +420 -0
- package/dist/src/modules/mcp/tools/apply/writeResult.d.ts +8 -0
- package/dist/src/modules/mcp/tools/index.d.ts +17 -6
- package/dist/src/modules/mcp/tools/operations/index.d.ts +828 -0
- package/dist/src/modules/mcp/tools/operations/schema/bindings/deleteBinding.d.ts +17 -0
- package/dist/src/modules/mcp/tools/operations/schema/bindings/patchBinding.d.ts +25 -0
- package/dist/src/modules/mcp/tools/operations/schema/bindings/upsertBinding.d.ts +27 -0
- package/dist/src/modules/mcp/tools/operations/schema/elements/deleteElement.d.ts +10 -0
- package/dist/src/modules/mcp/tools/operations/schema/elements/moveElement.d.ts +16 -0
- package/dist/src/modules/mcp/tools/operations/schema/elements/patchElement.d.ts +22 -0
- package/dist/src/modules/mcp/tools/operations/schema/elements/upsertElement.d.ts +16 -0
- package/dist/src/modules/mcp/tools/operations/schema/folders/deleteFolder.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/schema/folders/upsertFolder.d.ts +12 -0
- package/dist/src/modules/mcp/tools/operations/schema/index.d.ts +20 -0
- package/dist/src/modules/mcp/tools/operations/schema/interactions/deleteInteraction.d.ts +12 -0
- package/dist/src/modules/mcp/tools/operations/schema/interactions/patchInteractionNode.d.ts +18 -0
- package/dist/src/modules/mcp/tools/operations/schema/interactions/upsertInteractionFlow.d.ts +27 -0
- package/dist/src/modules/mcp/tools/operations/schema/operations.d.ts +210 -0
- package/dist/src/modules/mcp/tools/operations/schema/pages/deletePage.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/schema/pages/upsertPage.d.ts +14 -0
- package/dist/src/modules/mcp/tools/operations/schema/settings/patchSettings.d.ts +34 -0
- package/dist/src/modules/mcp/tools/operations/schema/shared.d.ts +77 -0
- package/dist/src/modules/mcp/tools/operations/schema/translator.d.ts +12 -0
- package/dist/src/modules/mcp/tools/operations/schema/variables/deleteVariable.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/schema/variables/upsertVariable.d.ts +16 -0
- package/dist/src/modules/mcp/tools/operations/schema/write.d.ts +42 -0
- package/dist/src/modules/mcp/tools/operations/style/definitions/deleteDefinition.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/style/definitions/patchDefinition.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/definitions/upsertDefinition.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/globalStyles/deleteGlobalStyle.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/style/globalStyles/patchGlobalStyle.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/globalStyles/upsertGlobalStyle.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/idStyles/deleteIdStyle.d.ts +9 -0
- package/dist/src/modules/mcp/tools/operations/style/idStyles/patchIdStyle.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/idStyles/upsertIdStyle.d.ts +37 -0
- package/dist/src/modules/mcp/tools/operations/style/index.d.ts +14 -0
- package/dist/src/modules/mcp/tools/operations/style/operations.d.ts +231 -0
- package/dist/src/modules/mcp/tools/operations/style/shared.d.ts +115 -0
- package/dist/src/modules/mcp/tools/operations/style/translator.d.ts +12 -0
- package/dist/src/modules/mcp/tools/operations/style/variables/deleteStyleVariable.d.ts +15 -0
- package/dist/src/modules/mcp/tools/operations/style/variables/upsertStyleVariable.d.ts +20 -0
- package/dist/src/modules/mcp/tools/operations/style/write.d.ts +12 -0
- package/dist/src/modules/mcp/tools/preview.d.ts +415 -0
- package/dist/src/modules/mcp/tools/read.d.ts +8 -0
- package/dist/src/modules/mcp/tools/screenshot.d.ts +420 -0
- package/dist/src/modules/mcp/tools/search.d.ts +15 -0
- package/dist/src/modules/mcp/tools/shared/tool.d.ts +50 -0
- package/dist/src/modules/mcp/tools/shared/validator/audit.d.ts +4 -0
- package/dist/src/modules/mcp/tools/shared/validator/batch.d.ts +5 -0
- package/dist/src/modules/mcp/tools/shared/validator/bindings.d.ts +6 -0
- package/dist/src/modules/mcp/tools/shared/validator/context.d.ts +34 -0
- package/dist/src/modules/mcp/tools/shared/validator/css.d.ts +4 -0
- package/dist/src/modules/mcp/tools/shared/validator/elements.d.ts +6 -0
- package/dist/src/modules/mcp/tools/shared/validator/index.d.ts +8 -0
- package/dist/src/modules/mcp/tools/shared/validator/interactions.d.ts +3 -0
- package/dist/src/modules/mcp/tools/shared/validator/refs.d.ts +4 -0
- package/dist/src/modules/mcp/tools/validate.d.ts +417 -0
- package/dist/src/modules/mcp/types/aiSchema.d.ts +218 -0
- package/dist/src/modules/mcp/types/index.d.ts +4 -0
- package/dist/src/modules/mcp/types/previewTypes.d.ts +25 -0
- package/dist/src/modules/mcp/types/screenshotTypes.d.ts +29 -0
- package/dist/src/modules/mcp/types/toolTypes.d.ts +138 -0
- package/dist/src/modules/ssr/buildBody.d.ts +2 -2
- package/dist/src/modules/ssr/prepareRender.d.ts +2 -2
- package/dist/src/modules/ssr/preview.d.ts +16 -0
- package/dist/src/modules/ssr/streamBody.d.ts +2 -2
- package/package.json +16 -14
- package/dist/_virtual/_rolldown/runtime.js +0 -13
- package/dist/core/requestHandler.js +0 -126
- package/dist/modules/mcp/helpers.js +0 -75
- package/dist/modules/mcp/resources/glossary/binding.js +0 -73
- package/dist/modules/mcp/resources/glossary/collection.js +0 -76
- package/dist/modules/mcp/resources/glossary/displayMode.js +0 -50
- package/dist/modules/mcp/resources/glossary/element.js +0 -68
- package/dist/modules/mcp/resources/glossary/environment.js +0 -48
- package/dist/modules/mcp/resources/glossary/interaction.js +0 -62
- package/dist/modules/mcp/resources/glossary/page.js +0 -70
- package/dist/modules/mcp/resources/glossary/plugin.js +0 -96
- package/dist/modules/mcp/resources/glossary/resource.js +0 -75
- package/dist/modules/mcp/resources/glossary/schema.js +0 -69
- package/dist/modules/mcp/resources/glossary/schemaVariable.js +0 -60
- package/dist/modules/mcp/resources/glossary/segment.js +0 -59
- package/dist/modules/mcp/resources/glossary/space.js +0 -73
- package/dist/modules/mcp/resources/glossary/style.js +0 -81
- package/dist/modules/mcp/resources/glossary/styleSelector.js +0 -77
- package/dist/modules/mcp/resources/glossary/styleVariable.js +0 -72
- package/dist/modules/mcp/resources/index.js +0 -71
- package/dist/modules/mcp/resources/workflows/data.js +0 -49
- package/dist/modules/mcp/resources/workflows/elements.js +0 -53
- package/dist/modules/mcp/resources/workflows/segments.js +0 -55
- package/dist/modules/mcp/resources/workflows/styles.js +0 -91
- package/dist/modules/mcp/tools/collections/createCollection.js +0 -25
- package/dist/modules/mcp/tools/collections/createCollectionRecord.js +0 -27
- package/dist/modules/mcp/tools/collections/deleteCollection.js +0 -16
- package/dist/modules/mcp/tools/collections/deleteCollectionRecord.js +0 -16
- package/dist/modules/mcp/tools/collections/getCollection.js +0 -21
- package/dist/modules/mcp/tools/collections/getCollectionRecord.js +0 -25
- package/dist/modules/mcp/tools/collections/getCollectionRecords.js +0 -29
- package/dist/modules/mcp/tools/collections/getCollections.js +0 -19
- package/dist/modules/mcp/tools/collections/updateCollection.js +0 -28
- package/dist/modules/mcp/tools/collections/updateCollectionRecord.js +0 -31
- package/dist/modules/mcp/tools/docs/listResources.js +0 -16
- package/dist/modules/mcp/tools/docs/readResource.js +0 -23
- package/dist/modules/mcp/tools/plugins/addPlugin.js +0 -24
- package/dist/modules/mcp/tools/plugins/listPlugins.js +0 -20
- package/dist/modules/mcp/tools/plugins/removePlugin.js +0 -16
- package/dist/modules/mcp/tools/plugins/updatePlugin.js +0 -23
- package/dist/modules/mcp/tools/resources/addResource.js +0 -33
- package/dist/modules/mcp/tools/resources/getResource.js +0 -29
- package/dist/modules/mcp/tools/resources/getResources.js +0 -27
- package/dist/modules/mcp/tools/resources/moveResource.js +0 -30
- package/dist/modules/mcp/tools/resources/removeResource.js +0 -19
- package/dist/modules/mcp/tools/segment/createSegment.js +0 -27
- package/dist/modules/mcp/tools/segment/deleteSegment.js +0 -16
- package/dist/modules/mcp/tools/segment/getSegment.js +0 -19
- package/dist/modules/mcp/tools/segment/getSegments.js +0 -27
- package/dist/modules/mcp/tools/segment/schema/elements/createSegmentElement.js +0 -24
- package/dist/modules/mcp/tools/segment/schema/elements/deleteSegmentElement.js +0 -19
- package/dist/modules/mcp/tools/segment/schema/elements/moveSegmentElement.js +0 -28
- package/dist/modules/mcp/tools/segment/schema/elements/updateSegmentElement.js +0 -23
- package/dist/modules/mcp/tools/segment/schema/variables/createSegmentVariable.js +0 -41
- package/dist/modules/mcp/tools/segment/schema/variables/deleteSegmentVariable.js +0 -19
- package/dist/modules/mcp/tools/segment/schema/variables/updateSegmentVariable.js +0 -41
- package/dist/modules/mcp/tools/segment/style/variables/createSegmentStyleVariable.js +0 -34
- package/dist/modules/mcp/tools/segment/style/variables/deleteSegmentStyleVariable.js +0 -21
- package/dist/modules/mcp/tools/segment/style/variables/updateSegmentStyleVariable.js +0 -34
- package/dist/modules/mcp/tools/segment/updateSegment.js +0 -30
- package/dist/modules/mcp/tools/space/schema/applyPreview.js +0 -33
- package/dist/modules/mcp/tools/space/schema/elements/cloneElement.js +0 -34
- package/dist/modules/mcp/tools/space/schema/elements/createElement.js +0 -50
- package/dist/modules/mcp/tools/space/schema/elements/deleteElement.js +0 -16
- package/dist/modules/mcp/tools/space/schema/elements/getElement.js +0 -17
- package/dist/modules/mcp/tools/space/schema/elements/getElements.js +0 -21
- package/dist/modules/mcp/tools/space/schema/elements/listElements.js +0 -28
- package/dist/modules/mcp/tools/space/schema/elements/moveElement.js +0 -27
- package/dist/modules/mcp/tools/space/schema/elements/updateElement.js +0 -49
- package/dist/modules/mcp/tools/space/schema/getSpaceSettings.js +0 -46
- package/dist/modules/mcp/tools/space/schema/pageFolders/createPageFolder.js +0 -24
- package/dist/modules/mcp/tools/space/schema/pageFolders/deletePageFolder.js +0 -16
- package/dist/modules/mcp/tools/space/schema/pageFolders/getPageFolder.js +0 -17
- package/dist/modules/mcp/tools/space/schema/pageFolders/getPageFolders.js +0 -17
- package/dist/modules/mcp/tools/space/schema/pageFolders/updatePageFolder.js +0 -28
- package/dist/modules/mcp/tools/space/schema/pages/createPage.js +0 -37
- package/dist/modules/mcp/tools/space/schema/pages/deletePage.js +0 -16
- package/dist/modules/mcp/tools/space/schema/pages/getPage.js +0 -28
- package/dist/modules/mcp/tools/space/schema/pages/getPageBySlug.js +0 -17
- package/dist/modules/mcp/tools/space/schema/pages/getPages.js +0 -17
- package/dist/modules/mcp/tools/space/schema/pages/updatePage.js +0 -25
- package/dist/modules/mcp/tools/space/schema/schemas.js +0 -53
- package/dist/modules/mcp/tools/space/schema/updateSpaceSettings.js +0 -23
- package/dist/modules/mcp/tools/space/schema/variables/createVariable.js +0 -38
- package/dist/modules/mcp/tools/space/schema/variables/deleteVariable.js +0 -16
- package/dist/modules/mcp/tools/space/schema/variables/getVariable.js +0 -17
- package/dist/modules/mcp/tools/space/schema/variables/getVariables.js +0 -17
- package/dist/modules/mcp/tools/space/schema/variables/updateVariable.js +0 -38
- package/dist/modules/mcp/tools/space/style/selectors/createStyleSelector.js +0 -37
- package/dist/modules/mcp/tools/space/style/selectors/deleteStyleSelector.js +0 -24
- package/dist/modules/mcp/tools/space/style/selectors/getStyleSelectors.js +0 -20
- package/dist/modules/mcp/tools/space/style/selectors/updateStyleSelector.js +0 -37
- package/dist/modules/mcp/tools/space/style/variables/createStyleVariable.js +0 -33
- package/dist/modules/mcp/tools/space/style/variables/deleteStyleVariable.js +0 -20
- package/dist/modules/mcp/tools/space/style/variables/getStyleVariable.js +0 -19
- package/dist/modules/mcp/tools/space/style/variables/getStyleVariables.js +0 -16
- package/dist/modules/mcp/tools/space/style/variables/updateStyleVariable.js +0 -33
- package/dist/package.js +0 -77
- package/dist/package.json.d.ts +0 -67
- package/dist/src/core/requestHandler.d.ts +0 -5
- package/dist/src/modules/mcp/helpers.d.ts +0 -9
- package/dist/src/modules/mcp/resources/glossary/binding.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/collection.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/displayMode.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/element.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/environment.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/interaction.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/page.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/plugin.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/resource.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/schema.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/schemaVariable.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/segment.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/space.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/style.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/styleSelector.d.ts +0 -7
- package/dist/src/modules/mcp/resources/glossary/styleVariable.d.ts +0 -7
- package/dist/src/modules/mcp/resources/workflows/data.d.ts +0 -7
- package/dist/src/modules/mcp/resources/workflows/elements.d.ts +0 -7
- package/dist/src/modules/mcp/resources/workflows/segments.d.ts +0 -7
- package/dist/src/modules/mcp/resources/workflows/styles.d.ts +0 -7
- package/dist/src/modules/mcp/tools/collections/createCollection.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/createCollectionRecord.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/deleteCollection.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/deleteCollectionRecord.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/getCollection.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/getCollectionRecord.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/getCollectionRecords.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/getCollections.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/index.d.ts +0 -10
- package/dist/src/modules/mcp/tools/collections/updateCollection.d.ts +0 -3
- package/dist/src/modules/mcp/tools/collections/updateCollectionRecord.d.ts +0 -3
- package/dist/src/modules/mcp/tools/docs/index.d.ts +0 -2
- package/dist/src/modules/mcp/tools/docs/listResources.d.ts +0 -3
- package/dist/src/modules/mcp/tools/docs/readResource.d.ts +0 -3
- package/dist/src/modules/mcp/tools/plugins/addPlugin.d.ts +0 -3
- package/dist/src/modules/mcp/tools/plugins/index.d.ts +0 -5
- package/dist/src/modules/mcp/tools/plugins/listPlugins.d.ts +0 -3
- package/dist/src/modules/mcp/tools/plugins/removePlugin.d.ts +0 -3
- package/dist/src/modules/mcp/tools/plugins/updatePlugin.d.ts +0 -3
- package/dist/src/modules/mcp/tools/resources/addResource.d.ts +0 -3
- package/dist/src/modules/mcp/tools/resources/getResource.d.ts +0 -3
- package/dist/src/modules/mcp/tools/resources/getResources.d.ts +0 -3
- package/dist/src/modules/mcp/tools/resources/index.d.ts +0 -6
- package/dist/src/modules/mcp/tools/resources/moveResource.d.ts +0 -3
- package/dist/src/modules/mcp/tools/resources/removeResource.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/createSegment.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/deleteSegment.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/getSegment.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/getSegments.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/index.d.ts +0 -8
- package/dist/src/modules/mcp/tools/segment/schema/elements/createSegmentElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/elements/deleteSegmentElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/elements/index.d.ts +0 -5
- package/dist/src/modules/mcp/tools/segment/schema/elements/moveSegmentElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/elements/updateSegmentElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/index.d.ts +0 -2
- package/dist/src/modules/mcp/tools/segment/schema/variables/createSegmentVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/variables/deleteSegmentVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/schema/variables/index.d.ts +0 -4
- package/dist/src/modules/mcp/tools/segment/schema/variables/updateSegmentVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/segment.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/segment/style/index.d.ts +0 -1
- package/dist/src/modules/mcp/tools/segment/style/variables/createSegmentStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/style/variables/deleteSegmentStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/style/variables/index.d.ts +0 -4
- package/dist/src/modules/mcp/tools/segment/style/variables/segmentStyleVariables.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/segment/style/variables/updateSegmentStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/segment/updateSegment.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/index.d.ts +0 -2
- package/dist/src/modules/mcp/tools/space/schema/applyPreview.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/cloneElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/createElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/deleteElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/elements.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/schema/elements/getElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/getElements.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/index.d.ts +0 -9
- package/dist/src/modules/mcp/tools/space/schema/elements/listElements.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/moveElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/elements/updateElement.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/getSpaceSettings.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/index.d.ts +0 -8
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/createPageFolder.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/deletePageFolder.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/getPageFolder.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/getPageFolders.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/index.d.ts +0 -6
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/pageFolders.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/schema/pageFolders/updatePageFolder.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/createPage.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/deletePage.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/getPage.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/getPageBySlug.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/getPages.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/pages/index.d.ts +0 -7
- package/dist/src/modules/mcp/tools/space/schema/pages/pages.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/schema/pages/updatePage.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/schemas.d.ts +0 -66
- package/dist/src/modules/mcp/tools/space/schema/updateSpaceSettings.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/createVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/deleteVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/getVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/getVariables.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/index.d.ts +0 -6
- package/dist/src/modules/mcp/tools/space/schema/variables/updateVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/schema/variables/variables.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/space.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/style/index.d.ts +0 -2
- package/dist/src/modules/mcp/tools/space/style/selectors/createStyleSelector.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/selectors/deleteStyleSelector.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/selectors/getStyleSelectors.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/selectors/index.d.ts +0 -5
- package/dist/src/modules/mcp/tools/space/style/selectors/styleSelectors.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/style/selectors/updateStyleSelector.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/variables/createStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/variables/deleteStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/variables/getStyleVariable.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/variables/getStyleVariables.d.ts +0 -3
- package/dist/src/modules/mcp/tools/space/style/variables/index.d.ts +0 -6
- package/dist/src/modules/mcp/tools/space/style/variables/styleVariables.test.d.ts +0 -1
- package/dist/src/modules/mcp/tools/space/style/variables/updateStyleVariable.d.ts +0 -3
- /package/dist/src/{modules/mcp/helpers.test.d.ts → core/server/mcpServer.test.d.ts} +0 -0
- /package/dist/src/modules/{mcp/tools/collections/collections.test.d.ts → ai/toolkit.test.d.ts} +0 -0
- /package/dist/src/modules/mcp/{tools/plugins/plugins.test.d.ts → catalogs/builtinTransformers.test.d.ts} +0 -0
- /package/dist/src/modules/mcp/{tools/resources/resources.test.d.ts → helpers/log.test.d.ts} +0 -0
- /package/dist/src/modules/mcp/{tools/segment/schema/elements/segmentElements.test.d.ts → mcp.bench.d.ts} +0 -0
- /package/dist/src/modules/mcp/{tools/segment/schema/variables/segmentVariables.test.d.ts → mcp.test.d.ts} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { pageUri } from "../../../../helpers/uris.js";
|
|
2
|
+
import { empty, fail } from "../../../../helpers/opResult.js";
|
|
3
|
+
import { resolveElement } from "../write.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
//#region src/modules/mcp/tools/operations/schema/interactions/deleteInteraction.ts
|
|
6
|
+
var deleteInteractionOp = z.object({
|
|
7
|
+
type: z.literal("deleteInteraction"),
|
|
8
|
+
pageRef: z.string().describe("Page ref or id"),
|
|
9
|
+
ref: z.string().describe("Element ref or id"),
|
|
10
|
+
flowId: z.string().optional().describe("Remove the whole flow with this id (the trigger node id)"),
|
|
11
|
+
nodeId: z.string().optional().describe("Remove a single step; its neighbors are re-linked. Deleting a trigger removes its flow")
|
|
12
|
+
}).describe("DESTRUCTIVE, not undoable — remove an interaction flow (by flowId) or a single step (by nodeId). Provide exactly one. To merely turn a step OFF without removing it, use patchInteractionNode { enabled: false } instead. Confirm with the user before deleting.");
|
|
13
|
+
var removeFlow = (interactions, flowId) => {
|
|
14
|
+
let deleted = 0;
|
|
15
|
+
for (const [nodeId, node] of Object.entries(interactions)) if ((node.flowId || node.id) === flowId) {
|
|
16
|
+
Reflect.deleteProperty(interactions, nodeId);
|
|
17
|
+
deleted++;
|
|
18
|
+
}
|
|
19
|
+
return deleted;
|
|
20
|
+
};
|
|
21
|
+
var deleteInteraction = (space, env, op) => {
|
|
22
|
+
if (Boolean(op.flowId) === Boolean(op.nodeId)) return fail("nodeId", "Provide exactly one of flowId or nodeId", "flowId removes a whole flow; nodeId removes a step");
|
|
23
|
+
const found = resolveElement(space, env, op.pageRef, op.ref);
|
|
24
|
+
if ("error" in found) return found.error;
|
|
25
|
+
const interactions = found.el.definition.interactions;
|
|
26
|
+
if (!interactions) return fail("ref", `Element "${op.ref}" has no interactions`, "Nothing to delete");
|
|
27
|
+
let deleted = 0;
|
|
28
|
+
if (op.flowId) deleted = removeFlow(interactions, op.flowId);
|
|
29
|
+
else if (op.nodeId) {
|
|
30
|
+
if (!(op.nodeId in interactions)) return fail("nodeId", `Interaction node "${op.nodeId}" not found on "${op.ref}"`, "Read the element to list nodes");
|
|
31
|
+
const node = interactions[op.nodeId];
|
|
32
|
+
if (node.type === "trigger") deleted = removeFlow(interactions, node.flowId || node.id);
|
|
33
|
+
else {
|
|
34
|
+
const before = node.beforeNode ? interactions[node.beforeNode] : void 0;
|
|
35
|
+
const after = node.afterNode ? interactions[node.afterNode] : void 0;
|
|
36
|
+
if (before) before.afterNode = node.afterNode;
|
|
37
|
+
if (after) after.beforeNode = node.beforeNode;
|
|
38
|
+
Reflect.deleteProperty(interactions, op.nodeId);
|
|
39
|
+
deleted = 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (deleted === 0) return fail("flowId", `No interaction matching "${op.flowId ?? op.nodeId}" on "${op.ref}"`, "Nothing to delete");
|
|
43
|
+
if (Object.keys(interactions).length === 0) Reflect.deleteProperty(found.el.definition, "interactions");
|
|
44
|
+
return {
|
|
45
|
+
...empty(),
|
|
46
|
+
deleted,
|
|
47
|
+
staleResources: [pageUri(env, op.pageRef)],
|
|
48
|
+
elementRefs: [op.ref]
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { deleteInteraction, deleteInteractionOp };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { pageUri } from "../../../../helpers/uris.js";
|
|
2
|
+
import { NULLISH_ELEMENT_IDS } from "../../../../helpers/interactions.js";
|
|
3
|
+
import { empty, fail } from "../../../../helpers/opResult.js";
|
|
4
|
+
import { interactionNode } from "../shared.js";
|
|
5
|
+
import { resolveElement, resolveTargetRef } from "../write.js";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
//#region src/modules/mcp/tools/operations/schema/interactions/patchInteractionNode.ts
|
|
8
|
+
var { title, action, params, enabled, when, elementId, preview } = interactionNode.shape;
|
|
9
|
+
var patchInteractionNodeOp = z.object({
|
|
10
|
+
type: z.literal("patchInteractionNode"),
|
|
11
|
+
pageRef: z.string().describe("Page ref or id"),
|
|
12
|
+
ref: z.string().describe("Element ref or id"),
|
|
13
|
+
nodeId: z.string().describe("Id of the interaction node to update"),
|
|
14
|
+
title: title.optional(),
|
|
15
|
+
action: action.optional(),
|
|
16
|
+
params: params.describe("Merged onto the node params: listed keys change, others are preserved"),
|
|
17
|
+
enabled,
|
|
18
|
+
when,
|
|
19
|
+
elementId,
|
|
20
|
+
preview
|
|
21
|
+
}).describe("Partially update ONE step of an interaction flow (found by nodeId): only the fields you pass change; the flow order/links are untouched. This is how you DISABLE/deactivate a step without removing it: pass { enabled: false } (re-enable with { enabled: true }) — the step stays in the flow. Use deleteInteraction only to actually remove a step or a flow. Fails if the node does not exist.");
|
|
22
|
+
var patchInteractionNode = (space, env, op) => {
|
|
23
|
+
const found = resolveElement(space, env, op.pageRef, op.ref);
|
|
24
|
+
if ("error" in found) return found.error;
|
|
25
|
+
const node = found.el.definition.interactions?.[op.nodeId];
|
|
26
|
+
if (!node) return fail("nodeId", `Interaction node "${op.nodeId}" not found on "${op.ref}"`, "Read the element to list nodes");
|
|
27
|
+
if (op.title !== void 0) node.title = op.title;
|
|
28
|
+
if (op.action !== void 0) node.action = op.action;
|
|
29
|
+
if (op.params !== void 0) node.params = {
|
|
30
|
+
...node.params,
|
|
31
|
+
...op.params
|
|
32
|
+
};
|
|
33
|
+
if (op.enabled !== void 0) node.enabled = op.enabled;
|
|
34
|
+
if (op.when !== void 0) node.when = op.when;
|
|
35
|
+
if (op.elementId !== void 0) node.elementId = resolveTargetRef(space, op.elementId);
|
|
36
|
+
if (node.type === "utility") node.elementId = null;
|
|
37
|
+
else if (typeof node.elementId === "string" && NULLISH_ELEMENT_IDS.has(node.elementId)) node.elementId = null;
|
|
38
|
+
if (op.preview !== void 0) node.preview = op.preview;
|
|
39
|
+
return {
|
|
40
|
+
...empty(),
|
|
41
|
+
updated: 1,
|
|
42
|
+
staleResources: [pageUri(env, op.pageRef)],
|
|
43
|
+
elementRefs: [op.ref]
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { patchInteractionNode, patchInteractionNodeOp };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { pageUri } from "../../../../helpers/uris.js";
|
|
2
|
+
import { materializeFlow } from "../../../../helpers/interactions.js";
|
|
3
|
+
import { empty } from "../../../../helpers/opResult.js";
|
|
4
|
+
import { interactionNode } from "../shared.js";
|
|
5
|
+
import { ensureIdRef, resolveElement, resolveTargetRef } from "../write.js";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
//#region src/modules/mcp/tools/operations/schema/interactions/upsertInteractionFlow.ts
|
|
8
|
+
var upsertInteractionFlowOp = z.object({
|
|
9
|
+
type: z.literal("upsertInteractionFlow"),
|
|
10
|
+
pageRef: z.string().describe("Page ref or id"),
|
|
11
|
+
ref: z.string().describe("Element ref or id"),
|
|
12
|
+
flowId: z.string().optional().describe("Existing flow to replace (the trigger node id). Omit to create a new flow"),
|
|
13
|
+
nodes: z.array(interactionNode).min(1).describe("Ordered steps of the flow: the FIRST must be a trigger, the rest run after it in order")
|
|
14
|
+
}).describe("Create or replace one interaction flow on an element from an ordered list of steps. The stored beforeNode/afterNode/flowId links are computed for you — pass the steps in execution order. For a globalCallback (addNotification, setState, navigate, auth*, *CollectionRecord) OMIT elementId: it is registered on a source module, not the host element, and the MCP sets the right source and fills the default param values for you. To edit a single step in place use patchInteractionNode.");
|
|
15
|
+
var upsertInteractionFlow = (space, env, op) => {
|
|
16
|
+
const found = resolveElement(space, env, op.pageRef, op.ref);
|
|
17
|
+
if ("error" in found) return found.error;
|
|
18
|
+
const ownerRef = ensureIdRef(space, found.el);
|
|
19
|
+
const { flowId, record } = materializeFlow((op.flowId && !op.nodes[0].id ? [{
|
|
20
|
+
...op.nodes[0],
|
|
21
|
+
id: op.flowId
|
|
22
|
+
}, ...op.nodes.slice(1)] : op.nodes).map((node) => node.elementId === void 0 || node.nodeType === "utility" ? node : {
|
|
23
|
+
...node,
|
|
24
|
+
elementId: resolveTargetRef(space, node.elementId)
|
|
25
|
+
}), ownerRef);
|
|
26
|
+
const interactions = found.el.definition.interactions ?? {};
|
|
27
|
+
const targetFlow = op.flowId ?? flowId;
|
|
28
|
+
let replaced = false;
|
|
29
|
+
for (const [nodeId, node] of Object.entries(interactions)) if ((node.flowId || node.id) === targetFlow) {
|
|
30
|
+
Reflect.deleteProperty(interactions, nodeId);
|
|
31
|
+
replaced = true;
|
|
32
|
+
}
|
|
33
|
+
Object.assign(interactions, record);
|
|
34
|
+
found.el.definition.interactions = interactions;
|
|
35
|
+
return {
|
|
36
|
+
...empty(),
|
|
37
|
+
...replaced ? { updated: 1 } : { created: 1 },
|
|
38
|
+
staleResources: [pageUri(env, op.pageRef)],
|
|
39
|
+
elementRefs: [op.ref]
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { upsertInteractionFlow, upsertInteractionFlowOp };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { deleteBindingOp } from "./bindings/deleteBinding.js";
|
|
2
|
+
import { patchBindingOp } from "./bindings/patchBinding.js";
|
|
3
|
+
import { upsertBindingOp } from "./bindings/upsertBinding.js";
|
|
4
|
+
import { deleteElementOp } from "./elements/deleteElement.js";
|
|
5
|
+
import { moveElementOp } from "./elements/moveElement.js";
|
|
6
|
+
import { patchElementOp } from "./elements/patchElement.js";
|
|
7
|
+
import { upsertElementOp } from "./elements/upsertElement.js";
|
|
8
|
+
import { deleteFolderOp } from "./folders/deleteFolder.js";
|
|
9
|
+
import { upsertFolderOp } from "./folders/upsertFolder.js";
|
|
10
|
+
import { deleteInteractionOp } from "./interactions/deleteInteraction.js";
|
|
11
|
+
import { patchInteractionNodeOp } from "./interactions/patchInteractionNode.js";
|
|
12
|
+
import { upsertInteractionFlowOp } from "./interactions/upsertInteractionFlow.js";
|
|
13
|
+
import { deletePageOp } from "./pages/deletePage.js";
|
|
14
|
+
import { upsertPageOp } from "./pages/upsertPage.js";
|
|
15
|
+
import { patchSettingsOp } from "./settings/patchSettings.js";
|
|
16
|
+
import { deleteVariableOp } from "./variables/deleteVariable.js";
|
|
17
|
+
import { upsertVariableOp } from "./variables/upsertVariable.js";
|
|
18
|
+
//#region src/modules/mcp/tools/operations/schema/operations.ts
|
|
19
|
+
var elementOps = {
|
|
20
|
+
upsertElement: upsertElementOp,
|
|
21
|
+
patchElement: patchElementOp,
|
|
22
|
+
deleteElement: deleteElementOp,
|
|
23
|
+
moveElement: moveElementOp,
|
|
24
|
+
upsertPage: upsertPageOp,
|
|
25
|
+
deletePage: deletePageOp,
|
|
26
|
+
upsertFolder: upsertFolderOp,
|
|
27
|
+
deleteFolder: deleteFolderOp,
|
|
28
|
+
upsertVariable: upsertVariableOp,
|
|
29
|
+
deleteVariable: deleteVariableOp,
|
|
30
|
+
upsertBinding: upsertBindingOp,
|
|
31
|
+
patchBinding: patchBindingOp,
|
|
32
|
+
deleteBinding: deleteBindingOp,
|
|
33
|
+
upsertInteractionFlow: upsertInteractionFlowOp,
|
|
34
|
+
patchInteractionNode: patchInteractionNodeOp,
|
|
35
|
+
deleteInteraction: deleteInteractionOp,
|
|
36
|
+
patchSettings: patchSettingsOp
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { elementOps };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { descendantIds, findPageByRef, indexRemovePage } from "../../../../helpers/space.js";
|
|
2
|
+
import { pageUri, pagesUri } from "../../../../helpers/uris.js";
|
|
3
|
+
import { empty, fail } from "../../../../helpers/opResult.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
//#region src/modules/mcp/tools/operations/schema/pages/deletePage.ts
|
|
6
|
+
var deletePageOp = z.object({
|
|
7
|
+
type: z.literal("deletePage"),
|
|
8
|
+
ref: z.string().describe("Page ref or id")
|
|
9
|
+
}).describe("Delete a page and every element on it.");
|
|
10
|
+
var deletePage = (space, env, op) => {
|
|
11
|
+
const page = findPageByRef(space.schema, op.ref);
|
|
12
|
+
if (!page) return fail("ref", `Page "${op.ref}" not found`, "Read the pages resource for valid refs");
|
|
13
|
+
const descendantElementIds = descendantIds(space.schema, page.id);
|
|
14
|
+
const descendants = descendantElementIds.map((id) => space.schema.flat[id]);
|
|
15
|
+
for (const id of [...descendantElementIds, page.id]) Reflect.deleteProperty(space.schema.flat, id);
|
|
16
|
+
space.schema.pages = space.schema.pages.filter((id) => id !== page.id);
|
|
17
|
+
indexRemovePage(space.schema, page, descendants);
|
|
18
|
+
return {
|
|
19
|
+
...empty(),
|
|
20
|
+
deleted: 1,
|
|
21
|
+
staleResources: [pageUri(env, op.ref), pagesUri(env)]
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { deletePage, deletePageOp };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { findFolderByRef, findPageByRef, generateObjectId, indexAddPage, indexReRefPage, pageRefOf } from "../../../../helpers/space.js";
|
|
2
|
+
import { pageUri, pagesUri } from "../../../../helpers/uris.js";
|
|
3
|
+
import { empty, fail } from "../../../../helpers/opResult.js";
|
|
4
|
+
import { guardNewRef } from "../write.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
//#region src/modules/mcp/tools/operations/schema/pages/upsertPage.ts
|
|
7
|
+
var upsertPageOp = z.object({
|
|
8
|
+
type: z.literal("upsertPage"),
|
|
9
|
+
ref: z.string().describe("Page id/slug to update, or a new id you choose to create one. On a new page it is stored as its idRef: starts with a letter, then letters, numbers, hyphens and underscores (\"pricing\"), unique across the space."),
|
|
10
|
+
label: z.string().optional(),
|
|
11
|
+
slug: z.string().optional().describe("The page URL path, RELATIVE — do NOT start it with \"/\" (the runtime and any parent folder slugs prepend the path; a leading \"/\" is stripped). Good practice: always set one on create for a clean, stable route, e.g. \"pricing\" or \"posts/:postId\" (a \":name\" segment is a route param, readable as {{name}} and as the source navigation.routeParams.name). Omitted on create → the page ref is used as the slug."),
|
|
12
|
+
folder: z.string().nullable().optional().describe("Ref of an existing folder to place this page in; \"\" or null moves it to the root. Unknown → error"),
|
|
13
|
+
default: z.boolean().optional(),
|
|
14
|
+
enabled: z.boolean().optional().describe("false disables the page in the published SDK runtime (not routable/accessible to end users); it stays editable here. Defaults to true")
|
|
15
|
+
}).describe("Create a page, or update it when ref already exists (only the fields you pass change).");
|
|
16
|
+
var upsertPage = (space, env, op) => {
|
|
17
|
+
const slug = op.slug === void 0 ? void 0 : op.slug.replace(/^\/+/, "");
|
|
18
|
+
let folderValue;
|
|
19
|
+
if (op.folder !== void 0) if (op.folder === null || op.folder === "") folderValue = "";
|
|
20
|
+
else {
|
|
21
|
+
const resolved = findFolderByRef(space.schema, op.folder);
|
|
22
|
+
if (!resolved) return fail("folder", `Folder "${op.folder}" not found`, "Create it with upsertFolder, or read plitzi://folders");
|
|
23
|
+
folderValue = resolved.id;
|
|
24
|
+
}
|
|
25
|
+
const existing = findPageByRef(space.schema, op.ref);
|
|
26
|
+
if (existing) {
|
|
27
|
+
const oldRef = pageRefOf(existing);
|
|
28
|
+
existing.attributes = {
|
|
29
|
+
...existing.attributes,
|
|
30
|
+
...slug !== void 0 ? { slug } : {},
|
|
31
|
+
...op.label !== void 0 ? { name: op.label } : {},
|
|
32
|
+
...op.default !== void 0 ? { default: op.default } : {},
|
|
33
|
+
...op.enabled !== void 0 ? { enabled: op.enabled } : {},
|
|
34
|
+
...folderValue !== void 0 ? { folder: folderValue } : {}
|
|
35
|
+
};
|
|
36
|
+
indexReRefPage(space.schema, existing, oldRef);
|
|
37
|
+
return {
|
|
38
|
+
...empty(),
|
|
39
|
+
updated: 1,
|
|
40
|
+
staleResources: [pageUri(env, op.ref), pagesUri(env)]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const guard = guardNewRef(space, op.ref, "ref");
|
|
44
|
+
if (guard) return guard;
|
|
45
|
+
const id = generateObjectId();
|
|
46
|
+
const attributes = {
|
|
47
|
+
slug: slug ?? op.ref,
|
|
48
|
+
name: op.label ?? op.ref,
|
|
49
|
+
default: op.default ?? false,
|
|
50
|
+
enabled: op.enabled ?? true,
|
|
51
|
+
folder: folderValue ?? ""
|
|
52
|
+
};
|
|
53
|
+
const page = {
|
|
54
|
+
id,
|
|
55
|
+
idRef: op.ref,
|
|
56
|
+
attributes,
|
|
57
|
+
definition: {
|
|
58
|
+
rootId: id,
|
|
59
|
+
label: op.label ?? op.ref,
|
|
60
|
+
type: "page",
|
|
61
|
+
items: [],
|
|
62
|
+
styleSelectors: { base: "" }
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
space.schema.flat[id] = page;
|
|
66
|
+
space.schema.pages.push(id);
|
|
67
|
+
indexAddPage(space.schema, page);
|
|
68
|
+
return {
|
|
69
|
+
...empty(),
|
|
70
|
+
created: 1,
|
|
71
|
+
staleResources: [pageUri(env, op.ref), pagesUri(env)]
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
//#endregion
|
|
75
|
+
export { upsertPage, upsertPageOp };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { settingsUri } from "../../../../helpers/uris.js";
|
|
2
|
+
import { empty } from "../../../../helpers/opResult.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region src/modules/mcp/tools/operations/schema/settings/patchSettings.ts
|
|
5
|
+
var userProvider = z.enum([
|
|
6
|
+
"auth0",
|
|
7
|
+
"basic",
|
|
8
|
+
"custom",
|
|
9
|
+
""
|
|
10
|
+
]);
|
|
11
|
+
var storage = z.enum([
|
|
12
|
+
"localStorage",
|
|
13
|
+
"sessionStorage",
|
|
14
|
+
""
|
|
15
|
+
]);
|
|
16
|
+
var patchSettingsOp = z.object({
|
|
17
|
+
type: z.literal("patchSettings"),
|
|
18
|
+
customCss: z.string().optional().describe("Raw global CSS for the whole space (keyframes, @font-face, resets)"),
|
|
19
|
+
keepState: z.boolean().optional().describe("Persist element state across reloads"),
|
|
20
|
+
stateStorage: z.enum(["localStorage", "sessionStorage"]).optional(),
|
|
21
|
+
userProvider: userProvider.optional().describe("Auth provider; \"\" disables authentication"),
|
|
22
|
+
auth0Domain: z.string().optional(),
|
|
23
|
+
auth0ClientId: z.string().optional(),
|
|
24
|
+
tokenStorage: storage.optional(),
|
|
25
|
+
loginUrl: z.string().optional(),
|
|
26
|
+
userUrl: z.string().optional(),
|
|
27
|
+
refreshUrl: z.string().optional(),
|
|
28
|
+
logoutUrl: z.string().optional(),
|
|
29
|
+
detailsPath: z.string().optional(),
|
|
30
|
+
tokenPath: z.string().optional(),
|
|
31
|
+
expirationTimePath: z.string().optional()
|
|
32
|
+
}).describe("Merge space-level settings: the global CSS (customCss) and the state/auth (user-provider) configuration. Only the fields you pass change; the rest are preserved. Use customCss for site-wide CSS, never to style one element (attach a definition for that).");
|
|
33
|
+
var patchSettings = (space, env, op) => {
|
|
34
|
+
const { type, ...patch } = op;
|
|
35
|
+
const next = { ...space.schema.settings };
|
|
36
|
+
for (const [key, value] of Object.entries(patch)) next[key] = value;
|
|
37
|
+
space.schema.settings = next;
|
|
38
|
+
return {
|
|
39
|
+
...empty(),
|
|
40
|
+
updated: 1,
|
|
41
|
+
staleResources: [settingsUri(env)]
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { patchSettings, patchSettingsOp };
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/modules/mcp/tools/operations/schema/shared.ts
|
|
3
|
+
var combinator = z.enum(["and", "or"]);
|
|
4
|
+
var operator = z.enum([
|
|
5
|
+
"",
|
|
6
|
+
"=",
|
|
7
|
+
"!=",
|
|
8
|
+
"<",
|
|
9
|
+
">",
|
|
10
|
+
"<=",
|
|
11
|
+
">=",
|
|
12
|
+
"contains",
|
|
13
|
+
"doesNotContain",
|
|
14
|
+
"beginsWith",
|
|
15
|
+
"doesNotBeginWith",
|
|
16
|
+
"endsWith",
|
|
17
|
+
"doesNotEndWith",
|
|
18
|
+
"empty",
|
|
19
|
+
"notEmpty",
|
|
20
|
+
"in",
|
|
21
|
+
"notIn",
|
|
22
|
+
"between",
|
|
23
|
+
"notBetween"
|
|
24
|
+
]);
|
|
25
|
+
var ruleValue = z.union([
|
|
26
|
+
z.string(),
|
|
27
|
+
z.number(),
|
|
28
|
+
z.boolean(),
|
|
29
|
+
z.null(),
|
|
30
|
+
z.record(z.string(), z.unknown()),
|
|
31
|
+
z.array(z.unknown())
|
|
32
|
+
]);
|
|
33
|
+
var ruleBase = {
|
|
34
|
+
id: z.string().optional(),
|
|
35
|
+
field: z.string().describe("The data field the rule tests"),
|
|
36
|
+
operator,
|
|
37
|
+
enabled: z.boolean().optional()
|
|
38
|
+
};
|
|
39
|
+
var rule = z.union([z.object({
|
|
40
|
+
...ruleBase,
|
|
41
|
+
isBinding: z.literal(true),
|
|
42
|
+
value: z.string()
|
|
43
|
+
}), z.object({
|
|
44
|
+
...ruleBase,
|
|
45
|
+
isBinding: z.literal(false).optional(),
|
|
46
|
+
value: ruleValue
|
|
47
|
+
})]);
|
|
48
|
+
var ruleGroup = z.lazy(() => z.object({
|
|
49
|
+
id: z.string().optional(),
|
|
50
|
+
combinator,
|
|
51
|
+
rules: z.array(z.union([rule, ruleGroup])),
|
|
52
|
+
enabled: z.boolean().optional()
|
|
53
|
+
}));
|
|
54
|
+
var styleRefs = z.object({
|
|
55
|
+
base: z.array(z.string()).optional(),
|
|
56
|
+
slots: z.record(z.string(), z.array(z.string())).optional()
|
|
57
|
+
});
|
|
58
|
+
var styleVariantInput = z.record(z.string(), z.record(z.string(), z.union([z.string(), z.array(z.string())])));
|
|
59
|
+
var initialStateInput = z.object({
|
|
60
|
+
styleVariant: styleVariantInput.optional().describe("Variant each attached class uses: { className: { base|slot: variantName | [names] } }"),
|
|
61
|
+
visibility: z.boolean().optional().describe("Initial visibility of the element")
|
|
62
|
+
});
|
|
63
|
+
var elementInput = z.lazy(() => z.object({
|
|
64
|
+
ref: z.string().describe("Semantic id you choose, or an existing element ref/id. On a new element this is stored as its idRef and becomes the key everything else addresses it by — its data source is named `<type>_<ref>`, and an interaction targets it by this ref. Start with a letter, then letters, numbers, hyphens and underscores (\"hero-cta\" or \"food_item\"): a dot would break the `<type>_<idRef>.<field>` grammar (an underscore is fine — the first `_` separates the type from the idRef). Must be unique across the space."),
|
|
65
|
+
type: z.string().describe("Type from plitzi://types"),
|
|
66
|
+
label: z.string().optional(),
|
|
67
|
+
subType: z.string().optional(),
|
|
68
|
+
props: z.record(z.string(), z.unknown()).optional().describe("Full replacement on update"),
|
|
69
|
+
style: styleRefs.optional().describe("Definition refs per slot; style the element by attaching a definition"),
|
|
70
|
+
initialState: initialStateInput.optional().describe("Applied style variant(s) and initial visibility (see plitzi://guide styling)"),
|
|
71
|
+
children: z.array(elementInput).optional()
|
|
72
|
+
}));
|
|
73
|
+
var position = z.enum([
|
|
74
|
+
"inside",
|
|
75
|
+
"before",
|
|
76
|
+
"after"
|
|
77
|
+
]).describe("Placement relative to the anchor: \"inside\" nests it as a child (default), \"before\"/\"after\" as a sibling");
|
|
78
|
+
var scalar = z.union([
|
|
79
|
+
z.string(),
|
|
80
|
+
z.number(),
|
|
81
|
+
z.boolean()
|
|
82
|
+
]);
|
|
83
|
+
var bindingCategory = z.enum([
|
|
84
|
+
"attributes",
|
|
85
|
+
"style",
|
|
86
|
+
"initialState"
|
|
87
|
+
]).describe("What the value feeds: a prop (attributes), a style value (style), or an initialState key");
|
|
88
|
+
var bindingTransformer = z.object({
|
|
89
|
+
action: z.string().describe("Transformer action name"),
|
|
90
|
+
params: z.record(z.string(), z.string()),
|
|
91
|
+
enabled: z.boolean().optional().describe("Set false to keep the transformer in the chain but skip it at runtime (defaults to true)")
|
|
92
|
+
});
|
|
93
|
+
var bindingInput = z.object({
|
|
94
|
+
to: z.string().describe("Target field the value feeds (a prop key, style value, or initialState key)"),
|
|
95
|
+
source: z.string().describe("Data source path, e.g. \"apiContainer_x.data\" — see plitzi://data-sources"),
|
|
96
|
+
id: z.string().optional().describe("Stable binding id; generated when omitted"),
|
|
97
|
+
transformers: z.array(bindingTransformer).optional(),
|
|
98
|
+
when: ruleGroup.optional().describe("QueryBuilder RuleGroup gating the binding (validated structurally)"),
|
|
99
|
+
enabled: z.boolean().optional()
|
|
100
|
+
});
|
|
101
|
+
var interactionNodeType = z.enum([
|
|
102
|
+
"trigger",
|
|
103
|
+
"globalCallback",
|
|
104
|
+
"callback",
|
|
105
|
+
"utility"
|
|
106
|
+
]).describe("trigger starts a flow (must be first); the rest run in order after it");
|
|
107
|
+
var interactionNode = z.object({
|
|
108
|
+
id: z.string().optional().describe("Existing node id to preserve; generated when omitted"),
|
|
109
|
+
title: z.string().describe("Human label for the step"),
|
|
110
|
+
nodeType: interactionNodeType,
|
|
111
|
+
action: z.string().describe("Action name, e.g. \"onClick\", \"login\" — see plitzi://interactions"),
|
|
112
|
+
params: z.record(z.string(), z.unknown()).optional(),
|
|
113
|
+
enabled: z.boolean().optional(),
|
|
114
|
+
when: ruleGroup.optional().describe("QueryBuilder RuleGroup gating this step (validated structurally)"),
|
|
115
|
+
elementId: z.string().optional().describe("Element whose callback this step invokes; defaults to this element. Give its ref or its raw id — a raw id is normalised to the element idRef the runtime looks callbacks up by, and a target without an idRef is given one automatically."),
|
|
116
|
+
preview: z.record(z.string(), z.unknown()).optional()
|
|
117
|
+
});
|
|
118
|
+
//#endregion
|
|
119
|
+
export { bindingCategory, bindingInput, elementInput, initialStateInput, interactionNode, interactionNodeType, position, ruleGroup, scalar, styleRefs, styleVariantInput };
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { computeVersion } from "../../../helpers/computeVersion.js";
|
|
2
|
+
import { descendantCount, descendantIds, elementById, elementRefOf, getPageElements, isPageElement, nameOf, orderedChildren, pageFoldersOf, pageRefOf, pageRefOfElement, slugRouteParams, spaceIndex, strOr } from "../../../helpers/space.js";
|
|
3
|
+
import { bindingsToAI, flowsFromInteractions } from "../../../helpers/interactions.js";
|
|
4
|
+
import { definitionToAI, globalStylesForType, idStyleToAI } from "../style/translator.js";
|
|
5
|
+
//#region src/modules/mcp/tools/operations/schema/translator.ts
|
|
6
|
+
var splitClasses = (value) => value ? value.split(/\s+/).filter(Boolean) : [];
|
|
7
|
+
var propsOf = (el) => {
|
|
8
|
+
const { subType, ...rest } = el.attributes;
|
|
9
|
+
return Object.keys(rest).length > 0 ? rest : void 0;
|
|
10
|
+
};
|
|
11
|
+
var slotClasses = (selectors) => {
|
|
12
|
+
const slots = {};
|
|
13
|
+
for (const [slot, classes] of Object.entries(selectors)) if (slot !== "base") slots[slot] = splitClasses(classes);
|
|
14
|
+
return slots;
|
|
15
|
+
};
|
|
16
|
+
var pageSummariesToAI = (schema) => getPageElements(schema).map((page) => ({
|
|
17
|
+
ref: pageRefOf(page),
|
|
18
|
+
label: nameOf(page),
|
|
19
|
+
slug: strOr(page.attributes.slug) ?? "",
|
|
20
|
+
default: page.attributes.default === true,
|
|
21
|
+
enabled: page.attributes.enabled !== false,
|
|
22
|
+
folder: strOr(page.attributes.folder) || void 0,
|
|
23
|
+
elementCount: descendantCount(schema, page.id)
|
|
24
|
+
}));
|
|
25
|
+
var folderToAI = (folder) => ({
|
|
26
|
+
ref: folder.id,
|
|
27
|
+
name: folder.name,
|
|
28
|
+
slug: folder.slug,
|
|
29
|
+
parentId: folder.parentId
|
|
30
|
+
});
|
|
31
|
+
var foldersToAI = (schema) => pageFoldersOf(schema).map(folderToAI);
|
|
32
|
+
var folderRefToAI = (schema, ref) => {
|
|
33
|
+
const folder = pageFoldersOf(schema).find((f) => f.id === ref);
|
|
34
|
+
return folder ? folderToAI(folder) : void 0;
|
|
35
|
+
};
|
|
36
|
+
var elementView = (schema, el, style) => {
|
|
37
|
+
const cache = spaceIndex(schema).detailCache;
|
|
38
|
+
const cached = cache.get(el.id);
|
|
39
|
+
if (cached && cached.style === style) return cached;
|
|
40
|
+
const detail = elementDetailToAI(schema, el, style);
|
|
41
|
+
const view = {
|
|
42
|
+
style,
|
|
43
|
+
detail,
|
|
44
|
+
version: computeVersion(detail)
|
|
45
|
+
};
|
|
46
|
+
cache.set(el.id, view);
|
|
47
|
+
return view;
|
|
48
|
+
};
|
|
49
|
+
var skeletonNode = (schema, el, style) => {
|
|
50
|
+
const children = orderedChildren(schema, el);
|
|
51
|
+
const base = splitClasses(el.definition.styleSelectors.base);
|
|
52
|
+
const slots = slotClasses(el.definition.styleSelectors);
|
|
53
|
+
return {
|
|
54
|
+
ref: elementRefOf(el),
|
|
55
|
+
type: el.definition.type,
|
|
56
|
+
label: el.definition.label,
|
|
57
|
+
subType: strOr(el.attributes.subType),
|
|
58
|
+
stateVersion: style ? elementView(schema, el, style).version : void 0,
|
|
59
|
+
base: base.length > 0 ? base : void 0,
|
|
60
|
+
slots: Object.keys(slots).length > 0 ? slots : void 0,
|
|
61
|
+
childCount: children.length,
|
|
62
|
+
children: children.length > 0 ? children.map((child) => skeletonNode(schema, child, style)) : void 0
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
var pageSkeletonToAI = (schema, pageEl, style) => {
|
|
66
|
+
const slug = strOr(pageEl.attributes.slug) ?? "";
|
|
67
|
+
return {
|
|
68
|
+
ref: pageRefOf(pageEl),
|
|
69
|
+
label: nameOf(pageEl),
|
|
70
|
+
slug,
|
|
71
|
+
default: pageEl.attributes.default === true,
|
|
72
|
+
enabled: pageEl.attributes.enabled !== false,
|
|
73
|
+
routeParams: slugRouteParams(slug),
|
|
74
|
+
tree: orderedChildren(schema, pageEl).map((child) => skeletonNode(schema, child, style))
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
var elementClassRefs = (el) => {
|
|
78
|
+
const refs = splitClasses(el.definition.styleSelectors.base);
|
|
79
|
+
for (const classes of Object.values(slotClasses(el.definition.styleSelectors))) refs.push(...classes);
|
|
80
|
+
return refs;
|
|
81
|
+
};
|
|
82
|
+
var pageStylesToAI = (schema, style, pageEl) => {
|
|
83
|
+
const classRefs = /* @__PURE__ */ new Set();
|
|
84
|
+
const types = /* @__PURE__ */ new Set();
|
|
85
|
+
const collect = (el) => {
|
|
86
|
+
for (const ref of elementClassRefs(el)) classRefs.add(ref);
|
|
87
|
+
types.add(el.definition.type);
|
|
88
|
+
};
|
|
89
|
+
collect(pageEl);
|
|
90
|
+
for (const id of descendantIds(schema, pageEl.id)) {
|
|
91
|
+
const el = elementById(schema, id);
|
|
92
|
+
if (el) collect(el);
|
|
93
|
+
}
|
|
94
|
+
const definitions = [];
|
|
95
|
+
for (const ref of Array.from(classRefs).sort()) {
|
|
96
|
+
const def = definitionToAI(style, ref);
|
|
97
|
+
if (def) definitions.push(def);
|
|
98
|
+
}
|
|
99
|
+
const globalStyles = [];
|
|
100
|
+
const seenGlobals = /* @__PURE__ */ new Set();
|
|
101
|
+
for (const type of Array.from(types).sort()) for (const global of globalStylesForType(style, type)) if (!seenGlobals.has(global.ref)) {
|
|
102
|
+
seenGlobals.add(global.ref);
|
|
103
|
+
globalStyles.push(global);
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
ref: pageRefOf(pageEl),
|
|
107
|
+
definitions,
|
|
108
|
+
globalStyles
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
var resolveDefinitions = (style, base, slots) => {
|
|
112
|
+
const refs = new Set(base);
|
|
113
|
+
for (const classes of Object.values(slots)) for (const cls of classes) refs.add(cls);
|
|
114
|
+
const resolved = {};
|
|
115
|
+
for (const ref of refs) {
|
|
116
|
+
const def = definitionToAI(style, ref);
|
|
117
|
+
if (def) resolved[ref] = def;
|
|
118
|
+
}
|
|
119
|
+
return Object.keys(resolved).length > 0 ? resolved : void 0;
|
|
120
|
+
};
|
|
121
|
+
var variantNamesOf = (def) => {
|
|
122
|
+
const names = new Set(Object.keys(def.variants ?? {}));
|
|
123
|
+
for (const slot of Object.values(def.slots ?? {})) for (const name of Object.keys(slot.variants ?? {})) names.add(name);
|
|
124
|
+
return [...names].sort();
|
|
125
|
+
};
|
|
126
|
+
var availableVariantsFrom = (resolvedStyle) => {
|
|
127
|
+
if (!resolvedStyle) return;
|
|
128
|
+
const result = {};
|
|
129
|
+
for (const [ref, def] of Object.entries(resolvedStyle)) {
|
|
130
|
+
const names = variantNamesOf(def);
|
|
131
|
+
if (names.length > 0) result[ref] = names;
|
|
132
|
+
}
|
|
133
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
134
|
+
};
|
|
135
|
+
var initialStateToAI = (el) => {
|
|
136
|
+
const initialState = el.definition.initialState;
|
|
137
|
+
if (!initialState) return;
|
|
138
|
+
const result = {};
|
|
139
|
+
if (initialState.styleVariant) {
|
|
140
|
+
const styleVariant = {};
|
|
141
|
+
for (const [cls, selectors] of Object.entries(initialState.styleVariant)) {
|
|
142
|
+
if (!selectors) continue;
|
|
143
|
+
const bySelector = {};
|
|
144
|
+
for (const [selector, variant] of Object.entries(selectors)) if (variant !== void 0) bySelector[selector] = variant;
|
|
145
|
+
if (Object.keys(bySelector).length > 0) styleVariant[cls] = bySelector;
|
|
146
|
+
}
|
|
147
|
+
if (Object.keys(styleVariant).length > 0) result.styleVariant = styleVariant;
|
|
148
|
+
}
|
|
149
|
+
if (typeof initialState.visibility === "boolean") result.visibility = initialState.visibility;
|
|
150
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
151
|
+
};
|
|
152
|
+
var elementDetailToAI = (schema, el, style) => {
|
|
153
|
+
const children = orderedChildren(schema, el);
|
|
154
|
+
const parent = el.definition.parentId ? schema.flat[el.definition.parentId] : void 0;
|
|
155
|
+
const base = splitClasses(el.definition.styleSelectors.base);
|
|
156
|
+
const slots = slotClasses(el.definition.styleSelectors);
|
|
157
|
+
const detail = {
|
|
158
|
+
ref: elementRefOf(el),
|
|
159
|
+
type: el.definition.type,
|
|
160
|
+
subType: strOr(el.attributes.subType),
|
|
161
|
+
label: el.definition.label,
|
|
162
|
+
pageRef: pageRefOfElement(schema, el),
|
|
163
|
+
parentRef: parent ? isPageElement(schema, parent) ? pageRefOf(parent) : elementRefOf(parent) : void 0,
|
|
164
|
+
props: propsOf(el),
|
|
165
|
+
style: {
|
|
166
|
+
base,
|
|
167
|
+
slots
|
|
168
|
+
},
|
|
169
|
+
childRefs: children.length > 0 ? children.map(elementRefOf) : void 0
|
|
170
|
+
};
|
|
171
|
+
const initialState = initialStateToAI(el);
|
|
172
|
+
if (initialState) detail.initialState = initialState;
|
|
173
|
+
const bindings = bindingsToAI(el.definition.bindings);
|
|
174
|
+
if (bindings) detail.bindings = bindings;
|
|
175
|
+
const interactions = flowsFromInteractions(el.definition.interactions);
|
|
176
|
+
if (interactions.length > 0) detail.interactions = interactions;
|
|
177
|
+
if (style) {
|
|
178
|
+
const resolvedStyle = resolveDefinitions(style, base, slots);
|
|
179
|
+
if (resolvedStyle) {
|
|
180
|
+
detail.resolvedStyle = resolvedStyle;
|
|
181
|
+
const availableVariants = availableVariantsFrom(resolvedStyle);
|
|
182
|
+
if (availableVariants) detail.availableVariants = availableVariants;
|
|
183
|
+
}
|
|
184
|
+
const globalStyles = globalStylesForType(style, el.definition.type);
|
|
185
|
+
if (globalStyles.length > 0) detail.globalStyles = globalStyles;
|
|
186
|
+
const domId = strOr(el.attributes.id);
|
|
187
|
+
if (domId) {
|
|
188
|
+
const idStyle = idStyleToAI(style, domId);
|
|
189
|
+
if (idStyle) detail.idStyle = idStyle;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return detail;
|
|
193
|
+
};
|
|
194
|
+
var schemaVariablesToAI = (schema, includeSubValues = true) => {
|
|
195
|
+
const data = {};
|
|
196
|
+
for (const variable of schema.variables) data[variable.name] = {
|
|
197
|
+
name: variable.name,
|
|
198
|
+
reference: `{{${variable.name}}}`,
|
|
199
|
+
category: variable.category,
|
|
200
|
+
type: variable.type,
|
|
201
|
+
value: variable.value,
|
|
202
|
+
subValues: includeSubValues ? variable.subValues.map((sv) => ({
|
|
203
|
+
when: sv.when,
|
|
204
|
+
value: sv.value
|
|
205
|
+
})) : void 0
|
|
206
|
+
};
|
|
207
|
+
return data;
|
|
208
|
+
};
|
|
209
|
+
var settingsToAI = (schema) => {
|
|
210
|
+
const result = {};
|
|
211
|
+
for (const [key, value] of Object.entries(schema.settings)) result[key] = value;
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
//#endregion
|
|
215
|
+
export { elementDetailToAI, elementView, folderRefToAI, foldersToAI, pageSkeletonToAI, pageStylesToAI, pageSummariesToAI, schemaVariablesToAI, settingsToAI };
|