@specverse/engine-realize 3.5.3
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/assets/examples/09-api/ai-spec.yaml +194 -0
- package/assets/examples/09-api/converted.yaml +95 -0
- package/assets/examples/09-api/diagram-architecture.mmd +10 -0
- package/assets/examples/09-api/diagram-er.mmd +10 -0
- package/assets/examples/09-api/documentation.html +104 -0
- package/assets/examples/09-api/documentation.md +95 -0
- package/assets/examples/09-api/inferred-spec.yaml +420 -0
- package/assets/examples/09-api/openapi.json +61 -0
- package/assets/examples/10-api/README.md +216 -0
- package/assets/examples/10-api/ai-spec.yaml +194 -0
- package/assets/examples/10-api/converted.yaml +96 -0
- package/assets/examples/10-api/diagram-architecture.mmd +10 -0
- package/assets/examples/10-api/diagram-er.mmd +10 -0
- package/assets/examples/10-api/documentation.html +104 -0
- package/assets/examples/10-api/documentation.md +95 -0
- package/assets/examples/10-api/inferred-spec.yaml +7 -0
- package/assets/examples/10-api/metadata.yaml +89 -0
- package/assets/examples/10-api/openapi.json +61 -0
- package/assets/examples/10-api/package-integration-test.js +177 -0
- package/assets/examples/10-api/usage-example.js +323 -0
- package/assets/examples/10-api/usage-example.ts +363 -0
- package/assets/examples/10-api/workflow-test.js +113 -0
- package/assets/examples/manifests/01-simple-default-mappings.yaml +36 -0
- package/assets/examples/manifests/02-capability-mappings.yaml +55 -0
- package/assets/examples/manifests/03-hybrid-mappings.yaml +109 -0
- package/assets/examples/manifests/README.md +245 -0
- package/assets/examples/manifests/backend-only.yaml +43 -0
- package/assets/examples/manifests/blog-api.md +78 -0
- package/assets/examples/manifests/blog-api.specly +79 -0
- package/assets/examples/manifests/frontend-only.yaml +27 -0
- package/assets/examples/manifests/fullstack-app.yaml +44 -0
- package/assets/examples/manifests/fullstack-monorepo.yaml +62 -0
- package/assets/examples/validate-examples-with-expected-failures.cjs +328 -0
- package/assets/examples/validate-examples.cjs +225 -0
- package/assets/examples-decomposed/cloud-native-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/cloud-native-manifest.md +379 -0
- package/assets/examples-decomposed/cloud-native-manifest.specly +60 -0
- package/assets/examples-decomposed/docker-compose-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/docker-compose-manifest.md +326 -0
- package/assets/examples-decomposed/docker-compose-manifest.specly +40 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.md +237 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.specly +41 -0
- package/assets/templates/README.md +559 -0
- package/assets/templates/TEMPLATE-ENHANCEMENTS-V33.md +462 -0
- package/assets/templates/backend-only/CLAUDE.md +73 -0
- package/assets/templates/backend-only/README.md +197 -0
- package/assets/templates/backend-only/deployments/README.md +149 -0
- package/assets/templates/backend-only/deployments/development.specly +53 -0
- package/assets/templates/backend-only/deployments/production.specly +87 -0
- package/assets/templates/backend-only/docs/README.md +50 -0
- package/assets/templates/backend-only/docs/api/README.md +7 -0
- package/assets/templates/backend-only/docs/diagrams/README.md +85 -0
- package/assets/templates/backend-only/docs/example-documentation-template.md +269 -0
- package/assets/templates/backend-only/docs/guides/README.md +15 -0
- package/assets/templates/backend-only/dot.env.example +18 -0
- package/assets/templates/backend-only/generated/README.md +56 -0
- package/assets/templates/backend-only/generated/code/integration-test.template.js +320 -0
- package/assets/templates/backend-only/generated/code/package.json.template +34 -0
- package/assets/templates/backend-only/generated/docs/README.md +49 -0
- package/assets/templates/backend-only/gitignore +54 -0
- package/assets/templates/backend-only/manifests/README.md +72 -0
- package/assets/templates/backend-only/manifests/docker-compose.specly +91 -0
- package/assets/templates/backend-only/manifests/implementation.yaml +100 -0
- package/assets/templates/backend-only/manifests/kubernetes.specly +140 -0
- package/assets/templates/backend-only/package.json +59 -0
- package/assets/templates/backend-only/scripts/test-all.sh +160 -0
- package/assets/templates/backend-only/scripts/test-generated-code.sh +165 -0
- package/assets/templates/backend-only/specs/main.specly +67 -0
- package/assets/templates/default/CLAUDE.md +141 -0
- package/assets/templates/default/README.md +404 -0
- package/assets/templates/default/deployments/README.md +149 -0
- package/assets/templates/default/deployments/development.specly +53 -0
- package/assets/templates/default/deployments/production.specly +87 -0
- package/assets/templates/default/docs/README.md +50 -0
- package/assets/templates/default/docs/api/README.md +7 -0
- package/assets/templates/default/docs/diagrams/README.md +85 -0
- package/assets/templates/default/docs/example-documentation-template.md +269 -0
- package/assets/templates/default/docs/guides/README.md +15 -0
- package/assets/templates/default/dot.env.example +18 -0
- package/assets/templates/default/generated/README.md +56 -0
- package/assets/templates/default/generated/code/integration-test.template.js +320 -0
- package/assets/templates/default/generated/code/package.json.template +34 -0
- package/assets/templates/default/generated/docs/README.md +49 -0
- package/assets/templates/default/gitignore +54 -0
- package/assets/templates/default/manifests/README.md +72 -0
- package/assets/templates/default/manifests/docker-compose.specly +91 -0
- package/assets/templates/default/manifests/implementation.yaml +176 -0
- package/assets/templates/default/manifests/kubernetes.specly +140 -0
- package/assets/templates/default/package.json +61 -0
- package/assets/templates/default/scripts/test-all.sh +160 -0
- package/assets/templates/default/scripts/test-generated-code.sh +165 -0
- package/assets/templates/default/specs/main.specly +67 -0
- package/assets/templates/frontend-only/CLAUDE.md +75 -0
- package/assets/templates/frontend-only/README.md +231 -0
- package/assets/templates/frontend-only/deployments/README.md +149 -0
- package/assets/templates/frontend-only/deployments/development.specly +53 -0
- package/assets/templates/frontend-only/deployments/production.specly +87 -0
- package/assets/templates/frontend-only/docs/README.md +50 -0
- package/assets/templates/frontend-only/docs/api/README.md +7 -0
- package/assets/templates/frontend-only/docs/diagrams/README.md +85 -0
- package/assets/templates/frontend-only/docs/example-documentation-template.md +269 -0
- package/assets/templates/frontend-only/docs/guides/README.md +15 -0
- package/assets/templates/frontend-only/dot.env.example +18 -0
- package/assets/templates/frontend-only/generated/README.md +56 -0
- package/assets/templates/frontend-only/generated/code/integration-test.template.js +320 -0
- package/assets/templates/frontend-only/generated/code/package.json.template +34 -0
- package/assets/templates/frontend-only/generated/docs/README.md +49 -0
- package/assets/templates/frontend-only/gitignore +54 -0
- package/assets/templates/frontend-only/manifests/README.md +72 -0
- package/assets/templates/frontend-only/manifests/docker-compose.specly +91 -0
- package/assets/templates/frontend-only/manifests/implementation.yaml +58 -0
- package/assets/templates/frontend-only/manifests/kubernetes.specly +140 -0
- package/assets/templates/frontend-only/package.json +59 -0
- package/assets/templates/frontend-only/scripts/test-all.sh +160 -0
- package/assets/templates/frontend-only/scripts/test-generated-code.sh +165 -0
- package/assets/templates/frontend-only/specs/main.specly +57 -0
- package/assets/templates/full-stack/AI-GUIDE.md +60 -0
- package/assets/templates/full-stack/CLAUDE.md +141 -0
- package/assets/templates/full-stack/README.md +382 -0
- package/assets/templates/full-stack/archive/AI-GUIDE-legacy.md +392 -0
- package/assets/templates/full-stack/deployments/README.md +149 -0
- package/assets/templates/full-stack/deployments/development.specly +53 -0
- package/assets/templates/full-stack/deployments/production.specly +87 -0
- package/assets/templates/full-stack/docs/README.md +51 -0
- package/assets/templates/full-stack/docs/api/README.md +7 -0
- package/assets/templates/full-stack/docs/diagrams/README.md +85 -0
- package/assets/templates/full-stack/docs/example-documentation-template.md +269 -0
- package/assets/templates/full-stack/docs/guides/README.md +15 -0
- package/assets/templates/full-stack/generated/README.md +56 -0
- package/assets/templates/full-stack/generated/code/integration-test.template.js +320 -0
- package/assets/templates/full-stack/generated/code/package.json.template +34 -0
- package/assets/templates/full-stack/generated/docs/README.md +49 -0
- package/assets/templates/full-stack/gitignore +54 -0
- package/assets/templates/full-stack/manifests/README.md +72 -0
- package/assets/templates/full-stack/manifests/docker-compose.specly +91 -0
- package/assets/templates/full-stack/manifests/implementation.yaml +155 -0
- package/assets/templates/full-stack/manifests/kubernetes.specly +140 -0
- package/assets/templates/full-stack/package.json +45 -0
- package/assets/templates/full-stack/scripts/test-all.sh +160 -0
- package/assets/templates/full-stack/scripts/test-generated-code.sh +165 -0
- package/assets/templates/full-stack/specs/example-v33.specly +297 -0
- package/assets/templates/full-stack/specs/main-simple.specly +73 -0
- package/assets/templates/full-stack/specs/main.specly +408 -0
- package/dist/engines/code-generator.d.ts +86 -0
- package/dist/engines/code-generator.d.ts.map +1 -0
- package/dist/engines/code-generator.js +159 -0
- package/dist/engines/code-generator.js.map +1 -0
- package/dist/engines/engine-registry.d.ts +94 -0
- package/dist/engines/engine-registry.d.ts.map +1 -0
- package/dist/engines/engine-registry.js +163 -0
- package/dist/engines/engine-registry.js.map +1 -0
- package/dist/engines/index.d.ts +10 -0
- package/dist/engines/index.d.ts.map +1 -0
- package/dist/engines/index.js +12 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/typescript-engine.d.ts +74 -0
- package/dist/engines/typescript-engine.d.ts.map +1 -0
- package/dist/engines/typescript-engine.js +288 -0
- package/dist/engines/typescript-engine.js.map +1 -0
- package/dist/generators/index.d.ts +11 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +11 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +434 -0
- package/dist/index.js.map +1 -0
- package/dist/library/index.d.ts +12 -0
- package/dist/library/index.d.ts.map +1 -0
- package/dist/library/index.js +15 -0
- package/dist/library/index.js.map +1 -0
- package/dist/library/library.d.ts +132 -0
- package/dist/library/library.d.ts.map +1 -0
- package/dist/library/library.js +343 -0
- package/dist/library/library.js.map +1 -0
- package/dist/library/loader.d.ts +73 -0
- package/dist/library/loader.d.ts.map +1 -0
- package/dist/library/loader.js +150 -0
- package/dist/library/loader.js.map +1 -0
- package/dist/library/resolver.d.ts +104 -0
- package/dist/library/resolver.d.ts.map +1 -0
- package/dist/library/resolver.js +299 -0
- package/dist/library/resolver.js.map +1 -0
- package/dist/library/validator.d.ts +65 -0
- package/dist/library/validator.d.ts.map +1 -0
- package/dist/library/validator.js +203 -0
- package/dist/library/validator.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instance-factory.d.ts +289 -0
- package/dist/types/instance-factory.d.ts.map +1 -0
- package/dist/types/instance-factory.js +8 -0
- package/dist/types/instance-factory.js.map +1 -0
- package/dist/types/unified-mappings.d.ts +163 -0
- package/dist/types/unified-mappings.d.ts.map +1 -0
- package/dist/types/unified-mappings.js +110 -0
- package/dist/types/unified-mappings.js.map +1 -0
- package/dist/utils/ai-spec-loader.d.ts +77 -0
- package/dist/utils/ai-spec-loader.d.ts.map +1 -0
- package/dist/utils/ai-spec-loader.js +138 -0
- package/dist/utils/ai-spec-loader.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/manifest-loader.d.ts +107 -0
- package/dist/utils/manifest-loader.d.ts.map +1 -0
- package/dist/utils/manifest-loader.js +168 -0
- package/dist/utils/manifest-loader.js.map +1 -0
- package/dist/utils/mapping-migration.d.ts +53 -0
- package/dist/utils/mapping-migration.d.ts.map +1 -0
- package/dist/utils/mapping-migration.js +194 -0
- package/dist/utils/mapping-migration.js.map +1 -0
- package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
- package/libs/instance-factories/README.md +433 -0
- package/libs/instance-factories/applications/generic-app.yaml +52 -0
- package/libs/instance-factories/applications/react-app.yaml +186 -0
- package/libs/instance-factories/applications/templates/generic/backend-env-generator.ts +31 -0
- package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +80 -0
- package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +69 -0
- package/libs/instance-factories/applications/templates/generic/main-generator.ts +308 -0
- package/libs/instance-factories/applications/templates/react/_view-components-source.ts +555 -0
- package/libs/instance-factories/applications/templates/react/api-client-generator.ts +436 -0
- package/libs/instance-factories/applications/templates/react/api-types-generator.ts +153 -0
- package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +94 -0
- package/libs/instance-factories/applications/templates/react/env-example-generator.ts +24 -0
- package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +106 -0
- package/libs/instance-factories/applications/templates/react/gitignore-generator.ts +38 -0
- package/libs/instance-factories/applications/templates/react/index-css-generator.ts +85 -0
- package/libs/instance-factories/applications/templates/react/index-html-generator.ts +30 -0
- package/libs/instance-factories/applications/templates/react/main-tsx-generator.ts +34 -0
- package/libs/instance-factories/applications/templates/react/package-json-generator.ts +54 -0
- package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +179 -0
- package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +1347 -0
- package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +704 -0
- package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +84 -0
- package/libs/instance-factories/applications/templates/react/tsconfig-generator.ts +35 -0
- package/libs/instance-factories/applications/templates/react/use-api-hooks-generator.ts +121 -0
- package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/view-form-generator.ts +362 -0
- package/libs/instance-factories/applications/templates/react/view-list-generator.ts +98 -0
- package/libs/instance-factories/applications/templates/react/view-router-generator.ts +89 -0
- package/libs/instance-factories/applications/templates/react/vite-config-generator.ts +49 -0
- package/libs/instance-factories/archived/fastify-prisma.yaml +104 -0
- package/libs/instance-factories/cli/commander-js.yaml +55 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts +12 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts.map +1 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +115 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js.map +1 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +145 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.d.ts +14 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.d.ts.map +1 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.js +182 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.js.map +1 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +992 -0
- package/libs/instance-factories/communication/event-emitter.yaml +56 -0
- package/libs/instance-factories/communication/rabbitmq-events.yaml +87 -0
- package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +93 -0
- package/libs/instance-factories/communication/templates/eventemitter/publisher-generator.ts +117 -0
- package/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.ts +101 -0
- package/libs/instance-factories/controllers/fastify.yaml +127 -0
- package/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.ts +103 -0
- package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +389 -0
- package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +76 -0
- package/libs/instance-factories/infrastructure/docker-k8s.yaml +61 -0
- package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
- package/libs/instance-factories/orms/prisma.yaml +89 -0
- package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +563 -0
- package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -0
- package/libs/instance-factories/scaffolding/generic-scaffold.yaml +65 -0
- package/libs/instance-factories/scaffolding/templates/generic/env-example-generator.ts +73 -0
- package/libs/instance-factories/scaffolding/templates/generic/env-generator.ts +85 -0
- package/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.ts +69 -0
- package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +176 -0
- package/libs/instance-factories/scaffolding/templates/generic/readme-generator.ts +207 -0
- package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +78 -0
- package/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.ts +41 -0
- package/libs/instance-factories/sdks/python-sdk.yaml +66 -0
- package/libs/instance-factories/sdks/templates/python/sdk-generator.ts +50 -0
- package/libs/instance-factories/sdks/templates/typescript/sdk-generator.ts +49 -0
- package/libs/instance-factories/sdks/typescript-sdk.yaml +59 -0
- package/libs/instance-factories/services/prisma-services.yaml +71 -0
- package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +303 -0
- package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
- package/libs/instance-factories/services/templates/prisma/service-generator.ts +315 -0
- package/libs/instance-factories/shared/path-resolver.ts +111 -0
- package/libs/instance-factories/storage/mongodb.yaml +79 -0
- package/libs/instance-factories/storage/postgresql.yaml +75 -0
- package/libs/instance-factories/storage/redis.yaml +79 -0
- package/libs/instance-factories/storage/templates/mongodb/config-generator.ts +15 -0
- package/libs/instance-factories/storage/templates/mongodb/docker-generator.ts +18 -0
- package/libs/instance-factories/storage/templates/postgresql/config-generator.ts +54 -0
- package/libs/instance-factories/storage/templates/postgresql/docker-generator.ts +55 -0
- package/libs/instance-factories/storage/templates/redis/config-generator.ts +16 -0
- package/libs/instance-factories/storage/templates/redis/docker-generator.ts +18 -0
- package/libs/instance-factories/test-generation.ts +192 -0
- package/libs/instance-factories/testing/templates/vitest/tests-generator.ts +51 -0
- package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
- package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +136 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +630 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +330 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +552 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +164 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +247 -0
- package/libs/instance-factories/tools/templates/mcp/static/package.json +92 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +284 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +139 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +74 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +156 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +41 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +259 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +231 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +196 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +293 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +90 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +24 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +15 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +106 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +75 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +239 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +1501 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +211 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +308 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +210 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +356 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +524 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +530 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +594 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +170 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +544 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +189 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +89 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +110 -0
- package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +28 -0
- package/libs/instance-factories/tools/templates/vscode/static/extension.ts +1195 -0
- package/libs/instance-factories/tools/templates/vscode/static/language-configuration.json +34 -0
- package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +4279 -0
- package/libs/instance-factories/tools/templates/vscode/static/syntaxes/specverse.tmLanguage.json +138 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/README.md +74 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/complete-specverse-colors.json +122 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-basic-theme.json +65 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-complete-theme.json +123 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-theme-colors.json +64 -0
- package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +214 -0
- package/libs/instance-factories/validation/templates/zod/validation-generator.ts +46 -0
- package/libs/instance-factories/validation/zod.yaml +56 -0
- package/libs/instance-factories/views/index.d.ts +13 -0
- package/libs/instance-factories/views/index.d.ts.map +1 -0
- package/libs/instance-factories/views/index.js +18 -0
- package/libs/instance-factories/views/index.js.map +1 -0
- package/libs/instance-factories/views/index.ts +45 -0
- package/libs/instance-factories/views/react-components.yaml +129 -0
- package/libs/instance-factories/views/templates/ARCHITECTURE.md +198 -0
- package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +869 -0
- package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +953 -0
- package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +806 -0
- package/libs/instance-factories/views/templates/react/app-generator.ts +55 -0
- package/libs/instance-factories/views/templates/react/components-generator.ts +391 -0
- package/libs/instance-factories/views/templates/react/forms-generator.ts +343 -0
- package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +54 -0
- package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
- package/libs/instance-factories/views/templates/react/index-css-generator.ts +209 -0
- package/libs/instance-factories/views/templates/react/index-html-generator.ts +34 -0
- package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +29 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +152 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.js +398 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.js.map +1 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.ts +533 -0
- package/libs/instance-factories/views/templates/react/router-generator.ts +197 -0
- package/libs/instance-factories/views/templates/react/router-generic-generator.ts +103 -0
- package/libs/instance-factories/views/templates/react/spec-json-generator.ts +17 -0
- package/libs/instance-factories/views/templates/react/types-generator.ts +76 -0
- package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +42 -0
- package/libs/instance-factories/views/templates/react/vite-config-generator.ts +38 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +1 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +474 -0
- package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +242 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +77 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.js +47 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.ts +142 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +63 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +822 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +908 -0
- package/libs/instance-factories/views/templates/shared/base-generator.d.ts +247 -0
- package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/base-generator.js +363 -0
- package/libs/instance-factories/views/templates/shared/base-generator.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/base-generator.ts +608 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +254 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.js +602 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.ts +803 -0
- package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +250 -0
- package/libs/instance-factories/views/templates/shared/composite-patterns.ts +535 -0
- package/libs/instance-factories/views/templates/shared/index.ts +68 -0
- package/libs/instance-factories/views/templates/shared/pattern-validator.ts +279 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +149 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.js +580 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.ts +700 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +143 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.js +420 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +539 -0
- package/package.json +42 -0
- package/schema/SPECVERSE-SCHEMA.json +4274 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# {{projectName}} - Backend API
|
|
2
|
+
|
|
3
|
+
A standalone REST API service built with SpecVerse. Perfect for microservices, API-first development, and backend services.
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1. Generate all code
|
|
9
|
+
npm run realize:all
|
|
10
|
+
|
|
11
|
+
# 2. Install dependencies
|
|
12
|
+
cd generated/code && npm install
|
|
13
|
+
|
|
14
|
+
# 3. Setup database
|
|
15
|
+
npm run db:generate
|
|
16
|
+
npm run db:push
|
|
17
|
+
|
|
18
|
+
# 4. Start development server
|
|
19
|
+
npm run dev
|
|
20
|
+
|
|
21
|
+
# 5. Test the API
|
|
22
|
+
curl http://localhost:3000/api/products
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 📁 Project Structure
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
{{projectName}}/
|
|
29
|
+
├── specs/
|
|
30
|
+
│ └── main.specly # Your API specification
|
|
31
|
+
├── manifests/
|
|
32
|
+
│ └── implementation.yaml # Backend-only manifest
|
|
33
|
+
├── generated/
|
|
34
|
+
│ └── code/ # Generated backend code
|
|
35
|
+
│ ├── src/
|
|
36
|
+
│ │ ├── main.ts # Application entry point
|
|
37
|
+
│ │ ├── controllers/ # Business logic
|
|
38
|
+
│ │ └── routes/ # API routes
|
|
39
|
+
│ ├── prisma/
|
|
40
|
+
│ │ └── schema.prisma # Database schema
|
|
41
|
+
│ ├── package.json # Dependencies
|
|
42
|
+
│ └── tsconfig.json # TypeScript config
|
|
43
|
+
└── package.json # Workflow scripts
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 🛠️ Development Workflow
|
|
47
|
+
|
|
48
|
+
### 1. Modify Your API
|
|
49
|
+
|
|
50
|
+
Edit `specs/main.specly` to define your models and controllers:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
models:
|
|
54
|
+
Product:
|
|
55
|
+
attributes:
|
|
56
|
+
name: String required
|
|
57
|
+
price: Decimal required
|
|
58
|
+
|
|
59
|
+
controllers:
|
|
60
|
+
ProductController:
|
|
61
|
+
model: Product
|
|
62
|
+
cured:
|
|
63
|
+
create: {}
|
|
64
|
+
retrieve: {}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Regenerate Code
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run realize:all
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. Update Database
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cd generated/code
|
|
77
|
+
npm run db:generate # Generate Prisma client
|
|
78
|
+
npm run db:push # Push schema to database
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 4. Run Development Server
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm run dev
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The API will be available at `http://localhost:3000`
|
|
88
|
+
|
|
89
|
+
## 📡 API Endpoints
|
|
90
|
+
|
|
91
|
+
Based on the default Product model:
|
|
92
|
+
|
|
93
|
+
- `POST /api/products` - Create a product
|
|
94
|
+
- `GET /api/products` - List all products
|
|
95
|
+
- `GET /api/products/:id` - Get a product by ID
|
|
96
|
+
- `PUT /api/products/:id` - Update a product
|
|
97
|
+
- `DELETE /api/products/:id` - Delete a product
|
|
98
|
+
|
|
99
|
+
## 🔧 Configuration
|
|
100
|
+
|
|
101
|
+
### Environment Variables
|
|
102
|
+
|
|
103
|
+
Create a `.env` file in `generated/code/`:
|
|
104
|
+
|
|
105
|
+
```env
|
|
106
|
+
DATABASE_URL="postgresql://localhost:5432/{{projectNameKebab}}_dev"
|
|
107
|
+
PORT=3000
|
|
108
|
+
CORS_ORIGINS="http://localhost:5173,http://localhost:3000"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### CORS Setup
|
|
112
|
+
|
|
113
|
+
The backend is configured to accept requests from frontend applications. Update `CORS_ORIGINS` in your `.env` file to match your frontend URL.
|
|
114
|
+
|
|
115
|
+
## 🧪 Testing
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Run tests
|
|
119
|
+
cd generated/code && npm test
|
|
120
|
+
|
|
121
|
+
# Type checking
|
|
122
|
+
npm run typecheck
|
|
123
|
+
|
|
124
|
+
# Linting
|
|
125
|
+
npm run lint
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 📦 Deployment
|
|
129
|
+
|
|
130
|
+
### Standalone Deployment
|
|
131
|
+
|
|
132
|
+
The generated backend is a standalone Node.js application that can be deployed to:
|
|
133
|
+
|
|
134
|
+
- **Docker**: Add a Dockerfile to containerize
|
|
135
|
+
- **Cloud Platforms**: Deploy to AWS, GCP, Azure, Railway, Render, etc.
|
|
136
|
+
- **Kubernetes**: Use the generated code as a microservice
|
|
137
|
+
|
|
138
|
+
### Environment Setup
|
|
139
|
+
|
|
140
|
+
Set these environment variables in production:
|
|
141
|
+
|
|
142
|
+
```env
|
|
143
|
+
DATABASE_URL="your-production-database-url"
|
|
144
|
+
PORT=8080
|
|
145
|
+
CORS_ORIGINS="https://your-frontend-domain.com"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## 📚 Documentation
|
|
149
|
+
|
|
150
|
+
### Generate API Documentation
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
npm run generate:docs
|
|
154
|
+
npm run generate:diagrams
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### View Database Schema
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
cd generated/code
|
|
161
|
+
npm run db:studio
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
This opens Prisma Studio at `http://localhost:5555`
|
|
165
|
+
|
|
166
|
+
## 🎯 Use Cases
|
|
167
|
+
|
|
168
|
+
This backend-only template is ideal for:
|
|
169
|
+
|
|
170
|
+
- **Microservices**: Building focused, single-responsibility services
|
|
171
|
+
- **API-First Development**: Designing APIs before building frontends
|
|
172
|
+
- **Mobile Backends**: Serving iOS, Android, or cross-platform apps
|
|
173
|
+
- **Third-Party Integrations**: Providing APIs for external consumers
|
|
174
|
+
- **Serverless Functions**: Base code for AWS Lambda, Vercel Functions, etc.
|
|
175
|
+
|
|
176
|
+
## 🔄 Connecting Frontends
|
|
177
|
+
|
|
178
|
+
Your frontend applications can connect to this API using:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
// Frontend configuration
|
|
182
|
+
const API_BASE_URL = process.env.VITE_API_BASE_URL || 'http://localhost:3000';
|
|
183
|
+
|
|
184
|
+
// Fetch products
|
|
185
|
+
const response = await fetch(`${API_BASE_URL}/api/products`);
|
|
186
|
+
const products = await response.json();
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## 📖 Learn More
|
|
190
|
+
|
|
191
|
+
- [SpecVerse Documentation](https://specverse.dev)
|
|
192
|
+
- [API Guide](./docs/)
|
|
193
|
+
- [Database Migrations](./generated/code/prisma/migrations/)
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
Built with ❤️ using [SpecVerse](https://specverse.dev)
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Deployments Directory
|
|
2
|
+
|
|
3
|
+
This directory can be used to organize deployment specifications when you need multiple deployment targets or environment-specific configurations.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Deployments can be organized by environment, scale, or target platform:
|
|
8
|
+
|
|
9
|
+
1. **Environment-based organization**:
|
|
10
|
+
```
|
|
11
|
+
deployments/
|
|
12
|
+
├── development.specly
|
|
13
|
+
├── staging.specly
|
|
14
|
+
└── production.specly
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. **Scale-based organization**:
|
|
18
|
+
```
|
|
19
|
+
deployments/
|
|
20
|
+
├── personal.specly # Single developer, local database
|
|
21
|
+
├── team.specly # Small team, shared database
|
|
22
|
+
├── business.specly # Business scale, clustering
|
|
23
|
+
└── enterprise.specly # Enterprise scale, multi-tenant
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. **Platform-based organization**:
|
|
27
|
+
```
|
|
28
|
+
deployments/
|
|
29
|
+
├── local.specly # Local development
|
|
30
|
+
├── cloud.specly # Cloud deployment (AWS, GCP, Azure)
|
|
31
|
+
├── kubernetes.specly # Kubernetes clusters
|
|
32
|
+
└── serverless.specly # Serverless functions
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Deployment Patterns
|
|
36
|
+
|
|
37
|
+
### Based on SpecVerse Library Patterns
|
|
38
|
+
|
|
39
|
+
You can reference deployment patterns from the SpecVerse library system:
|
|
40
|
+
|
|
41
|
+
- **Monolith Pattern**: Single-instance deployment (from `libs/deployments/monolith/`)
|
|
42
|
+
- **Microservices Pattern**: Service-based deployment (from `libs/deployments/microservices/`)
|
|
43
|
+
- **JAMstack Pattern**: Static + API deployment (from `libs/deployments/jamstack/`)
|
|
44
|
+
- **Enterprise Pattern**: Multi-tenant, compliance-ready (from `libs/deployments/enterprise/`)
|
|
45
|
+
|
|
46
|
+
### Example Deployment Structure
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
# deployments/development.specly
|
|
50
|
+
components:
|
|
51
|
+
my-app-dev:
|
|
52
|
+
version: "3.1.0"
|
|
53
|
+
|
|
54
|
+
# Reference library patterns
|
|
55
|
+
import:
|
|
56
|
+
- file: ../../../libs/deployments/monolith/lib/development.yaml
|
|
57
|
+
select: ["development"]
|
|
58
|
+
|
|
59
|
+
deployments:
|
|
60
|
+
development:
|
|
61
|
+
version: "3.1.0"
|
|
62
|
+
environment: "development"
|
|
63
|
+
|
|
64
|
+
# Based on monolith development pattern
|
|
65
|
+
instances:
|
|
66
|
+
controllers:
|
|
67
|
+
appController:
|
|
68
|
+
component: "my-app"
|
|
69
|
+
namespace: "api"
|
|
70
|
+
scale: 1
|
|
71
|
+
advertises: ["api.*"]
|
|
72
|
+
uses: ["database.*"]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Instance Types
|
|
76
|
+
|
|
77
|
+
SpecVerse v3.3 supports these logical instance types:
|
|
78
|
+
|
|
79
|
+
- **Controllers**: API endpoints, request handlers
|
|
80
|
+
- **Services**: Business logic, background processing
|
|
81
|
+
- **Views**: UI components, frontend applications
|
|
82
|
+
- **Storage**: Databases, caches, file systems
|
|
83
|
+
- **Security**: Authentication, authorization, encryption
|
|
84
|
+
- **Infrastructure**: Load balancers, CDNs, service mesh
|
|
85
|
+
- **Monitoring**: Metrics, logging, alerting, analytics
|
|
86
|
+
- **Communications**: Message queues, event buses, RPC channels
|
|
87
|
+
|
|
88
|
+
## Capability Patterns
|
|
89
|
+
|
|
90
|
+
Use capability patterns to define instance communication:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
instances:
|
|
94
|
+
controllers:
|
|
95
|
+
apiController:
|
|
96
|
+
advertises: ["api.*", "auth.*"] # What this instance provides
|
|
97
|
+
uses: ["database.*", "cache.*"] # What this instance depends on
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Scaling Configuration
|
|
101
|
+
|
|
102
|
+
Define scaling behavior for different environments:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
instances:
|
|
106
|
+
controllers:
|
|
107
|
+
webApi:
|
|
108
|
+
scale: 3 # Number of instances
|
|
109
|
+
advertises: ["api.*"]
|
|
110
|
+
uses: ["database.*"]
|
|
111
|
+
config:
|
|
112
|
+
resources:
|
|
113
|
+
memory: "512Mi"
|
|
114
|
+
cpu: "200m"
|
|
115
|
+
healthCheck:
|
|
116
|
+
path: "/health"
|
|
117
|
+
interval: "30s"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Import Examples
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
# In main.specly, reference deployment specifications
|
|
124
|
+
deployments:
|
|
125
|
+
development:
|
|
126
|
+
import:
|
|
127
|
+
- file: deployments/development.specly
|
|
128
|
+
select: ["development"]
|
|
129
|
+
|
|
130
|
+
production:
|
|
131
|
+
import:
|
|
132
|
+
- file: deployments/production.specly
|
|
133
|
+
select: ["production"]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Best Practices
|
|
137
|
+
|
|
138
|
+
1. **Environment Separation**: Keep development and production deployments separate
|
|
139
|
+
2. **Library Usage**: Reference standard patterns from `libs/deployments/`
|
|
140
|
+
3. **Capability Design**: Use clear advertises/uses patterns for dependencies
|
|
141
|
+
4. **Scaling Strategy**: Define appropriate scaling for each environment
|
|
142
|
+
5. **Security Layering**: Include security instances for authentication and authorization
|
|
143
|
+
6. **Monitoring Integration**: Add monitoring instances for production deployments
|
|
144
|
+
|
|
145
|
+
## See Also
|
|
146
|
+
|
|
147
|
+
- **Library Patterns**: `../../libs/deployments/` for standard deployment patterns
|
|
148
|
+
- **Manifests**: `../manifests/` for technology-specific implementation guidance
|
|
149
|
+
- **Main Specification**: `../specs/main.specly` for component definitions
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Development Deployment
|
|
2
|
+
# SpecVerse v3.3 deployment specification for local development
|
|
3
|
+
|
|
4
|
+
deployments:
|
|
5
|
+
development:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
environment: "development"
|
|
8
|
+
description: "Local development deployment with SQLite"
|
|
9
|
+
|
|
10
|
+
# Based on libs/deployments/monolith/development pattern
|
|
11
|
+
instances:
|
|
12
|
+
controllers:
|
|
13
|
+
appController:
|
|
14
|
+
component: "{{componentName}}"
|
|
15
|
+
namespace: "api"
|
|
16
|
+
scale: 1
|
|
17
|
+
advertises: ["api.*"]
|
|
18
|
+
uses: ["database.*", "auth.*"]
|
|
19
|
+
|
|
20
|
+
services:
|
|
21
|
+
appService:
|
|
22
|
+
component: "{{componentName}}"
|
|
23
|
+
namespace: "services"
|
|
24
|
+
scale: 1
|
|
25
|
+
advertises: ["business.*", "validation.*"]
|
|
26
|
+
uses: ["database.*"]
|
|
27
|
+
|
|
28
|
+
storage:
|
|
29
|
+
localDB:
|
|
30
|
+
component: "{{componentName}}"
|
|
31
|
+
namespace: "data"
|
|
32
|
+
type: "relational"
|
|
33
|
+
scale: 1
|
|
34
|
+
advertises: ["persistence.*", "query.*"]
|
|
35
|
+
|
|
36
|
+
security:
|
|
37
|
+
devAuth:
|
|
38
|
+
component: "{{componentName}}"
|
|
39
|
+
namespace: "auth"
|
|
40
|
+
type: "authentication"
|
|
41
|
+
provider: "local"
|
|
42
|
+
scope: "component"
|
|
43
|
+
scale: 1
|
|
44
|
+
advertises: ["auth.*"]
|
|
45
|
+
policies: ["dev-access"]
|
|
46
|
+
encryption: "basic"
|
|
47
|
+
auditLevel: "basic"
|
|
48
|
+
|
|
49
|
+
communications:
|
|
50
|
+
localBus:
|
|
51
|
+
namespace: "local"
|
|
52
|
+
type: "rpc"
|
|
53
|
+
capabilities: ["*"]
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Production Deployment
|
|
2
|
+
# SpecVerse v3.1 deployment specification for production environment
|
|
3
|
+
|
|
4
|
+
deployments:
|
|
5
|
+
production:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
environment: "production"
|
|
8
|
+
description: "Production deployment with PostgreSQL and monitoring"
|
|
9
|
+
|
|
10
|
+
# Based on libs/deployments/monolith/production pattern
|
|
11
|
+
instances:
|
|
12
|
+
controllers:
|
|
13
|
+
apiServer:
|
|
14
|
+
component: "{{componentName}}"
|
|
15
|
+
namespace: "api"
|
|
16
|
+
scale: 3
|
|
17
|
+
advertises: ["api.*"]
|
|
18
|
+
uses: ["database.*", "auth.*", "cache.*"]
|
|
19
|
+
|
|
20
|
+
services:
|
|
21
|
+
businessService:
|
|
22
|
+
component: "{{componentName}}"
|
|
23
|
+
namespace: "services"
|
|
24
|
+
scale: 2
|
|
25
|
+
advertises: ["business.*", "validation.*"]
|
|
26
|
+
uses: ["database.*", "cache.*"]
|
|
27
|
+
|
|
28
|
+
storage:
|
|
29
|
+
mainDB:
|
|
30
|
+
component: "{{componentName}}"
|
|
31
|
+
namespace: "data"
|
|
32
|
+
type: "relational"
|
|
33
|
+
scale: 2
|
|
34
|
+
backup: true
|
|
35
|
+
encryption: true
|
|
36
|
+
advertises: ["persistence.*", "query.*"]
|
|
37
|
+
|
|
38
|
+
cache:
|
|
39
|
+
component: "{{componentName}}"
|
|
40
|
+
namespace: "cache"
|
|
41
|
+
type: "keyvalue"
|
|
42
|
+
scale: 2
|
|
43
|
+
advertises: ["cache.*", "session.*"]
|
|
44
|
+
|
|
45
|
+
security:
|
|
46
|
+
authSystem:
|
|
47
|
+
component: "{{componentName}}"
|
|
48
|
+
namespace: "auth"
|
|
49
|
+
type: "authentication"
|
|
50
|
+
provider: "oauth"
|
|
51
|
+
scope: "global"
|
|
52
|
+
scale: 2
|
|
53
|
+
advertises: ["auth.*", "identity.*"]
|
|
54
|
+
policies: ["session-management", "rate-limiting"]
|
|
55
|
+
encryption: "strong"
|
|
56
|
+
auditLevel: "detailed"
|
|
57
|
+
|
|
58
|
+
monitoring:
|
|
59
|
+
appMetrics:
|
|
60
|
+
component: "{{componentName}}"
|
|
61
|
+
namespace: "monitoring"
|
|
62
|
+
type: "metrics"
|
|
63
|
+
provider: "prometheus"
|
|
64
|
+
scope: "global"
|
|
65
|
+
retention: "medium"
|
|
66
|
+
resolution: "high"
|
|
67
|
+
advertises: ["metrics.*"]
|
|
68
|
+
dashboards: ["overview", "errors", "performance"]
|
|
69
|
+
alerts: ["high-error-rate", "service-down", "high-latency"]
|
|
70
|
+
|
|
71
|
+
infrastructure:
|
|
72
|
+
loadBalancer:
|
|
73
|
+
component: "{{componentName}}"
|
|
74
|
+
namespace: "gateway"
|
|
75
|
+
type: "gateway"
|
|
76
|
+
provider: "nginx"
|
|
77
|
+
tier: "regional"
|
|
78
|
+
redundancy: "basic"
|
|
79
|
+
advertises: ["routing.*", "balancing.*"]
|
|
80
|
+
protocols: ["http", "https"]
|
|
81
|
+
healthChecks: true
|
|
82
|
+
|
|
83
|
+
communications:
|
|
84
|
+
prodBus:
|
|
85
|
+
namespace: "global"
|
|
86
|
+
type: "pubsub"
|
|
87
|
+
capabilities: ["*"]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# {{projectName}} Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains project-specific documentation for your SpecVerse application.
|
|
4
|
+
|
|
5
|
+
## Documentation Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
docs/
|
|
9
|
+
├── README.md # This file
|
|
10
|
+
├── example-documentation-template.md # Template for creating documentation
|
|
11
|
+
├── api/ # API documentation (generated)
|
|
12
|
+
├── diagrams/ # Generated diagrams
|
|
13
|
+
└── guides/ # Project-specific guides
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Generated Content
|
|
17
|
+
|
|
18
|
+
When you run SpecVerse generation commands, documentation will be created in:
|
|
19
|
+
|
|
20
|
+
- `diagrams/` - UML diagrams (ER, sequence, architecture, lifecycle, deployment)
|
|
21
|
+
- `api/` - API documentation generated from specifications
|
|
22
|
+
|
|
23
|
+
## SpecVerse Schema Reference
|
|
24
|
+
|
|
25
|
+
For complete SpecVerse language documentation and schema reference, see:
|
|
26
|
+
|
|
27
|
+
- **Main Schema**: `../../schema/SPECVERSE-SCHEMA.json`
|
|
28
|
+
- **Schema Guidance**: Maintained in the main project
|
|
29
|
+
|
|
30
|
+
These files contain the authoritative SpecVerse v3.3 language specification and are maintained in the main project.
|
|
31
|
+
|
|
32
|
+
## Creating Project Documentation
|
|
33
|
+
|
|
34
|
+
1. Use `example-documentation-template.md` as a starting point
|
|
35
|
+
2. Run `npm run generate:docs` to generate API documentation
|
|
36
|
+
3. Run `npm run generate:diagrams` to create visual diagrams
|
|
37
|
+
4. Add project-specific guides in the `guides/` directory
|
|
38
|
+
|
|
39
|
+
## Generation Commands
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Generate all documentation
|
|
43
|
+
npm run generate:docs
|
|
44
|
+
|
|
45
|
+
# Generate diagrams only
|
|
46
|
+
npm run generate:diagrams
|
|
47
|
+
|
|
48
|
+
# Generate specific diagram types
|
|
49
|
+
npm run generate:diagram:deployment
|
|
50
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Generated Diagrams
|
|
2
|
+
|
|
3
|
+
This directory contains auto-generated Mermaid diagrams from your SpecVerse specification.
|
|
4
|
+
|
|
5
|
+
## Diagram Types
|
|
6
|
+
|
|
7
|
+
### Entity-Relationship (er-diagram)
|
|
8
|
+
Shows models, attributes, and relationships.
|
|
9
|
+
|
|
10
|
+
**Generate**: `npm run generate:diagram:er`
|
|
11
|
+
**Best For**: Understanding data structure
|
|
12
|
+
|
|
13
|
+
### Event-Flow-Layered (event-flow-layered)
|
|
14
|
+
Shows event-driven architecture with topological sorting.
|
|
15
|
+
|
|
16
|
+
**Generate**: `npm run generate:diagram:event-flow`
|
|
17
|
+
**Best For**: Understanding event flow and component dependencies
|
|
18
|
+
**Features**:
|
|
19
|
+
- Dynamic layer assignment based on dependency depth
|
|
20
|
+
- Topological sorting for proper component ordering
|
|
21
|
+
- Color-coded domain vs application events
|
|
22
|
+
- Simplified labels showing event counts (↑ publishes, ↓ subscribes)
|
|
23
|
+
|
|
24
|
+
### Lifecycle (lifecycle)
|
|
25
|
+
Shows state machine transitions for model lifecycles.
|
|
26
|
+
|
|
27
|
+
**Generate**: `npm run generate:diagram:lifecycle`
|
|
28
|
+
**Best For**: Understanding state transitions
|
|
29
|
+
|
|
30
|
+
### Deployment (deployment-topology)
|
|
31
|
+
Shows deployment instances and capability mappings.
|
|
32
|
+
|
|
33
|
+
**Generate**: `npm run generate:diagram:deployment`
|
|
34
|
+
**Best For**: Understanding deployment architecture
|
|
35
|
+
|
|
36
|
+
### Model Architecture (model-architecture)
|
|
37
|
+
Shows component relationships and dependencies.
|
|
38
|
+
|
|
39
|
+
**Generate**: `npm run generate:diagram:architecture`
|
|
40
|
+
**Best For**: High-level system overview
|
|
41
|
+
|
|
42
|
+
## Viewing Diagrams
|
|
43
|
+
|
|
44
|
+
Mermaid diagrams can be viewed in:
|
|
45
|
+
- **GitHub**: Automatically rendered in .md files
|
|
46
|
+
- **VSCode**: Use Markdown Preview Mermaid Support extension
|
|
47
|
+
- **Mermaid Live Editor**: https://mermaid.live/
|
|
48
|
+
- **Documentation Sites**: Most support Mermaid rendering
|
|
49
|
+
|
|
50
|
+
## Programmatic Generation
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
import { UnifiedDiagramGenerator, EventFlowPlugin } from '@specverse/lang/diagram-engine';
|
|
54
|
+
import { SpecVerseParser } from '@specverse/lang';
|
|
55
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
56
|
+
|
|
57
|
+
// 1. Parse your specification
|
|
58
|
+
const schema = JSON.parse(
|
|
59
|
+
readFileSync('node_modules/@specverse/lang/schema/SPECVERSE-SCHEMA.json', 'utf8')
|
|
60
|
+
);
|
|
61
|
+
const parser = new SpecVerseParser(schema);
|
|
62
|
+
const parseResult = parser.parseFile('specs/main.specly');
|
|
63
|
+
|
|
64
|
+
// 2. Create diagram generator with desired plugins
|
|
65
|
+
const generator = new UnifiedDiagramGenerator({
|
|
66
|
+
plugins: [
|
|
67
|
+
new EventFlowPlugin(),
|
|
68
|
+
new ERDiagramPlugin(),
|
|
69
|
+
new LifecyclePlugin(),
|
|
70
|
+
new DeploymentPlugin()
|
|
71
|
+
],
|
|
72
|
+
theme: 'default'
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// 3. Generate specific diagram type
|
|
76
|
+
const mermaidCode = generator.generate(parseResult.ast, 'event-flow-layered', {
|
|
77
|
+
title: 'Event Flow Architecture',
|
|
78
|
+
direction: 'TD'
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// 4. Save to file
|
|
82
|
+
writeFileSync('docs/diagrams/event-flow-layered.mmd', mermaidCode);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
See [example 11-diagrams documentation](https://github.com/SpecVerse/specverse-lang/tree/main/examples/11-diagrams) for complete API reference and more examples
|