@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,165 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Test Generated Code Runtime Execution
|
|
4
|
+
# Tests that generated code actually compiles and runs
|
|
5
|
+
|
|
6
|
+
set -e # Exit on any error
|
|
7
|
+
|
|
8
|
+
echo "🧪 Testing Generated Code Execution..."
|
|
9
|
+
echo ""
|
|
10
|
+
|
|
11
|
+
# Check if code has been generated
|
|
12
|
+
if [ ! -d "generated/code/services" ]; then
|
|
13
|
+
echo "⚠️ No generated code found. Running generators first..."
|
|
14
|
+
npm run generate:code
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
echo "📦 Step 1: Setting up runtime environment..."
|
|
18
|
+
|
|
19
|
+
# Create runtime package.json if it doesn't exist
|
|
20
|
+
if [ ! -f "generated/code/package.json" ]; then
|
|
21
|
+
echo " → Creating package.json for generated code..."
|
|
22
|
+
cat > generated/code/package.json << 'EOF'
|
|
23
|
+
{
|
|
24
|
+
"name": "generated-code-runtime",
|
|
25
|
+
"version": "0.1.0",
|
|
26
|
+
"type": "module",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@prisma/client": "^5.0.0",
|
|
29
|
+
"typeorm": "^0.3.17",
|
|
30
|
+
"reflect-metadata": "^0.1.13",
|
|
31
|
+
"better-sqlite3": "^9.0.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^20.0.0",
|
|
35
|
+
"typescript": "^5.2.0",
|
|
36
|
+
"tsx": "^3.12.0"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
EOF
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Create tsconfig.json if it doesn't exist
|
|
43
|
+
if [ ! -f "generated/code/tsconfig.json" ]; then
|
|
44
|
+
echo " → Creating tsconfig.json for generated code..."
|
|
45
|
+
cat > generated/code/tsconfig.json << 'EOF'
|
|
46
|
+
{
|
|
47
|
+
"compilerOptions": {
|
|
48
|
+
"target": "ES2022",
|
|
49
|
+
"module": "ESNext",
|
|
50
|
+
"lib": ["ES2022"],
|
|
51
|
+
"moduleResolution": "node",
|
|
52
|
+
"esModuleInterop": true,
|
|
53
|
+
"skipLibCheck": true,
|
|
54
|
+
"strict": true,
|
|
55
|
+
"resolveJsonModule": true,
|
|
56
|
+
"declaration": true,
|
|
57
|
+
"outDir": "./dist",
|
|
58
|
+
"rootDir": ".",
|
|
59
|
+
"experimentalDecorators": true,
|
|
60
|
+
"emitDecoratorMetadata": true
|
|
61
|
+
},
|
|
62
|
+
"include": ["**/*.ts"],
|
|
63
|
+
"exclude": ["node_modules", "dist"]
|
|
64
|
+
}
|
|
65
|
+
EOF
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
echo " ✅ Runtime environment configured"
|
|
69
|
+
echo ""
|
|
70
|
+
|
|
71
|
+
echo "🔧 Step 2: Checking TypeScript compilation..."
|
|
72
|
+
|
|
73
|
+
cd generated/code
|
|
74
|
+
|
|
75
|
+
# Check if dependencies are installed
|
|
76
|
+
if [ ! -d "node_modules" ]; then
|
|
77
|
+
echo " → Installing dependencies (this may take a minute)..."
|
|
78
|
+
npm install --silent 2>&1 | grep -v "^npm WARN" || true
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# Try to compile TypeScript
|
|
82
|
+
echo " → Compiling TypeScript..."
|
|
83
|
+
if npx tsc --noEmit 2>&1 | tee compile.log; then
|
|
84
|
+
echo " ✅ TypeScript compilation successful"
|
|
85
|
+
COMPILE_STATUS="✅ PASSED"
|
|
86
|
+
else
|
|
87
|
+
echo " ⚠️ TypeScript compilation has errors (expected - missing runtime setup)"
|
|
88
|
+
echo " 📝 See generated/code/compile.log for details"
|
|
89
|
+
COMPILE_STATUS="⚠️ NEEDS SETUP"
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
cd ../..
|
|
93
|
+
|
|
94
|
+
echo ""
|
|
95
|
+
echo "🔍 Step 3: Analyzing generated code quality..."
|
|
96
|
+
|
|
97
|
+
# Check for v3.3 features in generated code
|
|
98
|
+
echo " → Checking for v3.3 features..."
|
|
99
|
+
|
|
100
|
+
FEATURES_FOUND=0
|
|
101
|
+
|
|
102
|
+
if grep -q "validate(data: any, context:" generated/code/services/*.ts 2>/dev/null; then
|
|
103
|
+
echo " ✅ Unified validation method found"
|
|
104
|
+
((FEATURES_FOUND++))
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
if grep -q "version mismatch" generated/code/services/*.ts 2>/dev/null; then
|
|
108
|
+
echo " ✅ Optimistic locking found"
|
|
109
|
+
((FEATURES_FOUND++))
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
if grep -q "deletedAt: null\|isDeleted: false" generated/code/services/*.ts 2>/dev/null; then
|
|
113
|
+
echo " ✅ Soft delete filtering found"
|
|
114
|
+
((FEATURES_FOUND++))
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
if grep -q "createdAt\|updatedAt" generated/code/services/*.ts 2>/dev/null; then
|
|
118
|
+
echo " ✅ Audit fields found"
|
|
119
|
+
((FEATURES_FOUND++))
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
if grep -q "EventBus\|eventBus" generated/code/services/*.ts 2>/dev/null; then
|
|
123
|
+
echo " ✅ Event publishing found"
|
|
124
|
+
((FEATURES_FOUND++))
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
echo ""
|
|
128
|
+
echo "📊 Step 4: Code Quality Report"
|
|
129
|
+
echo " ════════════════════════════════════════"
|
|
130
|
+
|
|
131
|
+
# Count generated files
|
|
132
|
+
SERVICE_COUNT=$(find generated/code/services -name "*.ts" 2>/dev/null | wc -l | tr -d ' ')
|
|
133
|
+
ROUTE_COUNT=$(find generated/code/routes -name "*.js" -o -name "*.ts" 2>/dev/null | wc -l | tr -d ' ')
|
|
134
|
+
|
|
135
|
+
echo " Files Generated:"
|
|
136
|
+
echo " Services: $SERVICE_COUNT"
|
|
137
|
+
echo " Routes: $ROUTE_COUNT"
|
|
138
|
+
echo ""
|
|
139
|
+
echo " v3.3 Features: $FEATURES_FOUND/5 detected"
|
|
140
|
+
echo " Compilation: $COMPILE_STATUS"
|
|
141
|
+
echo ""
|
|
142
|
+
|
|
143
|
+
# Show service structure
|
|
144
|
+
if [ -d "generated/code/services" ] && [ -n "$(ls -A generated/code/services/*.ts 2>/dev/null)" ]; then
|
|
145
|
+
echo " Service Structure:"
|
|
146
|
+
for file in generated/code/services/*.ts; do
|
|
147
|
+
if [ -f "$file" ]; then
|
|
148
|
+
SERVICE_NAME=$(basename "$file" .service.ts)
|
|
149
|
+
METHOD_COUNT=$(grep -c "async\s\+\w\+(.*)" "$file" || echo "0")
|
|
150
|
+
echo " $(basename "$file"): $METHOD_COUNT methods"
|
|
151
|
+
fi
|
|
152
|
+
done
|
|
153
|
+
echo ""
|
|
154
|
+
fi
|
|
155
|
+
|
|
156
|
+
echo "✅ Generated Code Analysis Complete!"
|
|
157
|
+
echo ""
|
|
158
|
+
echo "📝 Next Steps to Run Generated Code:"
|
|
159
|
+
echo " 1. cd generated/code"
|
|
160
|
+
echo " 2. npm install"
|
|
161
|
+
echo " 3. Set up database (Prisma: npx prisma generate && npx prisma migrate dev)"
|
|
162
|
+
echo " 4. Create server entry point (services/index.ts)"
|
|
163
|
+
echo " 5. npm run start:dev"
|
|
164
|
+
echo ""
|
|
165
|
+
echo "💡 Tip: See generated/code/compile.log for compilation details"
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# SpecVerse Hello World
|
|
2
|
+
# The simplest possible SpecVerse application with a view
|
|
3
|
+
#
|
|
4
|
+
# To use:
|
|
5
|
+
# 1. Run: npm run realize:all
|
|
6
|
+
# 2. Run: cd generated/code && npm install
|
|
7
|
+
# 3. Check generated/code/README.md for setup instructions
|
|
8
|
+
# 4. Run: npm run dev
|
|
9
|
+
# 5. Test: curl http://localhost:3000/api/greetings
|
|
10
|
+
|
|
11
|
+
components:
|
|
12
|
+
{{componentName}}:
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
description: "Hello World - The simplest SpecVerse application"
|
|
15
|
+
tags: ["hello-world", "starter", "minimal"]
|
|
16
|
+
|
|
17
|
+
models:
|
|
18
|
+
Greeting:
|
|
19
|
+
description: "A simple greeting message"
|
|
20
|
+
|
|
21
|
+
metadata:
|
|
22
|
+
id: uuid
|
|
23
|
+
audit: true
|
|
24
|
+
|
|
25
|
+
attributes:
|
|
26
|
+
message: String required default="Hello World"
|
|
27
|
+
language: String default="en" values=["en", "es", "fr", "de"]
|
|
28
|
+
|
|
29
|
+
controllers:
|
|
30
|
+
GreetingController:
|
|
31
|
+
model: Greeting
|
|
32
|
+
description: "Serves greeting messages"
|
|
33
|
+
|
|
34
|
+
cured:
|
|
35
|
+
create: {}
|
|
36
|
+
retrieve: {}
|
|
37
|
+
|
|
38
|
+
views:
|
|
39
|
+
GreetingView:
|
|
40
|
+
description: "Displays greeting messages"
|
|
41
|
+
model: Greeting
|
|
42
|
+
uiComponents:
|
|
43
|
+
GreetingDisplay: {}
|
|
44
|
+
LanguageSelector: {}
|
|
45
|
+
|
|
46
|
+
deployments:
|
|
47
|
+
development:
|
|
48
|
+
version: "1.0.0"
|
|
49
|
+
description: "Hello World development environment"
|
|
50
|
+
environment: "development"
|
|
51
|
+
|
|
52
|
+
instances:
|
|
53
|
+
controllers:
|
|
54
|
+
apiServer:
|
|
55
|
+
component: {{componentName}}
|
|
56
|
+
namespace: api
|
|
57
|
+
scale: 1
|
|
58
|
+
advertises: [api.*]
|
|
59
|
+
uses: [database.*]
|
|
60
|
+
|
|
61
|
+
storage:
|
|
62
|
+
mainDB:
|
|
63
|
+
component: {{componentName}}
|
|
64
|
+
namespace: data
|
|
65
|
+
type: relational
|
|
66
|
+
scale: 1
|
|
67
|
+
advertises: [persistence.*]
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# {{projectName}} - Frontend Development Guide
|
|
2
|
+
|
|
3
|
+
Frontend-only SpecVerse project for React SPA development.
|
|
4
|
+
|
|
5
|
+
## Project Type
|
|
6
|
+
|
|
7
|
+
**Frontend Only** - No backend generation
|
|
8
|
+
- React + TypeScript + Vite
|
|
9
|
+
- React Query for data fetching
|
|
10
|
+
- Connects to external API
|
|
11
|
+
- Standalone deployment structure
|
|
12
|
+
|
|
13
|
+
## Quick Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Generate frontend code
|
|
17
|
+
npm run realize:all
|
|
18
|
+
|
|
19
|
+
# Setup and run
|
|
20
|
+
cd generated/code
|
|
21
|
+
npm install
|
|
22
|
+
npm run dev
|
|
23
|
+
|
|
24
|
+
# Open browser
|
|
25
|
+
open http://localhost:5173
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## File Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
{{projectName}}/
|
|
32
|
+
├── specs/main.specly # UI specification
|
|
33
|
+
├── manifests/implementation.yaml # Frontend-only manifest
|
|
34
|
+
└── generated/code/ # Standalone React app
|
|
35
|
+
├── src/ # React components
|
|
36
|
+
├── index.html # HTML entry point
|
|
37
|
+
├── vite.config.ts # Vite configuration
|
|
38
|
+
└── package.json # Frontend dependencies
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Development Workflow
|
|
42
|
+
|
|
43
|
+
1. **Edit UI Spec**: Modify `specs/main.specly` (views and models)
|
|
44
|
+
2. **Regenerate**: Run `npm run realize:all`
|
|
45
|
+
3. **Configure API**: Set `VITE_API_BASE_URL` in `.env`
|
|
46
|
+
4. **Test**: Use dev server or connect to real API
|
|
47
|
+
|
|
48
|
+
## Key Features
|
|
49
|
+
|
|
50
|
+
- **Standalone Structure**: All code in root (no backend/ subdirectory)
|
|
51
|
+
- **External API**: Connects via environment variables
|
|
52
|
+
- **React Router**: Auto-generated routes from views
|
|
53
|
+
- **React Query**: Data fetching with caching
|
|
54
|
+
- **TypeScript**: Full type safety
|
|
55
|
+
|
|
56
|
+
## API Configuration
|
|
57
|
+
|
|
58
|
+
Set in `generated/code/.env`:
|
|
59
|
+
|
|
60
|
+
```env
|
|
61
|
+
VITE_API_BASE_URL=https://your-api.com
|
|
62
|
+
VITE_API_PREFIX=/api
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Deployment
|
|
66
|
+
|
|
67
|
+
This generates a standalone React SPA that can deploy to:
|
|
68
|
+
- Vercel, Netlify (static hosting)
|
|
69
|
+
- AWS S3 + CloudFront
|
|
70
|
+
- GitHub Pages
|
|
71
|
+
- Any static file server
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
For comprehensive SpecVerse guidance, see the main [SpecVerse CLAUDE.md](https://github.com/SpecVerse/specverse-lang/blob/main/CLAUDE.md)
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# {{projectName}} - React Frontend
|
|
2
|
+
|
|
3
|
+
A standalone React SPA built with SpecVerse. Perfect for JAMstack apps, connecting to external APIs, and frontend-first development.
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1. Configure your API endpoint
|
|
9
|
+
echo "VITE_API_BASE_URL=https://your-api.com" > generated/code/.env
|
|
10
|
+
|
|
11
|
+
# 2. Generate frontend code
|
|
12
|
+
npm run realize:all
|
|
13
|
+
|
|
14
|
+
# 3. Install dependencies
|
|
15
|
+
cd generated/code && npm install
|
|
16
|
+
|
|
17
|
+
# 4. Start development server
|
|
18
|
+
npm run dev
|
|
19
|
+
|
|
20
|
+
# 5. Open in browser
|
|
21
|
+
open http://localhost:5173
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 📁 Project Structure
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
{{projectName}}/
|
|
28
|
+
├── specs/
|
|
29
|
+
│ └── main.specly # UI specification
|
|
30
|
+
├── manifests/
|
|
31
|
+
│ └── implementation.yaml # Frontend-only manifest
|
|
32
|
+
├── generated/
|
|
33
|
+
│ └── code/ # Standalone React app
|
|
34
|
+
│ ├── src/
|
|
35
|
+
│ │ ├── App.tsx # Root component with routing
|
|
36
|
+
│ │ ├── main.tsx # React entry point
|
|
37
|
+
│ │ ├── components/ # View components
|
|
38
|
+
│ │ ├── hooks/ # React Query hooks
|
|
39
|
+
│ │ └── types/ # TypeScript types
|
|
40
|
+
│ ├── index.html # HTML entry point
|
|
41
|
+
│ ├── vite.config.ts # Vite configuration
|
|
42
|
+
│ └── package.json # Frontend dependencies
|
|
43
|
+
└── package.json # Workflow scripts
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 🛠️ Development Workflow
|
|
47
|
+
|
|
48
|
+
### 1. Modify Your UI
|
|
49
|
+
|
|
50
|
+
Edit `specs/main.specly` to define your views and models:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
models:
|
|
54
|
+
Product:
|
|
55
|
+
attributes:
|
|
56
|
+
name: String required
|
|
57
|
+
price: Decimal required
|
|
58
|
+
|
|
59
|
+
views:
|
|
60
|
+
ProductListView:
|
|
61
|
+
model: Product
|
|
62
|
+
components:
|
|
63
|
+
ProductGrid: {}
|
|
64
|
+
ProductFilters: {}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Regenerate Code
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run realize:all
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. Run Development Server
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cd generated/code
|
|
77
|
+
npm run dev
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The app will be available at `http://localhost:5173`
|
|
81
|
+
|
|
82
|
+
## 🌐 Connecting to Your API
|
|
83
|
+
|
|
84
|
+
### Environment Configuration
|
|
85
|
+
|
|
86
|
+
Create `.env` in `generated/code/`:
|
|
87
|
+
|
|
88
|
+
```env
|
|
89
|
+
# Required: Your backend API URL
|
|
90
|
+
VITE_API_BASE_URL=https://api.example.com
|
|
91
|
+
|
|
92
|
+
# Optional: API path prefix
|
|
93
|
+
VITE_API_PREFIX=/api
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Supported API Backends
|
|
97
|
+
|
|
98
|
+
This frontend can connect to:
|
|
99
|
+
- **SpecVerse Backend**: Generated with backend-only template
|
|
100
|
+
- **Existing REST APIs**: Any REST API with JSON responses
|
|
101
|
+
- **Third-Party APIs**: External services (with CORS configured)
|
|
102
|
+
- **Serverless Functions**: AWS Lambda, Vercel Functions, etc.
|
|
103
|
+
|
|
104
|
+
### API Client
|
|
105
|
+
|
|
106
|
+
The generated code uses React Query for data fetching:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// Auto-generated hook
|
|
110
|
+
import { useProduct } from './hooks/useProduct';
|
|
111
|
+
|
|
112
|
+
function ProductDetail({ id }: { id: string }) {
|
|
113
|
+
const { data, isLoading } = useProduct(id);
|
|
114
|
+
|
|
115
|
+
if (isLoading) return <div>Loading...</div>;
|
|
116
|
+
return <div>{data.name}</div>;
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 🧪 Testing
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Run tests
|
|
124
|
+
cd generated/code && npm test
|
|
125
|
+
|
|
126
|
+
# Type checking
|
|
127
|
+
npm run typecheck
|
|
128
|
+
|
|
129
|
+
# Linting
|
|
130
|
+
npm run lint
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## 📦 Deployment
|
|
134
|
+
|
|
135
|
+
### Build for Production
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
cd generated/code
|
|
139
|
+
npm run build
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
This creates an optimized build in `dist/`.
|
|
143
|
+
|
|
144
|
+
### Deployment Options
|
|
145
|
+
|
|
146
|
+
The generated frontend can be deployed to:
|
|
147
|
+
|
|
148
|
+
- **Vercel**: `vercel deploy`
|
|
149
|
+
- **Netlify**: Connect to git repository
|
|
150
|
+
- **AWS S3 + CloudFront**: Static site hosting
|
|
151
|
+
- **GitHub Pages**: Static site hosting
|
|
152
|
+
- **Docker**: Serve with nginx
|
|
153
|
+
|
|
154
|
+
### Environment Variables
|
|
155
|
+
|
|
156
|
+
Set these in your deployment platform:
|
|
157
|
+
|
|
158
|
+
```env
|
|
159
|
+
VITE_API_BASE_URL=https://your-production-api.com
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## 🎨 Customization
|
|
163
|
+
|
|
164
|
+
### Styling
|
|
165
|
+
|
|
166
|
+
The generated app uses Tailwind CSS by default. Customize in:
|
|
167
|
+
- `generated/code/tailwind.config.js`
|
|
168
|
+
- `generated/code/src/index.css`
|
|
169
|
+
|
|
170
|
+
### Routing
|
|
171
|
+
|
|
172
|
+
Routes are auto-generated from views. Customize in:
|
|
173
|
+
- `generated/code/src/App.tsx`
|
|
174
|
+
|
|
175
|
+
### API Client
|
|
176
|
+
|
|
177
|
+
API configuration in:
|
|
178
|
+
- `generated/code/src/hooks/*` - Generated React Query hooks
|
|
179
|
+
- `generated/code/vite.config.ts` - Proxy configuration for development
|
|
180
|
+
|
|
181
|
+
## 📚 Documentation
|
|
182
|
+
|
|
183
|
+
### Generate UI Documentation
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npm run generate:docs
|
|
187
|
+
npm run generate:diagrams
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 🎯 Use Cases
|
|
191
|
+
|
|
192
|
+
This frontend-only template is ideal for:
|
|
193
|
+
|
|
194
|
+
- **JAMstack Applications**: Static frontend + API backend
|
|
195
|
+
- **Micro-frontends**: Independent frontend deployment
|
|
196
|
+
- **Mobile Web Apps**: PWAs connecting to existing APIs
|
|
197
|
+
- **Prototyping**: Quick UI development against mock/existing APIs
|
|
198
|
+
- **Frontend-First Development**: Design UI before backend is ready
|
|
199
|
+
|
|
200
|
+
## 🔗 Example Configurations
|
|
201
|
+
|
|
202
|
+
### Connect to SpecVerse Backend
|
|
203
|
+
|
|
204
|
+
```env
|
|
205
|
+
# Local development
|
|
206
|
+
VITE_API_BASE_URL=http://localhost:3000
|
|
207
|
+
|
|
208
|
+
# Production
|
|
209
|
+
VITE_API_BASE_URL=https://api.yourapp.com
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Connect to Third-Party API
|
|
213
|
+
|
|
214
|
+
```env
|
|
215
|
+
# JSONPlaceholder (for testing)
|
|
216
|
+
VITE_API_BASE_URL=https://jsonplaceholder.typicode.com
|
|
217
|
+
|
|
218
|
+
# Your API
|
|
219
|
+
VITE_API_BASE_URL=https://api.stripe.com
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## 📖 Learn More
|
|
223
|
+
|
|
224
|
+
- [SpecVerse Documentation](https://specverse.dev)
|
|
225
|
+
- [React Documentation](https://react.dev)
|
|
226
|
+
- [Vite Documentation](https://vitejs.dev)
|
|
227
|
+
- [React Query Documentation](https://tanstack.com/query)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
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
|