@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,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance Factory Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads instance factory definitions from YAML files
|
|
5
|
+
* and validates them against the JSON Schema.
|
|
6
|
+
*/
|
|
7
|
+
import { readFile } from 'fs/promises';
|
|
8
|
+
import { glob } from 'glob';
|
|
9
|
+
import path from 'path';
|
|
10
|
+
import yaml from 'yaml';
|
|
11
|
+
import AjvModule from 'ajv';
|
|
12
|
+
import addFormatsModule from 'ajv-formats';
|
|
13
|
+
const Ajv = AjvModule.default || AjvModule;
|
|
14
|
+
const addFormats = addFormatsModule.default || addFormatsModule;
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
16
|
+
import { dirname } from 'path';
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = dirname(__filename);
|
|
19
|
+
// Load JSON Schema for validation
|
|
20
|
+
let instanceFactorySchema;
|
|
21
|
+
async function loadSchema() {
|
|
22
|
+
if (!instanceFactorySchema) {
|
|
23
|
+
// Schema was consolidated into SPECVERSE-SCHEMA.json in Phase 2
|
|
24
|
+
// Extract InstanceFactoryDefinition from the consolidated schema
|
|
25
|
+
const schemaPath = path.join(__dirname, '../../schema/SPECVERSE-SCHEMA.json');
|
|
26
|
+
const schemaContent = await readFile(schemaPath, 'utf-8');
|
|
27
|
+
const fullSchema = JSON.parse(schemaContent);
|
|
28
|
+
// Get the InstanceFactoryDefinition from $defs
|
|
29
|
+
instanceFactorySchema = fullSchema.$defs?.InstanceFactoryDefinition;
|
|
30
|
+
if (!instanceFactorySchema) {
|
|
31
|
+
throw new Error('InstanceFactoryDefinition not found in SPECVERSE-SCHEMA.json');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return instanceFactorySchema;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Load a single instance factory from a YAML file
|
|
38
|
+
*/
|
|
39
|
+
export async function loadInstanceFactory(filePath, options = {}) {
|
|
40
|
+
const validate = options.validate !== false;
|
|
41
|
+
// Read and parse YAML
|
|
42
|
+
const content = await readFile(filePath, 'utf-8');
|
|
43
|
+
const parsed = yaml.parse(content);
|
|
44
|
+
// Validate against schema if requested
|
|
45
|
+
if (validate) {
|
|
46
|
+
const schema = await loadSchema();
|
|
47
|
+
// Skip validation if no schema available (schema was consolidated)
|
|
48
|
+
if (schema) {
|
|
49
|
+
const ajv = new Ajv({ allErrors: true, strict: false });
|
|
50
|
+
addFormats(ajv); // Add support for format validators like "uri"
|
|
51
|
+
const validateFn = ajv.compile(schema);
|
|
52
|
+
if (!validateFn(parsed)) {
|
|
53
|
+
const errors = validateFn.errors?.map((err) => {
|
|
54
|
+
const path = err.instancePath || '/';
|
|
55
|
+
return `${path}: ${err.message}`;
|
|
56
|
+
}) || ['Unknown validation error'];
|
|
57
|
+
throw new Error(`Instance factory validation failed for ${filePath}:\n` +
|
|
58
|
+
errors.map((e) => ` - ${e}`).join('\n'));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const warnings = [];
|
|
63
|
+
// Check for optional but recommended fields
|
|
64
|
+
if (!parsed.description) {
|
|
65
|
+
warnings.push('Missing recommended field: description');
|
|
66
|
+
}
|
|
67
|
+
if (!parsed.metadata?.author) {
|
|
68
|
+
warnings.push('Missing recommended metadata: author');
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
type: parsed,
|
|
72
|
+
filePath,
|
|
73
|
+
warnings: warnings.length > 0 ? warnings : undefined
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Load all instance factories from a directory
|
|
78
|
+
*/
|
|
79
|
+
export async function loadInstanceFactories(options) {
|
|
80
|
+
const { baseDir, pattern = '**/*.yaml', validate = true, ignoreInvalid = false } = options;
|
|
81
|
+
const types = [];
|
|
82
|
+
const errors = [];
|
|
83
|
+
// Find all YAML files matching the pattern
|
|
84
|
+
const files = await glob(pattern, {
|
|
85
|
+
cwd: baseDir,
|
|
86
|
+
absolute: true,
|
|
87
|
+
nodir: true
|
|
88
|
+
});
|
|
89
|
+
// Load each file
|
|
90
|
+
for (const filePath of files) {
|
|
91
|
+
try {
|
|
92
|
+
const result = await loadInstanceFactory(filePath, { validate });
|
|
93
|
+
types.push(result);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
97
|
+
if (ignoreInvalid) {
|
|
98
|
+
errors.push({
|
|
99
|
+
filePath,
|
|
100
|
+
errors: [errorMessage]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return { types, errors };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Load instance factories from multiple directories
|
|
112
|
+
*
|
|
113
|
+
* Directories are searched in order, with earlier directories
|
|
114
|
+
* taking precedence for duplicate type names.
|
|
115
|
+
*/
|
|
116
|
+
export async function loadFromMultipleSources(sources, options = {}) {
|
|
117
|
+
const allTypes = [];
|
|
118
|
+
const allErrors = [];
|
|
119
|
+
const seenTypes = new Set();
|
|
120
|
+
for (const source of sources) {
|
|
121
|
+
const result = await loadInstanceFactories({
|
|
122
|
+
baseDir: source.path,
|
|
123
|
+
pattern: source.pattern,
|
|
124
|
+
validate: options.validate,
|
|
125
|
+
ignoreInvalid: options.ignoreInvalid
|
|
126
|
+
});
|
|
127
|
+
// Filter out duplicate types (first source wins)
|
|
128
|
+
for (const loadResult of result.types) {
|
|
129
|
+
const typeName = loadResult.type.name;
|
|
130
|
+
if (!seenTypes.has(typeName)) {
|
|
131
|
+
seenTypes.add(typeName);
|
|
132
|
+
allTypes.push(loadResult);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Add warning about duplicate
|
|
136
|
+
const existing = allTypes.find(t => t.type.name === typeName);
|
|
137
|
+
if (existing) {
|
|
138
|
+
existing.warnings = existing.warnings || [];
|
|
139
|
+
existing.warnings.push(`Duplicate type "${typeName}" found in ${loadResult.filePath} (ignored)`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
allErrors.push(...result.errors);
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
types: allTypes,
|
|
147
|
+
errors: allErrors
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/library/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance Factory Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves deployment capabilities to instance factories
|
|
5
|
+
* using manifest configuration and capability mappings.
|
|
6
|
+
*/
|
|
7
|
+
import { InstanceFactoryLibrary } from './library.js';
|
|
8
|
+
import type { CapabilityMapping, InstanceMapping, DefaultMappings, ResolvedImplementation } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resolver configuration (v3.3 hybrid mapping only)
|
|
11
|
+
*/
|
|
12
|
+
export interface ResolverConfig {
|
|
13
|
+
/** v3.3 Hybrid Mapping System */
|
|
14
|
+
defaultMappings?: DefaultMappings;
|
|
15
|
+
capabilityMappings?: CapabilityMapping[];
|
|
16
|
+
instanceMappings?: InstanceMapping[];
|
|
17
|
+
/** Global configuration overrides */
|
|
18
|
+
globalConfiguration?: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolution context for a deployment instance
|
|
22
|
+
*/
|
|
23
|
+
export interface ResolutionContext {
|
|
24
|
+
/** Deployment instance being resolved */
|
|
25
|
+
instance: any;
|
|
26
|
+
/** Component name */
|
|
27
|
+
componentName?: string;
|
|
28
|
+
/** Environment name */
|
|
29
|
+
environment?: string;
|
|
30
|
+
/** Additional context properties */
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolution error
|
|
35
|
+
*/
|
|
36
|
+
export declare class ResolutionError extends Error {
|
|
37
|
+
capability: string;
|
|
38
|
+
instance?: any | undefined;
|
|
39
|
+
constructor(message: string, capability: string, instance?: any | undefined);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resolver for mapping capabilities to instance factories
|
|
43
|
+
*/
|
|
44
|
+
export declare class InstanceFactoryResolver {
|
|
45
|
+
private library;
|
|
46
|
+
private validator;
|
|
47
|
+
private config;
|
|
48
|
+
constructor(library: InstanceFactoryLibrary, config?: ResolverConfig);
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a single capability to an instance factory (v3.3 hybrid mapping)
|
|
51
|
+
*
|
|
52
|
+
* Resolution priority:
|
|
53
|
+
* 1. Instance-specific mapping (instanceMappings) - highest priority
|
|
54
|
+
* 2. Capability-based mapping (capabilityMappings) - medium priority
|
|
55
|
+
* 3. Default category mapping (defaultMappings) - lowest priority
|
|
56
|
+
*/
|
|
57
|
+
resolveCapability(capability: string, context?: ResolutionContext): ResolvedImplementation;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve all capabilities for a deployment instance
|
|
60
|
+
*/
|
|
61
|
+
resolveForInstance(instance: any, context?: ResolutionContext): ResolvedImplementation[];
|
|
62
|
+
/**
|
|
63
|
+
* Resolve all capabilities for a deployment
|
|
64
|
+
*/
|
|
65
|
+
resolveForDeployment(deployment: any, context?: Omit<ResolutionContext, 'instance'>): Map<string, ResolvedImplementation[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Find capability mapping that matches the given capability
|
|
68
|
+
*
|
|
69
|
+
* Supports wildcard patterns (e.g., "api.*" matches "api.rest", "api.graphql")
|
|
70
|
+
*/
|
|
71
|
+
private findCapabilityMapping;
|
|
72
|
+
/**
|
|
73
|
+
* Extract capabilities from a deployment instance
|
|
74
|
+
*/
|
|
75
|
+
private getInstanceCapabilities;
|
|
76
|
+
/**
|
|
77
|
+
* Apply template overrides to an instance factory
|
|
78
|
+
*/
|
|
79
|
+
private applyTemplateOverrides;
|
|
80
|
+
/**
|
|
81
|
+
* Infer instance category from capability pattern (v3.3)
|
|
82
|
+
*
|
|
83
|
+
* Used as fallback when instance doesn't have explicit category
|
|
84
|
+
*/
|
|
85
|
+
private inferCategoryFromCapability;
|
|
86
|
+
/**
|
|
87
|
+
* Get configuration summary for debugging
|
|
88
|
+
*/
|
|
89
|
+
getConfigSummary(): {
|
|
90
|
+
capabilityMappings: number;
|
|
91
|
+
instanceMappings: number;
|
|
92
|
+
defaultMappings: number;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a resolver from manifest data (v3.3 hybrid mapping only)
|
|
97
|
+
*/
|
|
98
|
+
export declare function createResolver(library: InstanceFactoryLibrary, manifest: {
|
|
99
|
+
defaultMappings?: DefaultMappings;
|
|
100
|
+
capabilityMappings?: CapabilityMapping[];
|
|
101
|
+
instanceMappings?: InstanceMapping[];
|
|
102
|
+
configuration?: Record<string, any>;
|
|
103
|
+
}): InstanceFactoryResolver;
|
|
104
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/library/resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,QAAQ,EAAE,GAAG,CAAC;IAEd,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,UAAU,EAAE,MAAM;IAClB,QAAQ,CAAC,EAAE,GAAG;gBAFrB,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,GAAG,YAAA;CAKxB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,MAAM,CAAiB;gBAEnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,GAAE,cAAmB;IAMxE;;;;;;;OAOG;IACH,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,sBAAsB;IA+FzB;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,EAAE;IAuDxF;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAkB3H;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAwCnC;;OAEG;IACH,gBAAgB,IAAI;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB;CAOF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE;IACR,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC,GACA,uBAAuB,CAOzB"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance Factory Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves deployment capabilities to instance factories
|
|
5
|
+
* using manifest configuration and capability mappings.
|
|
6
|
+
*/
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { InstanceFactoryValidator } from './validator.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resolution error
|
|
11
|
+
*/
|
|
12
|
+
export class ResolutionError extends Error {
|
|
13
|
+
capability;
|
|
14
|
+
instance;
|
|
15
|
+
constructor(message, capability, instance) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.capability = capability;
|
|
18
|
+
this.instance = instance;
|
|
19
|
+
this.name = 'ResolutionError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolver for mapping capabilities to instance factories
|
|
24
|
+
*/
|
|
25
|
+
export class InstanceFactoryResolver {
|
|
26
|
+
library;
|
|
27
|
+
validator;
|
|
28
|
+
config;
|
|
29
|
+
constructor(library, config = {}) {
|
|
30
|
+
this.library = library;
|
|
31
|
+
this.validator = new InstanceFactoryValidator();
|
|
32
|
+
this.config = config;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve a single capability to an instance factory (v3.3 hybrid mapping)
|
|
36
|
+
*
|
|
37
|
+
* Resolution priority:
|
|
38
|
+
* 1. Instance-specific mapping (instanceMappings) - highest priority
|
|
39
|
+
* 2. Capability-based mapping (capabilityMappings) - medium priority
|
|
40
|
+
* 3. Default category mapping (defaultMappings) - lowest priority
|
|
41
|
+
*/
|
|
42
|
+
resolveCapability(capability, context) {
|
|
43
|
+
let factoryName;
|
|
44
|
+
let mappingConfig;
|
|
45
|
+
let mappingVersion;
|
|
46
|
+
// PRIORITY 1: Check for instance-specific mapping
|
|
47
|
+
if (context?.instance?.name && this.config.instanceMappings) {
|
|
48
|
+
const instanceMapping = this.config.instanceMappings.find(m => m.instanceName === context.instance.name);
|
|
49
|
+
if (instanceMapping) {
|
|
50
|
+
factoryName = instanceMapping.instanceFactory;
|
|
51
|
+
mappingConfig = instanceMapping.configuration;
|
|
52
|
+
mappingVersion = instanceMapping.version;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// PRIORITY 2: Check for capability-based mapping
|
|
56
|
+
if (!factoryName) {
|
|
57
|
+
const capabilityMapping = this.findCapabilityMapping(capability);
|
|
58
|
+
if (capabilityMapping) {
|
|
59
|
+
factoryName = capabilityMapping.instanceFactory;
|
|
60
|
+
mappingConfig = capabilityMapping.configuration;
|
|
61
|
+
mappingVersion = capabilityMapping.version;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// PRIORITY 3: Check for default category mapping
|
|
65
|
+
if (!factoryName && context?.instance && this.config.defaultMappings) {
|
|
66
|
+
const instanceCategory = context.instance.category || this.inferCategoryFromCapability(capability);
|
|
67
|
+
if (instanceCategory) {
|
|
68
|
+
factoryName = this.config.defaultMappings[instanceCategory];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// If still no factory found, throw error
|
|
72
|
+
if (!factoryName) {
|
|
73
|
+
throw new ResolutionError(`No instance factory mapping found for capability "${capability}".\n` +
|
|
74
|
+
` Instance: ${context?.instance?.name || 'unknown'}\n` +
|
|
75
|
+
` Tried: instanceMappings, capabilityMappings, defaultMappings`, capability, context?.instance);
|
|
76
|
+
}
|
|
77
|
+
// Resolve instance factory by name
|
|
78
|
+
const loadResult = this.library.resolveWithMetadata(factoryName);
|
|
79
|
+
if (!loadResult) {
|
|
80
|
+
throw new ResolutionError(`Instance factory "${factoryName}" not found in library`, capability, context?.instance);
|
|
81
|
+
}
|
|
82
|
+
const factory = loadResult.type;
|
|
83
|
+
// Get package root (3 levels up from libs/instance-factories/backend)
|
|
84
|
+
const basePath = path.resolve(path.dirname(loadResult.filePath), '../../..');
|
|
85
|
+
// Merge configuration in order of precedence:
|
|
86
|
+
// 1. Instance factory defaults
|
|
87
|
+
// 2. Global configuration
|
|
88
|
+
// 3. Mapping configuration overrides
|
|
89
|
+
const configuration = {
|
|
90
|
+
...(factory.configuration || {}),
|
|
91
|
+
...(this.config.globalConfiguration || {}),
|
|
92
|
+
...(mappingConfig || {})
|
|
93
|
+
};
|
|
94
|
+
// Validate the resolved implementation
|
|
95
|
+
const validationResult = this.validator.validateComplete(factory, {
|
|
96
|
+
specverseVersion: process.env.SPECVERSE_VERSION || '3.3.0'
|
|
97
|
+
});
|
|
98
|
+
if (!validationResult.compatible) {
|
|
99
|
+
throw new ResolutionError(`Instance factory "${factory.name}" validation failed:\n` +
|
|
100
|
+
(validationResult.errors || []).map(e => ` - ${e}`).join('\n'), capability, context?.instance);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
capability,
|
|
104
|
+
instanceFactory: factory,
|
|
105
|
+
instance: context?.instance,
|
|
106
|
+
configuration,
|
|
107
|
+
basePath
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resolve all capabilities for a deployment instance
|
|
112
|
+
*/
|
|
113
|
+
resolveForInstance(instance, context) {
|
|
114
|
+
const resolved = [];
|
|
115
|
+
// Get capabilities from instance
|
|
116
|
+
const capabilities = this.getInstanceCapabilities(instance);
|
|
117
|
+
// Resolve each capability
|
|
118
|
+
for (const capability of capabilities) {
|
|
119
|
+
try {
|
|
120
|
+
const resolution = this.resolveCapability(capability, {
|
|
121
|
+
...context,
|
|
122
|
+
instance
|
|
123
|
+
});
|
|
124
|
+
resolved.push(resolution);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
// Re-throw with additional context
|
|
128
|
+
if (error instanceof ResolutionError) {
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
throw new ResolutionError(`Failed to resolve capability "${capability}": ${error instanceof Error ? error.message : String(error)}`, capability, instance);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Validate dependencies between resolved implementations
|
|
135
|
+
const depResult = this.validator.validateDependencies(resolved);
|
|
136
|
+
if (!depResult.satisfied) {
|
|
137
|
+
const errors = [];
|
|
138
|
+
if (depResult.missing) {
|
|
139
|
+
errors.push(...depResult.missing);
|
|
140
|
+
}
|
|
141
|
+
if (depResult.conflicts) {
|
|
142
|
+
for (const conflict of depResult.conflicts) {
|
|
143
|
+
errors.push(`Conflict for capability "${conflict.capability}": ` +
|
|
144
|
+
`required by "${conflict.required}", available in "${conflict.available}"`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
throw new ResolutionError(`Dependency validation failed:\n${errors.map(e => ` - ${e}`).join('\n')}`, 'multiple', instance);
|
|
148
|
+
}
|
|
149
|
+
return resolved;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolve all capabilities for a deployment
|
|
153
|
+
*/
|
|
154
|
+
resolveForDeployment(deployment, context) {
|
|
155
|
+
const resolvedByInstance = new Map();
|
|
156
|
+
// Get all instances from deployment
|
|
157
|
+
const instances = deployment.instances || {};
|
|
158
|
+
for (const [instanceName, instance] of Object.entries(instances)) {
|
|
159
|
+
const resolved = this.resolveForInstance(instance, {
|
|
160
|
+
...context,
|
|
161
|
+
instance
|
|
162
|
+
});
|
|
163
|
+
resolvedByInstance.set(instanceName, resolved);
|
|
164
|
+
}
|
|
165
|
+
return resolvedByInstance;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Find capability mapping that matches the given capability
|
|
169
|
+
*
|
|
170
|
+
* Supports wildcard patterns (e.g., "api.*" matches "api.rest", "api.graphql")
|
|
171
|
+
*/
|
|
172
|
+
findCapabilityMapping(capability) {
|
|
173
|
+
if (!this.config.capabilityMappings) {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
// First try exact match
|
|
177
|
+
for (const mapping of this.config.capabilityMappings) {
|
|
178
|
+
if (mapping.capability === capability) {
|
|
179
|
+
return mapping;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Then try wildcard match
|
|
183
|
+
for (const mapping of this.config.capabilityMappings) {
|
|
184
|
+
if (mapping.capability.includes('*')) {
|
|
185
|
+
const pattern = mapping.capability.replace(/\*/g, '.*');
|
|
186
|
+
if (new RegExp(`^${pattern}$`).test(capability)) {
|
|
187
|
+
return mapping;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Extract capabilities from a deployment instance
|
|
195
|
+
*/
|
|
196
|
+
getInstanceCapabilities(instance) {
|
|
197
|
+
const capabilities = [];
|
|
198
|
+
// From "advertises" field
|
|
199
|
+
if (instance.advertises) {
|
|
200
|
+
if (Array.isArray(instance.advertises)) {
|
|
201
|
+
capabilities.push(...instance.advertises);
|
|
202
|
+
}
|
|
203
|
+
else if (typeof instance.advertises === 'string') {
|
|
204
|
+
capabilities.push(instance.advertises);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// From "capabilities" field (alternative format)
|
|
208
|
+
if (instance.capabilities) {
|
|
209
|
+
if (Array.isArray(instance.capabilities)) {
|
|
210
|
+
capabilities.push(...instance.capabilities);
|
|
211
|
+
}
|
|
212
|
+
else if (typeof instance.capabilities === 'string') {
|
|
213
|
+
capabilities.push(instance.capabilities);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return [...new Set(capabilities)]; // Remove duplicates
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Apply template overrides to an instance factory
|
|
220
|
+
*/
|
|
221
|
+
applyTemplateOverrides(factory, overrides) {
|
|
222
|
+
const newCodeTemplates = { ...factory.codeTemplates };
|
|
223
|
+
for (const [templateName, templatePath] of Object.entries(overrides)) {
|
|
224
|
+
if (newCodeTemplates[templateName]) {
|
|
225
|
+
newCodeTemplates[templateName] = {
|
|
226
|
+
...newCodeTemplates[templateName],
|
|
227
|
+
template: templatePath
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
...factory,
|
|
233
|
+
codeTemplates: newCodeTemplates
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Infer instance category from capability pattern (v3.3)
|
|
238
|
+
*
|
|
239
|
+
* Used as fallback when instance doesn't have explicit category
|
|
240
|
+
*/
|
|
241
|
+
inferCategoryFromCapability(capability) {
|
|
242
|
+
const capabilityToCategoryMap = {
|
|
243
|
+
'api.rest': 'controller',
|
|
244
|
+
'api.graphql': 'controller',
|
|
245
|
+
'api.websocket': 'controller',
|
|
246
|
+
'service': 'service',
|
|
247
|
+
'validation': 'service',
|
|
248
|
+
'sdk': 'view',
|
|
249
|
+
'ui': 'view',
|
|
250
|
+
'frontend': 'view',
|
|
251
|
+
'storage': 'storage',
|
|
252
|
+
'database': 'storage',
|
|
253
|
+
'cache': 'storage',
|
|
254
|
+
'auth': 'security',
|
|
255
|
+
'security': 'security',
|
|
256
|
+
'infrastructure': 'infrastructure',
|
|
257
|
+
'docker': 'infrastructure',
|
|
258
|
+
'kubernetes': 'infrastructure',
|
|
259
|
+
'monitoring': 'monitoring',
|
|
260
|
+
'logging': 'monitoring',
|
|
261
|
+
'messaging': 'communication',
|
|
262
|
+
'queue': 'communication',
|
|
263
|
+
'pubsub': 'communication'
|
|
264
|
+
};
|
|
265
|
+
// Try exact match
|
|
266
|
+
if (capabilityToCategoryMap[capability]) {
|
|
267
|
+
return capabilityToCategoryMap[capability];
|
|
268
|
+
}
|
|
269
|
+
// Try prefix match
|
|
270
|
+
for (const [capPrefix, category] of Object.entries(capabilityToCategoryMap)) {
|
|
271
|
+
if (capability.startsWith(capPrefix + '.')) {
|
|
272
|
+
return category;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get configuration summary for debugging
|
|
279
|
+
*/
|
|
280
|
+
getConfigSummary() {
|
|
281
|
+
return {
|
|
282
|
+
capabilityMappings: this.config.capabilityMappings?.length || 0,
|
|
283
|
+
instanceMappings: this.config.instanceMappings?.length || 0,
|
|
284
|
+
defaultMappings: Object.keys(this.config.defaultMappings || {}).length
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Create a resolver from manifest data (v3.3 hybrid mapping only)
|
|
290
|
+
*/
|
|
291
|
+
export function createResolver(library, manifest) {
|
|
292
|
+
return new InstanceFactoryResolver(library, {
|
|
293
|
+
defaultMappings: manifest.defaultMappings,
|
|
294
|
+
capabilityMappings: manifest.capabilityMappings,
|
|
295
|
+
instanceMappings: manifest.instanceMappings,
|
|
296
|
+
globalConfiguration: manifest.configuration
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/library/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance Factory Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates instance factory compatibility and requirements.
|
|
5
|
+
*/
|
|
6
|
+
import type { InstanceFactory, ResolvedImplementation } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Compatibility validation result
|
|
9
|
+
*/
|
|
10
|
+
export interface CompatibilityResult {
|
|
11
|
+
/** Whether the instance factory is compatible */
|
|
12
|
+
compatible: boolean;
|
|
13
|
+
/** Error messages if incompatible */
|
|
14
|
+
errors?: string[];
|
|
15
|
+
/** Warning messages */
|
|
16
|
+
warnings?: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Dependency resolution result
|
|
20
|
+
*/
|
|
21
|
+
export interface DependencyResolutionResult {
|
|
22
|
+
/** Whether all dependencies are satisfied */
|
|
23
|
+
satisfied: boolean;
|
|
24
|
+
/** Missing dependencies */
|
|
25
|
+
missing?: string[];
|
|
26
|
+
/** Version conflicts */
|
|
27
|
+
conflicts?: Array<{
|
|
28
|
+
capability: string;
|
|
29
|
+
required: string;
|
|
30
|
+
available?: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validator for instance factory compatibility
|
|
35
|
+
*/
|
|
36
|
+
export declare class InstanceFactoryValidator {
|
|
37
|
+
/**
|
|
38
|
+
* Validate instance factory against SpecVerse version
|
|
39
|
+
*/
|
|
40
|
+
validateCompatibility(factory: InstanceFactory, options?: {
|
|
41
|
+
specverseVersion?: string;
|
|
42
|
+
nodeVersion?: string;
|
|
43
|
+
}): CompatibilityResult;
|
|
44
|
+
/**
|
|
45
|
+
* Validate that all required capabilities are provided
|
|
46
|
+
*/
|
|
47
|
+
validateCapabilities(factory: InstanceFactory, availableCapabilities: string[]): CompatibilityResult;
|
|
48
|
+
/**
|
|
49
|
+
* Validate dependencies between resolved implementations
|
|
50
|
+
*/
|
|
51
|
+
validateDependencies(resolved: ResolvedImplementation[]): DependencyResolutionResult;
|
|
52
|
+
/**
|
|
53
|
+
* Validate that an instance factory can extend another
|
|
54
|
+
*/
|
|
55
|
+
validateExtension(child: InstanceFactory, parent: InstanceFactory): CompatibilityResult;
|
|
56
|
+
/**
|
|
57
|
+
* Validate complete instance factory
|
|
58
|
+
*/
|
|
59
|
+
validateComplete(factory: InstanceFactory, options?: {
|
|
60
|
+
specverseVersion?: string;
|
|
61
|
+
nodeVersion?: string;
|
|
62
|
+
availableCapabilities?: string[];
|
|
63
|
+
}): CompatibilityResult;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/library/validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,UAAU,EAAE,OAAO,CAAC;IAEpB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IAEnB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC;;OAEG;IACH,qBAAqB,CACnB,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,mBAAmB;IA2EtB;;OAEG;IACH,oBAAoB,CAClB,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,MAAM,EAAE,GAC9B,mBAAmB;IAuCtB;;OAEG;IACH,oBAAoB,CAClB,QAAQ,EAAE,sBAAsB,EAAE,GACjC,0BAA0B;IAyD7B;;OAEG;IACH,iBAAiB,CACf,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,GACtB,mBAAmB;IAmCtB;;OAEG;IACH,gBAAgB,CACd,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,GACL,mBAAmB;CAsBvB"}
|