@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,141 @@
|
|
|
1
|
+
# {{projectName}} - Claude Code Development Guide
|
|
2
|
+
|
|
3
|
+
This file provides Claude-specific guidance for working with this SpecVerse project.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
**Project**: {{projectName}}
|
|
8
|
+
**Component**: {{componentName}}
|
|
9
|
+
**Type**: SpecVerse Specification
|
|
10
|
+
|
|
11
|
+
**For comprehensive SpecVerse guidance, see `AI-GUIDE.md`**
|
|
12
|
+
|
|
13
|
+
## Claude Code Specific Features
|
|
14
|
+
|
|
15
|
+
### File Operations
|
|
16
|
+
- **Read specifications**: Use Read tool to examine `specs/main.specly`
|
|
17
|
+
- **Edit specifications**: Use Edit tool to modify models and deployments
|
|
18
|
+
- **Run validation**: Use Bash tool with `specverse validate specs/main.specly`
|
|
19
|
+
- **Generate artifacts**: Use Bash tool with `specverse generate` commands
|
|
20
|
+
|
|
21
|
+
### Development Workflow with Claude Code
|
|
22
|
+
1. **Read current spec**: `specs/main.specly`
|
|
23
|
+
2. **Understand requirements**: Check project documentation
|
|
24
|
+
3. **Make targeted changes**: Use Edit tool for specific modifications
|
|
25
|
+
4. **Validate changes**: Run `specverse validate`
|
|
26
|
+
5. **Generate outputs**: Create diagrams, docs as needed
|
|
27
|
+
|
|
28
|
+
### Common Claude Code Tasks
|
|
29
|
+
|
|
30
|
+
#### Adding Models
|
|
31
|
+
```bash
|
|
32
|
+
# Read current spec
|
|
33
|
+
# Use Edit tool to add new models
|
|
34
|
+
# Validate with: specverse validate specs/main.specly
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### Generating Documentation
|
|
38
|
+
```bash
|
|
39
|
+
specverse gen docs specs/main.specly --output docs/
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
#### Creating Diagrams
|
|
43
|
+
```bash
|
|
44
|
+
# Generate all diagrams
|
|
45
|
+
specverse gen diagram specs/main.specly --output docs/diagrams/
|
|
46
|
+
|
|
47
|
+
# Generate specific diagram types
|
|
48
|
+
specverse gen diagram specs/main.specly -t er-diagram -o docs/diagrams/er.mmd
|
|
49
|
+
specverse gen diagram specs/main.specly -t event-flow-layered -o docs/diagrams/events.mmd
|
|
50
|
+
specverse gen diagram specs/main.specly -t lifecycle -o docs/diagrams/lifecycle.mmd
|
|
51
|
+
specverse gen diagram specs/main.specly -t deployment-topology -o docs/diagrams/deploy.mmd
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Event-Flow Diagrams
|
|
55
|
+
The event-flow-layered diagram type uses topological sorting to visualize:
|
|
56
|
+
- Models publishing events
|
|
57
|
+
- Services subscribing to events
|
|
58
|
+
- Controllers orchestrating flows
|
|
59
|
+
- Views consuming data
|
|
60
|
+
|
|
61
|
+
Example: `npm run generate:diagram:event-flow`
|
|
62
|
+
|
|
63
|
+
#### Running Inference
|
|
64
|
+
```bash
|
|
65
|
+
specverse infer specs/main.specly -o specs/{{projectNameKebab}}-complete.specly
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### Working with Manifests (v3.3)
|
|
69
|
+
```bash
|
|
70
|
+
# Implementation manifest (default)
|
|
71
|
+
manifests/implementation.yaml
|
|
72
|
+
|
|
73
|
+
# Platform-specific manifests
|
|
74
|
+
manifests/docker-compose.specly # Development with Docker
|
|
75
|
+
manifests/kubernetes.specly # Production with Kubernetes
|
|
76
|
+
|
|
77
|
+
# Generate code using manifest
|
|
78
|
+
specverse realize specs/main.specly --manifest manifests/implementation.yaml
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Manifest v3.3 Format**: All manifests now use the v3.3 format with:
|
|
82
|
+
- `specVersion: "3.3.0"` (REQUIRED)
|
|
83
|
+
- `deployment:` section (REQUIRED - references spec and deployment name)
|
|
84
|
+
- `defaultMappings:` for technology stack defaults
|
|
85
|
+
- `capabilityMappings:` for capability-to-factory mappings (using `instanceFactory` field)
|
|
86
|
+
- `configuration:` section for platform-specific settings
|
|
87
|
+
|
|
88
|
+
## Claude Code Best Practices
|
|
89
|
+
|
|
90
|
+
### When Reading Files
|
|
91
|
+
- Always read `specs/main.specly` first to understand current state
|
|
92
|
+
- Check for existing models, relationships, and deployments
|
|
93
|
+
- Look for TODOs or placeholder content
|
|
94
|
+
|
|
95
|
+
### When Making Changes
|
|
96
|
+
- Use Edit tool for precise modifications
|
|
97
|
+
- Preserve existing structure and formatting
|
|
98
|
+
- Follow SpecVerse convention syntax
|
|
99
|
+
- Validate immediately after changes
|
|
100
|
+
|
|
101
|
+
### When Running Commands
|
|
102
|
+
- Use descriptive descriptions for Bash commands
|
|
103
|
+
- Check command output for errors
|
|
104
|
+
- Run validation after structural changes
|
|
105
|
+
|
|
106
|
+
## Quick Reference
|
|
107
|
+
|
|
108
|
+
### Essential Commands
|
|
109
|
+
```bash
|
|
110
|
+
# Validate specification
|
|
111
|
+
specverse validate specs/main.specly
|
|
112
|
+
|
|
113
|
+
# Generate complete architecture
|
|
114
|
+
specverse infer specs/main.specly -o specs/expanded.specly
|
|
115
|
+
|
|
116
|
+
# Generate all diagrams
|
|
117
|
+
specverse gen uml specs/main.specly
|
|
118
|
+
|
|
119
|
+
# Generate deployment diagram
|
|
120
|
+
specverse gen uml specs/main.specly
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### File Structure
|
|
124
|
+
```
|
|
125
|
+
{{projectName}}/
|
|
126
|
+
├── CLAUDE.md # This file
|
|
127
|
+
├── AI-GUIDE.md # Reference to comprehensive guide
|
|
128
|
+
├── README.md # Project overview
|
|
129
|
+
├── specs/
|
|
130
|
+
│ └── main.specly # Main specification (v3.3)
|
|
131
|
+
├── manifests/
|
|
132
|
+
│ ├── implementation.yaml # Implementation manifest (v3.3)
|
|
133
|
+
│ ├── docker-compose.specly # Docker deployment manifest (v3.3)
|
|
134
|
+
│ └── kubernetes.specly # Kubernetes deployment manifest (v3.3)
|
|
135
|
+
└── docs/ # Generated documentation
|
|
136
|
+
└── diagrams/ # Generated diagrams
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
*Generated for SpecVerse - AI-Powered Specification Language*
|
|
141
|
+
*Claude Code Integration Guide*
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
A SpecVerse project template with AI-powered inference capabilities.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
1. **Customize the specification** - Edit `specs/main.specly` to define your domain models
|
|
8
|
+
2. **Use AI inference** - Run `npm run infer` to generate complete architecture
|
|
9
|
+
3. **Generate diagrams** - Run `npm run generate:diagrams` to visualize your system
|
|
10
|
+
4. **Add deployment** - Uncomment deployment sections in `main.specly` for your target scale
|
|
11
|
+
|
|
12
|
+
## Template Structure
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
{{projectName}}/
|
|
16
|
+
├── specs/ # SpecVerse specifications
|
|
17
|
+
│ └── main.specly # Main specification (start here)
|
|
18
|
+
├── deployments/ # Deployment specifications
|
|
19
|
+
│ ├── README.md # Deployment guidance and patterns
|
|
20
|
+
│ ├── development.specly # Development deployment
|
|
21
|
+
│ └── production.specly # Production deployment
|
|
22
|
+
├── manifests/ # Implementation manifests
|
|
23
|
+
│ ├── README.md # Manifest documentation and guidance
|
|
24
|
+
│ ├── docker-compose.specly # Docker Compose implementation
|
|
25
|
+
│ └── kubernetes.specly # Kubernetes implementation
|
|
26
|
+
├── docs/ # Project documentation
|
|
27
|
+
│ ├── diagrams/ # Generated Mermaid diagrams
|
|
28
|
+
│ │ └── README.md # Diagram types and usage
|
|
29
|
+
│ ├── api/ # Generated API documentation
|
|
30
|
+
│ │ └── README.md # API documentation guide
|
|
31
|
+
│ ├── guides/ # Project-specific guides
|
|
32
|
+
│ │ └── README.md # Guide templates
|
|
33
|
+
│ └── example-documentation-template.md
|
|
34
|
+
├── generated/ # Generated code and artifacts
|
|
35
|
+
│ ├── docs/ # Generated documentation
|
|
36
|
+
│ └── README.md # Generated artifacts guide
|
|
37
|
+
├── scripts/ # Build and test scripts
|
|
38
|
+
│ └── test-all.sh # Test runner
|
|
39
|
+
├── CLAUDE.md # AI development guide
|
|
40
|
+
├── AI-GUIDE.md # Comprehensive SpecVerse reference
|
|
41
|
+
├── package.json # npm scripts and metadata
|
|
42
|
+
└── .gitignore # Git ignore patterns
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Template Customization
|
|
46
|
+
|
|
47
|
+
### Basic Item Model
|
|
48
|
+
The template includes a generic `Item` model that you should customize for your domain:
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
# Edit specs/main.specly to replace "Item" with your domain concept
|
|
52
|
+
models:
|
|
53
|
+
Item: # <- Change this to your domain entity (User, Product, Order, etc.)
|
|
54
|
+
description: "Basic item in the system - customize for your domain"
|
|
55
|
+
attributes:
|
|
56
|
+
id: UUID required unique auto=uuid4
|
|
57
|
+
name: String required
|
|
58
|
+
description: String optional
|
|
59
|
+
# Add your domain-specific attributes here
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Deployment Options
|
|
63
|
+
|
|
64
|
+
You can define deployments either in the main specification or in separate deployment files:
|
|
65
|
+
|
|
66
|
+
#### Option 1: Inline Deployments (Simple)
|
|
67
|
+
Add deployment sections directly in `specs/main.specly`:
|
|
68
|
+
|
|
69
|
+
- **Personal/Demo**: SQLite, local auth, single instance
|
|
70
|
+
- **Business**: PostgreSQL, OAuth, 2-3 instances with caching
|
|
71
|
+
- **Enterprise**: Multi-tenant, compliance, 5+ instances with monitoring
|
|
72
|
+
|
|
73
|
+
#### Option 2: Separate Deployment Files (Recommended for Complex Projects)
|
|
74
|
+
Create dedicated deployment specifications in the `deployments/` directory:
|
|
75
|
+
|
|
76
|
+
1. **Rename examples**: `development.specly.example` → `development.specly`
|
|
77
|
+
2. **Customize instances**: Modify controllers, storage, security for your needs
|
|
78
|
+
3. **Reference library patterns**: Use patterns from `libs/deployments/`
|
|
79
|
+
4. **Generate diagrams**: `npm run generate:diagram:deployment`
|
|
80
|
+
|
|
81
|
+
## Development Commands
|
|
82
|
+
|
|
83
|
+
### Essential Workflow
|
|
84
|
+
- `npm run validate` - Validate your specification
|
|
85
|
+
- `npm run infer` - Generate complete architecture with AI
|
|
86
|
+
- `npm run generate:diagrams` - Create visual diagrams
|
|
87
|
+
|
|
88
|
+
### AI-Powered Generation
|
|
89
|
+
- `npm run infer` - Generate complete system architecture from minimal spec
|
|
90
|
+
- `npm run infer:minimal` - Generate enhanced but still minimal specification
|
|
91
|
+
- `npm run infer:deployment` - Generate complete architecture with deployment configuration
|
|
92
|
+
- `npm run infer:deployment:prod` - Generate production deployment configuration
|
|
93
|
+
- `npm run generate:diagrams` - Create all visual diagrams (ER, sequence, architecture, lifecycle, deployment)
|
|
94
|
+
- `npm run generate:docs` - Generate markdown documentation
|
|
95
|
+
- `npm run generate:complete` - Full generation pipeline (infer + diagrams + docs)
|
|
96
|
+
|
|
97
|
+
### Diagram Generation by Type
|
|
98
|
+
- `npm run generate:diagram:er` - Entity-Relationship diagram
|
|
99
|
+
- `npm run generate:diagram:event-flow` - Event-flow-layered architecture (topologically sorted)
|
|
100
|
+
- `npm run generate:diagram:lifecycle` - State machine lifecycles
|
|
101
|
+
- `npm run generate:diagram:deployment` - Deployment topology
|
|
102
|
+
- `npm run generate:diagram:architecture` - Model architecture overview
|
|
103
|
+
|
|
104
|
+
#### Programmatic Diagram API
|
|
105
|
+
SpecVerse diagrams can be generated programmatically:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
import { UnifiedDiagramGenerator, EventFlowPlugin } from '@specverse/lang/diagram-engine';
|
|
109
|
+
import { SpecVerseParser } from '@specverse/lang';
|
|
110
|
+
|
|
111
|
+
const parser = new SpecVerseParser(schema);
|
|
112
|
+
const parseResult = parser.parseFile('specs/main.specly');
|
|
113
|
+
|
|
114
|
+
const generator = new UnifiedDiagramGenerator({
|
|
115
|
+
plugins: [new EventFlowPlugin()],
|
|
116
|
+
theme: 'default'
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
const mermaid = generator.generate(parseResult.ast, 'event-flow-layered', {
|
|
120
|
+
title: 'Event Flow Architecture'
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
See [example 11-diagrams documentation](https://github.com/SpecVerse/specverse-lang/tree/main/examples/11-diagrams) for complete API reference.
|
|
125
|
+
|
|
126
|
+
### Code Generation
|
|
127
|
+
|
|
128
|
+
SpecVerse includes powerful code generators that create production-ready implementations using the **Implementation Types System**.
|
|
129
|
+
|
|
130
|
+
#### Quick Start
|
|
131
|
+
|
|
132
|
+
1. **Configure using Implementation Types** - Edit `manifests/implementation.yaml`:
|
|
133
|
+
```yaml
|
|
134
|
+
specVersion: "3.3.0"
|
|
135
|
+
|
|
136
|
+
# Reference implementation types from library
|
|
137
|
+
implementationTypes:
|
|
138
|
+
- name: "FastifyPrismaAPI"
|
|
139
|
+
source: "@specverse/lang/libs/implementation-types/backend/fastify-prisma.yaml"
|
|
140
|
+
version: "1.0.0"
|
|
141
|
+
|
|
142
|
+
# Map capabilities to implementation types
|
|
143
|
+
capabilityMappings:
|
|
144
|
+
- capability: "api.rest"
|
|
145
|
+
implementationType: "FastifyPrismaAPI"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
2. **Generate code**:
|
|
149
|
+
```bash
|
|
150
|
+
npm run generate:code
|
|
151
|
+
# Output: generated/code/
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### v3.3 Code Realization Commands
|
|
155
|
+
|
|
156
|
+
- `npm run realize:all` - Generate **complete runnable project** (ORM + services + routes + scaffolding + main.ts) ✨ **RECOMMENDED**
|
|
157
|
+
- `npm run realize:orm` - Generate ORM schemas only (Prisma schema)
|
|
158
|
+
- `npm run realize:services` - Generate service layer only
|
|
159
|
+
- `npm run realize:routes` - Generate route handlers only
|
|
160
|
+
|
|
161
|
+
#### What Gets Generated (v3.3 Complete Project) ✨
|
|
162
|
+
|
|
163
|
+
**Project Scaffolding** (NEW in v3.3):
|
|
164
|
+
- `package.json` - Aggregated dependencies from all implementation types
|
|
165
|
+
- `tsconfig.json` - Merged TypeScript configuration
|
|
166
|
+
- `.env.example` - Environment variables template (grouped by category)
|
|
167
|
+
- `.env` - Local environment configuration
|
|
168
|
+
- `.gitignore` - Technology-adaptive ignore patterns
|
|
169
|
+
- `README.md` - Auto-generated project documentation
|
|
170
|
+
|
|
171
|
+
**Application Entry Point** (NEW in v3.3):
|
|
172
|
+
- `src/main.ts` - Framework-adaptive server initialization (Fastify/Express/NestJS)
|
|
173
|
+
- Auto-registers all routes
|
|
174
|
+
- Configures CORS, logging, error handling
|
|
175
|
+
- Graceful shutdown handling
|
|
176
|
+
|
|
177
|
+
**ORM Schemas** (`generated/code/prisma/`):
|
|
178
|
+
- Metadata primitives (id, audit, softDelete, status, version)
|
|
179
|
+
- Model attributes with proper types
|
|
180
|
+
- Relationships and foreign keys
|
|
181
|
+
- Database-specific annotations
|
|
182
|
+
|
|
183
|
+
**Service Layer** (`generated/code/src/services/`):
|
|
184
|
+
- Unified `validate(data, context)` method for all operations
|
|
185
|
+
- CURED operations (Create, Retrieve, Update/Evolve, Destroy)
|
|
186
|
+
- Optimistic locking with version checking
|
|
187
|
+
- Soft delete filtering
|
|
188
|
+
- Event publishing integration
|
|
189
|
+
|
|
190
|
+
**Controllers** (`generated/code/src/controllers/`):
|
|
191
|
+
- Business logic layer (CURED operations)
|
|
192
|
+
- Data transformation and validation
|
|
193
|
+
|
|
194
|
+
**Route Handlers** (`generated/code/src/routes/`):
|
|
195
|
+
- HTTP endpoints for all CURED operations
|
|
196
|
+
- Single `/validate` endpoint (accepts operation context)
|
|
197
|
+
- Request/response handling
|
|
198
|
+
- Error handling
|
|
199
|
+
- Framework-specific patterns
|
|
200
|
+
|
|
201
|
+
#### Running the Generated Application
|
|
202
|
+
|
|
203
|
+
After running `npm run realize:all`:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
cd generated/code
|
|
207
|
+
npm install
|
|
208
|
+
cp .env.example .env
|
|
209
|
+
# Edit .env with your database connection string
|
|
210
|
+
npm run db:generate
|
|
211
|
+
npm run db:push # or npm run db:migrate for migrations
|
|
212
|
+
npm run dev # Start development server
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Your application is now running with:
|
|
216
|
+
- ✅ Complete project structure
|
|
217
|
+
- ✅ All dependencies installed
|
|
218
|
+
- ✅ TypeScript configured
|
|
219
|
+
- ✅ Database schema synchronized
|
|
220
|
+
- ✅ REST API endpoints ready
|
|
221
|
+
- ✅ Auto-generated documentation
|
|
222
|
+
|
|
223
|
+
#### Metadata Primitives
|
|
224
|
+
|
|
225
|
+
Add metadata to your models for automatic code generation:
|
|
226
|
+
|
|
227
|
+
```yaml
|
|
228
|
+
models:
|
|
229
|
+
Task:
|
|
230
|
+
metadata:
|
|
231
|
+
id: uuid # ID strategy: uuid | integer | auto
|
|
232
|
+
audit: true # Adds createdAt, updatedAt, createdBy, updatedBy
|
|
233
|
+
softDelete: deletedAt # Soft delete: deletedAt | isDeleted
|
|
234
|
+
status: true # Lifecycle status field
|
|
235
|
+
version: true # Optimistic locking
|
|
236
|
+
attributes:
|
|
237
|
+
title: String required
|
|
238
|
+
# ... your attributes
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Generated Features:**
|
|
242
|
+
- ✅ **Unified Validation** - Single `validate()` method for all operations
|
|
243
|
+
- ✅ **Optimistic Locking** - Version checking prevents concurrent updates
|
|
244
|
+
- ✅ **Soft Delete** - Automatic filtering of deleted records
|
|
245
|
+
- ✅ **Audit Trail** - Automatic timestamps and user tracking
|
|
246
|
+
- ✅ **Event Publishing** - Auto-generated events for all operations
|
|
247
|
+
|
|
248
|
+
**Tech Stack Support:**
|
|
249
|
+
- **ORMs**: Prisma, TypeORM
|
|
250
|
+
- **Frameworks**: Fastify, Express, NestJS
|
|
251
|
+
- **Databases**: PostgreSQL, MySQL, SQLite, MongoDB
|
|
252
|
+
|
|
253
|
+
See `specs/main.specly` for a complete example with all features.
|
|
254
|
+
|
|
255
|
+
### Development Tools
|
|
256
|
+
- `npm run format` - Format specification files
|
|
257
|
+
- `npm run process` - Convert to expanded YAML format
|
|
258
|
+
- `npm run build` - Full build (validate + infer)
|
|
259
|
+
- `npm test` - Run all tests including code generators
|
|
260
|
+
|
|
261
|
+
## Prerequisites
|
|
262
|
+
|
|
263
|
+
You can install SpecVerse tools globally or use them locally:
|
|
264
|
+
|
|
265
|
+
1. **Global installation** (recommended):
|
|
266
|
+
```bash
|
|
267
|
+
# Install SpecVerse CLI globally
|
|
268
|
+
npm install -g @specverse/lang
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
2. **Local development** (for contributing to SpecVerse):
|
|
272
|
+
```bash
|
|
273
|
+
# Clone and build the SpecVerse tools
|
|
274
|
+
git clone https://github.com/SpecVerse/specverse-lang.git
|
|
275
|
+
cd specverse-lang
|
|
276
|
+
npm install
|
|
277
|
+
npm run build
|
|
278
|
+
|
|
279
|
+
# Make tools available globally (optional)
|
|
280
|
+
npm link
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
3. **For this project** - No dependencies to install:
|
|
284
|
+
```bash
|
|
285
|
+
# The npm scripts use the globally installed specverse command
|
|
286
|
+
# If you're using local development, ensure you've run 'npm link' in specverse-lang
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Getting Started
|
|
290
|
+
|
|
291
|
+
1. Validate the specification:
|
|
292
|
+
```bash
|
|
293
|
+
npm run validate # Validate main.specly file
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
2. Use AI inference to expand the specification:
|
|
297
|
+
```bash
|
|
298
|
+
npm run infer # Generate complete architecture
|
|
299
|
+
npm run infer:deployment # Generate with deployment configuration
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
3. Generate diagrams and documentation:
|
|
303
|
+
```bash
|
|
304
|
+
npm run generate:diagrams # Create all visual diagrams
|
|
305
|
+
npm run generate:diagram:event-flow # Event-flow architecture
|
|
306
|
+
npm run generate:docs # Generate markdown documentation
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
4. Process to YAML format (if needed):
|
|
310
|
+
```bash
|
|
311
|
+
npm run process # Convert Specly to expanded YAML
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Specification Format
|
|
315
|
+
|
|
316
|
+
**Specly DSL (main.specly):**
|
|
317
|
+
- Concise, developer-friendly syntax
|
|
318
|
+
- Native SpecVerse format with optimal parsing
|
|
319
|
+
- Convention-based with powerful shorthand
|
|
320
|
+
- Flow syntax for lifecycles
|
|
321
|
+
- Reduced boilerplate (90% less code)
|
|
322
|
+
|
|
323
|
+
**Processed YAML Output:**
|
|
324
|
+
- Generated from Specly using `npm run process`
|
|
325
|
+
- Expanded format with all inferred properties
|
|
326
|
+
- Useful for integration with other tools
|
|
327
|
+
- Complete specification with explicit structure
|
|
328
|
+
|
|
329
|
+
## Deployment Specifications
|
|
330
|
+
|
|
331
|
+
SpecVerse supports logical deployment specifications with capability-based architecture:
|
|
332
|
+
|
|
333
|
+
### Deployment Features
|
|
334
|
+
- **Logical Instances**: Controllers, services, views as scalable instances
|
|
335
|
+
- **Communication Channels**: PubSub, RPC, Queue, Streaming channels
|
|
336
|
+
- **Capability Patterns**: Advertise/use patterns for instance communication
|
|
337
|
+
- **Scaling Configuration**: Define instance counts for different environments
|
|
338
|
+
- **Deployment Diagrams**: Visual representation of deployment architecture
|
|
339
|
+
|
|
340
|
+
### Example Deployment
|
|
341
|
+
```yaml
|
|
342
|
+
deployments:
|
|
343
|
+
production:
|
|
344
|
+
version: "1.0.0"
|
|
345
|
+
environment: production
|
|
346
|
+
instances:
|
|
347
|
+
controllers:
|
|
348
|
+
userController:
|
|
349
|
+
component: "user-management"
|
|
350
|
+
namespace: "user"
|
|
351
|
+
advertises: "*" # All capabilities
|
|
352
|
+
uses: ["database.*", "cache.*"]
|
|
353
|
+
scale: 4
|
|
354
|
+
communications:
|
|
355
|
+
mainBus:
|
|
356
|
+
namespace: "global"
|
|
357
|
+
capabilities: ["user.*", "order.*"]
|
|
358
|
+
type: "pubsub"
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Documentation
|
|
362
|
+
|
|
363
|
+
### Project Documentation
|
|
364
|
+
- `docs/README.md` - Documentation guide and structure
|
|
365
|
+
- `docs/example-documentation-template.md` - Template for creating project docs
|
|
366
|
+
|
|
367
|
+
### SpecVerse Language Reference
|
|
368
|
+
For complete language documentation and schema reference:
|
|
369
|
+
- **Schema**: `../schema/SPECVERSE-V3.1-SCHEMA.json` (authoritative specification)
|
|
370
|
+
- **AI Schema**: `../schema/SPECVERSE-V3.1-SCHEMA-AI.yaml` (AI-friendly format)
|
|
371
|
+
- **Guidance**: `../schema/README-AI-GUIDANCE.md` (usage patterns and examples)
|
|
372
|
+
|
|
373
|
+
### SpecVerse Libraries
|
|
374
|
+
This template uses the SpecVerse library system for common types and patterns:
|
|
375
|
+
- **Types**: `../libs/types/` (UUID, DateTime, Money, Status, etc.)
|
|
376
|
+
- **Deployments**: `../libs/deployments/` (monolith, microservices, enterprise patterns)
|
|
377
|
+
- **Manifests**: `../libs/manifests/` (Next.js, PostgreSQL, SQLite implementations)
|
|
378
|
+
|
|
379
|
+
### External Resources
|
|
380
|
+
- [SpecVerse Documentation](https://specverse.org/docs)
|
|
381
|
+
- [Language Repository](https://github.com/SpecVerse/specverse-lang)
|
|
382
|
+
- [@specverse/lang on npm](https://www.npmjs.com/package/@specverse/lang)
|