create-relkit 0.6.0 → 0.7.1
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/dist/add-name.d.ts +8 -1
- package/dist/add-name.d.ts.map +1 -1
- package/dist/add-name.js +5 -1
- package/dist/add-name.js.map +1 -1
- package/dist/add-options-parser.d.ts +49 -0
- package/dist/add-options-parser.d.ts.map +1 -1
- package/dist/add-options-parser.js +52 -0
- package/dist/add-options-parser.js.map +1 -1
- package/dist/add-options-resource.d.ts +8 -0
- package/dist/add-options-resource.d.ts.map +1 -1
- package/dist/add-options-resource.js +8 -0
- package/dist/add-options-resource.js.map +1 -1
- package/dist/add-options.d.ts +6 -1
- package/dist/add-options.d.ts.map +1 -1
- package/dist/add-options.js +48 -1
- package/dist/add-options.js.map +1 -1
- package/dist/add-output.d.ts +10 -0
- package/dist/add-output.d.ts.map +1 -1
- package/dist/add-output.js +21 -0
- package/dist/add-output.js.map +1 -1
- package/dist/add-plan.d.ts +25 -0
- package/dist/add-plan.d.ts.map +1 -1
- package/dist/add-plan.js +91 -57
- package/dist/add-plan.js.map +1 -1
- package/dist/add-plan.types.d.ts +13 -0
- package/dist/add-plan.types.d.ts.map +1 -0
- package/dist/add-plan.types.js +2 -0
- package/dist/add-plan.types.js.map +1 -0
- package/dist/add-resolution-discovery.d.ts +56 -2
- package/dist/add-resolution-discovery.d.ts.map +1 -1
- package/dist/add-resolution-discovery.js +74 -10
- package/dist/add-resolution-discovery.js.map +1 -1
- package/dist/add-resolution-prompt.d.ts +46 -0
- package/dist/add-resolution-prompt.d.ts.map +1 -0
- package/dist/add-resolution-prompt.js +88 -0
- package/dist/add-resolution-prompt.js.map +1 -0
- package/dist/add-resolution-state-base.d.ts +112 -0
- package/dist/add-resolution-state-base.d.ts.map +1 -0
- package/dist/add-resolution-state-base.js +141 -0
- package/dist/add-resolution-state-base.js.map +1 -0
- package/dist/add-resolution-state.d.ts +66 -11
- package/dist/add-resolution-state.d.ts.map +1 -1
- package/dist/add-resolution-state.js +81 -69
- package/dist/add-resolution-state.js.map +1 -1
- package/dist/add-resolution-state.types.d.ts +6 -0
- package/dist/add-resolution-state.types.d.ts.map +1 -0
- package/dist/add-resolution-state.types.js +2 -0
- package/dist/add-resolution-state.types.js.map +1 -0
- package/dist/add-resolver-domain-execution.d.ts +35 -0
- package/dist/add-resolver-domain-execution.d.ts.map +1 -0
- package/dist/add-resolver-domain-execution.js +101 -0
- package/dist/add-resolver-domain-execution.js.map +1 -0
- package/dist/add-resolver-domain-input.d.ts +30 -0
- package/dist/add-resolver-domain-input.d.ts.map +1 -0
- package/dist/add-resolver-domain-input.js +83 -0
- package/dist/add-resolver-domain-input.js.map +1 -0
- package/dist/add-resolver-domain.d.ts +17 -0
- package/dist/add-resolver-domain.d.ts.map +1 -1
- package/dist/add-resolver-domain.js +36 -136
- package/dist/add-resolver-domain.js.map +1 -1
- package/dist/add-resolver-platform.d.ts +17 -0
- package/dist/add-resolver-platform.d.ts.map +1 -1
- package/dist/add-resolver-platform.js +83 -36
- package/dist/add-resolver-platform.js.map +1 -1
- package/dist/add-resolver-provider.d.ts +15 -0
- package/dist/add-resolver-provider.d.ts.map +1 -0
- package/dist/add-resolver-provider.js +67 -0
- package/dist/add-resolver-provider.js.map +1 -0
- package/dist/add-resolver-resources.d.ts +17 -0
- package/dist/add-resolver-resources.d.ts.map +1 -1
- package/dist/add-resolver-resources.js +79 -85
- package/dist/add-resolver-resources.js.map +1 -1
- package/dist/add-resolver.d.ts +33 -9
- package/dist/add-resolver.d.ts.map +1 -1
- package/dist/add-resolver.js +70 -31
- package/dist/add-resolver.js.map +1 -1
- package/dist/add-resolver.types.d.ts +27 -0
- package/dist/add-resolver.types.d.ts.map +1 -0
- package/dist/add-resolver.types.js +2 -0
- package/dist/add-resolver.types.js.map +1 -0
- package/dist/add-transaction-files-compat.d.ts +33 -0
- package/dist/add-transaction-files-compat.d.ts.map +1 -0
- package/dist/add-transaction-files-compat.js +42 -0
- package/dist/add-transaction-files-compat.js.map +1 -0
- package/dist/add-transaction-files.d.ts +49 -9
- package/dist/add-transaction-files.d.ts.map +1 -1
- package/dist/add-transaction-files.js +122 -74
- package/dist/add-transaction-files.js.map +1 -1
- package/dist/add-transaction-files.types.d.ts +7 -0
- package/dist/add-transaction-files.types.d.ts.map +1 -0
- package/dist/add-transaction-files.types.js +2 -0
- package/dist/add-transaction-files.types.js.map +1 -0
- package/dist/add-transaction-process.d.ts +37 -0
- package/dist/add-transaction-process.d.ts.map +1 -0
- package/dist/add-transaction-process.js +54 -0
- package/dist/add-transaction-process.js.map +1 -0
- package/dist/add-transaction-workflow.d.ts +23 -0
- package/dist/add-transaction-workflow.d.ts.map +1 -0
- package/dist/add-transaction-workflow.js +77 -0
- package/dist/add-transaction-workflow.js.map +1 -0
- package/dist/add-transaction.d.ts +26 -13
- package/dist/add-transaction.d.ts.map +1 -1
- package/dist/add-transaction.js +55 -105
- package/dist/add-transaction.js.map +1 -1
- package/dist/add-transaction.types.d.ts +32 -0
- package/dist/add-transaction.types.d.ts.map +1 -0
- package/dist/add-transaction.types.js +2 -0
- package/dist/add-transaction.types.js.map +1 -0
- package/dist/add-types.d.ts +56 -0
- package/dist/add-types.d.ts.map +1 -1
- package/dist/add-types.js +15 -0
- package/dist/add-types.js.map +1 -1
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +83 -0
- package/dist/bin.js.map +1 -0
- package/dist/bucket-profiles.d.ts +17 -3
- package/dist/bucket-profiles.d.ts.map +1 -1
- package/dist/bucket-profiles.js +27 -5
- package/dist/bucket-profiles.js.map +1 -1
- package/dist/bucket-profiles.types.d.ts +9 -0
- package/dist/bucket-profiles.types.d.ts.map +1 -0
- package/dist/bucket-profiles.types.js +2 -0
- package/dist/bucket-profiles.types.js.map +1 -0
- package/dist/build-catalog.d.ts +14 -0
- package/dist/build-catalog.d.ts.map +1 -0
- package/dist/build-catalog.js +70 -0
- package/dist/build-catalog.js.map +1 -0
- package/dist/catalog-resolution.d.ts +12 -0
- package/dist/catalog-resolution.d.ts.map +1 -0
- package/dist/catalog-resolution.js +43 -0
- package/dist/catalog-resolution.js.map +1 -0
- package/dist/catalog-resolution.types.d.ts +3 -0
- package/dist/catalog-resolution.types.d.ts.map +1 -0
- package/dist/catalog-resolution.types.js +2 -0
- package/dist/catalog-resolution.types.js.map +1 -0
- package/dist/create-preview.d.ts +30 -7
- package/dist/create-preview.d.ts.map +1 -1
- package/dist/create-preview.js +41 -11
- package/dist/create-preview.js.map +1 -1
- package/dist/create-preview.types.d.ts +9 -0
- package/dist/create-preview.types.d.ts.map +1 -0
- package/dist/create-preview.types.js +2 -0
- package/dist/create-preview.types.js.map +1 -0
- package/dist/create-resolver.d.ts +27 -10
- package/dist/create-resolver.d.ts.map +1 -1
- package/dist/create-resolver.js +105 -74
- package/dist/create-resolver.js.map +1 -1
- package/dist/create-resolver.types.d.ts +15 -0
- package/dist/create-resolver.types.d.ts.map +1 -0
- package/dist/create-resolver.types.js +2 -0
- package/dist/create-resolver.types.js.map +1 -0
- package/dist/dependency-patch-installation.d.ts +16 -0
- package/dist/dependency-patch-installation.d.ts.map +1 -0
- package/dist/dependency-patch-installation.js +59 -0
- package/dist/dependency-patch-installation.js.map +1 -0
- package/dist/dependency-patches.d.ts +57 -0
- package/dist/dependency-patches.d.ts.map +1 -0
- package/dist/dependency-patches.js +134 -0
- package/dist/dependency-patches.js.map +1 -0
- package/dist/dependency-patches.types.d.ts +21 -0
- package/dist/dependency-patches.types.d.ts.map +1 -0
- package/dist/dependency-patches.types.js +2 -0
- package/dist/dependency-patches.types.js.map +1 -0
- package/dist/domain-artifact.d.ts +76 -0
- package/dist/domain-artifact.d.ts.map +1 -0
- package/dist/domain-artifact.js +115 -0
- package/dist/domain-artifact.js.map +1 -0
- package/dist/domain-planning.d.ts +36 -20
- package/dist/domain-planning.d.ts.map +1 -1
- package/dist/domain-planning.js +45 -55
- package/dist/domain-planning.js.map +1 -1
- package/dist/domain-planning.types.d.ts +21 -0
- package/dist/domain-planning.types.d.ts.map +1 -0
- package/dist/domain-planning.types.js +2 -0
- package/dist/domain-planning.types.js.map +1 -0
- package/dist/generate-deployment.d.ts +18 -0
- package/dist/generate-deployment.d.ts.map +1 -0
- package/dist/generate-deployment.js +100 -0
- package/dist/generate-deployment.js.map +1 -0
- package/dist/generate-files-compat.d.ts +43 -0
- package/dist/generate-files-compat.d.ts.map +1 -0
- package/dist/generate-files-compat.js +56 -0
- package/dist/generate-files-compat.js.map +1 -0
- package/dist/generate-files-utilities.d.ts +63 -10
- package/dist/generate-files-utilities.d.ts.map +1 -1
- package/dist/generate-files-utilities.js +99 -48
- package/dist/generate-files-utilities.js.map +1 -1
- package/dist/generate-files-utilities.types.d.ts +6 -0
- package/dist/generate-files-utilities.types.d.ts.map +1 -0
- package/dist/generate-files-utilities.types.js +2 -0
- package/dist/generate-files-utilities.types.js.map +1 -0
- package/dist/generate-files.d.ts +30 -1
- package/dist/generate-files.d.ts.map +1 -1
- package/dist/generate-files.js +56 -85
- package/dist/generate-files.js.map +1 -1
- package/dist/generate-output.d.ts +14 -17
- package/dist/generate-output.d.ts.map +1 -1
- package/dist/generate-output.js +27 -0
- package/dist/generate-output.js.map +1 -1
- package/dist/generate-output.types.d.ts +21 -0
- package/dist/generate-output.types.d.ts.map +1 -0
- package/dist/generate-output.types.js +2 -0
- package/dist/generate-output.types.js.map +1 -0
- package/dist/generate-process.d.ts +60 -0
- package/dist/generate-process.d.ts.map +1 -1
- package/dist/generate-process.js +95 -31
- package/dist/generate-process.js.map +1 -1
- package/dist/generate-stage-cleanup.d.ts +17 -0
- package/dist/generate-stage-cleanup.d.ts.map +1 -0
- package/dist/generate-stage-cleanup.js +30 -0
- package/dist/generate-stage-cleanup.js.map +1 -0
- package/dist/generate-types.d.ts +36 -0
- package/dist/generate-types.d.ts.map +1 -1
- package/dist/generate-types.js +16 -0
- package/dist/generate-types.js.map +1 -1
- package/dist/generate-workflow.d.ts +31 -0
- package/dist/generate-workflow.d.ts.map +1 -0
- package/dist/generate-workflow.js +117 -0
- package/dist/generate-workflow.js.map +1 -0
- package/dist/generate.d.ts +29 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +55 -97
- package/dist/generate.js.map +1 -1
- package/dist/generate.service.types.d.ts +15 -0
- package/dist/generate.service.types.d.ts.map +1 -0
- package/dist/generate.service.types.js +2 -0
- package/dist/generate.service.types.js.map +1 -0
- package/dist/generator-cleanup.d.ts +27 -0
- package/dist/generator-cleanup.d.ts.map +1 -0
- package/dist/generator-cleanup.js +64 -0
- package/dist/generator-cleanup.js.map +1 -0
- package/dist/generator-cleanup.types.d.ts +6 -0
- package/dist/generator-cleanup.types.d.ts.map +1 -0
- package/dist/generator-cleanup.types.js +2 -0
- package/dist/generator-cleanup.types.js.map +1 -0
- package/dist/generator-errors.d.ts +74 -0
- package/dist/generator-errors.d.ts.map +1 -0
- package/dist/generator-errors.js +89 -0
- package/dist/generator-errors.js.map +1 -0
- package/dist/generator-filesystem.d.ts +25 -0
- package/dist/generator-filesystem.d.ts.map +1 -0
- package/dist/generator-filesystem.js +68 -0
- package/dist/generator-filesystem.js.map +1 -0
- package/dist/generator-filesystem.types.d.ts +112 -0
- package/dist/generator-filesystem.types.d.ts.map +1 -0
- package/dist/generator-filesystem.types.js +2 -0
- package/dist/generator-filesystem.types.js.map +1 -0
- package/dist/generator-paths.d.ts +13 -0
- package/dist/generator-paths.d.ts.map +1 -0
- package/dist/generator-paths.js +45 -0
- package/dist/generator-paths.js.map +1 -0
- package/dist/generator-paths.types.d.ts +40 -0
- package/dist/generator-paths.types.d.ts.map +1 -0
- package/dist/generator-paths.types.js +2 -0
- package/dist/generator-paths.types.js.map +1 -0
- package/dist/generator-process.d.ts +25 -0
- package/dist/generator-process.d.ts.map +1 -0
- package/dist/generator-process.js +124 -0
- package/dist/generator-process.js.map +1 -0
- package/dist/generator-process.types.d.ts +27 -0
- package/dist/generator-process.types.d.ts.map +1 -0
- package/dist/generator-process.types.js +2 -0
- package/dist/generator-process.types.js.map +1 -0
- package/dist/generator-prompt.d.ts +22 -0
- package/dist/generator-prompt.d.ts.map +1 -0
- package/dist/generator-prompt.js +58 -0
- package/dist/generator-prompt.js.map +1 -0
- package/dist/generator-prompt.types.d.ts +38 -0
- package/dist/generator-prompt.types.d.ts.map +1 -0
- package/dist/generator-prompt.types.js +2 -0
- package/dist/generator-prompt.types.js.map +1 -0
- package/dist/generator-runtime.d.ts +22 -0
- package/dist/generator-runtime.d.ts.map +1 -0
- package/dist/generator-runtime.js +31 -0
- package/dist/generator-runtime.js.map +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -79
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +50 -1
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +48 -1
- package/dist/options.js.map +1 -1
- package/dist/patches/drizzle-orm.patch +692 -0
- package/dist/plan-builder-effects.d.ts +124 -0
- package/dist/plan-builder-effects.d.ts.map +1 -0
- package/dist/plan-builder-effects.js +172 -0
- package/dist/plan-builder-effects.js.map +1 -0
- package/dist/plan-builder-files.d.ts +12 -0
- package/dist/plan-builder-files.d.ts.map +1 -0
- package/dist/plan-builder-files.js +99 -0
- package/dist/plan-builder-files.js.map +1 -0
- package/dist/plan-builder-files.types.d.ts +49 -0
- package/dist/plan-builder-files.types.d.ts.map +1 -0
- package/dist/plan-builder-files.types.js +2 -0
- package/dist/plan-builder-files.types.js.map +1 -0
- package/dist/plan-builder-manifest.d.ts +11 -0
- package/dist/plan-builder-manifest.d.ts.map +1 -0
- package/dist/plan-builder-manifest.js +37 -0
- package/dist/plan-builder-manifest.js.map +1 -0
- package/dist/plan-builder.d.ts +78 -18
- package/dist/plan-builder.d.ts.map +1 -1
- package/dist/plan-builder.js +105 -126
- package/dist/plan-builder.js.map +1 -1
- package/dist/plan-builder.types.d.ts +22 -0
- package/dist/plan-builder.types.d.ts.map +1 -0
- package/dist/plan-builder.types.js +2 -0
- package/dist/plan-builder.types.js.map +1 -0
- package/dist/plan-manifest.d.ts +16 -4
- package/dist/plan-manifest.d.ts.map +1 -1
- package/dist/plan-manifest.js +60 -3
- package/dist/plan-manifest.js.map +1 -1
- package/dist/plan-manifest.types.d.ts +13 -0
- package/dist/plan-manifest.types.d.ts.map +1 -0
- package/dist/plan-manifest.types.js +2 -0
- package/dist/plan-manifest.types.js.map +1 -0
- package/dist/project-catalog.d.ts +17 -0
- package/dist/project-catalog.d.ts.map +1 -0
- package/dist/project-catalog.js +69 -0
- package/dist/project-catalog.js.map +1 -0
- package/dist/project-discovery-app.d.ts +7 -0
- package/dist/project-discovery-app.d.ts.map +1 -1
- package/dist/project-discovery-app.js +71 -0
- package/dist/project-discovery-app.js.map +1 -1
- package/dist/project-discovery-database.d.ts +10 -0
- package/dist/project-discovery-database.d.ts.map +1 -1
- package/dist/project-discovery-database.js +18 -0
- package/dist/project-discovery-database.js.map +1 -1
- package/dist/project-discovery-facts.d.ts +13 -0
- package/dist/project-discovery-facts.d.ts.map +1 -0
- package/dist/project-discovery-facts.js +170 -0
- package/dist/project-discovery-facts.js.map +1 -0
- package/dist/project-discovery-types.d.ts +15 -0
- package/dist/project-discovery-types.d.ts.map +1 -1
- package/dist/project-discovery.d.ts +31 -1
- package/dist/project-discovery.d.ts.map +1 -1
- package/dist/project-discovery.js +51 -147
- package/dist/project-discovery.js.map +1 -1
- package/dist/project-discovery.service.types.d.ts +13 -0
- package/dist/project-discovery.service.types.d.ts.map +1 -0
- package/dist/project-discovery.service.types.js +2 -0
- package/dist/project-discovery.service.types.js.map +1 -0
- package/dist/project-manifest.schemas.d.ts +22 -0
- package/dist/project-manifest.schemas.d.ts.map +1 -0
- package/dist/project-manifest.schemas.js +22 -0
- package/dist/project-manifest.schemas.js.map +1 -0
- package/dist/prompt-driver.d.ts +7 -30
- package/dist/prompt-driver.d.ts.map +1 -1
- package/dist/prompt-driver.js +25 -4
- package/dist/prompt-driver.js.map +1 -1
- package/dist/prompt-driver.types.d.ts +92 -0
- package/dist/prompt-driver.types.d.ts.map +1 -0
- package/dist/prompt-driver.types.js +2 -0
- package/dist/prompt-driver.types.js.map +1 -0
- package/dist/provider-planning-definitions.d.ts +43 -0
- package/dist/provider-planning-definitions.d.ts.map +1 -1
- package/dist/provider-planning-definitions.js +43 -0
- package/dist/provider-planning-definitions.js.map +1 -1
- package/dist/provider-planning.d.ts +37 -7
- package/dist/provider-planning.d.ts.map +1 -1
- package/dist/provider-planning.js +69 -76
- package/dist/provider-planning.js.map +1 -1
- package/dist/provider-planning.types.d.ts +14 -0
- package/dist/provider-planning.types.d.ts.map +1 -0
- package/dist/provider-planning.types.js +2 -0
- package/dist/provider-planning.types.js.map +1 -0
- package/dist/provider-profile-definition.d.ts +45 -0
- package/dist/provider-profile-definition.d.ts.map +1 -0
- package/dist/provider-profile-definition.js +93 -0
- package/dist/provider-profile-definition.js.map +1 -0
- package/dist/render-ai-sources.d.ts +20 -0
- package/dist/render-ai-sources.d.ts.map +1 -1
- package/dist/render-ai-sources.js +21 -0
- package/dist/render-ai-sources.js.map +1 -1
- package/dist/render-ai.d.ts +49 -0
- package/dist/render-ai.d.ts.map +1 -1
- package/dist/render-ai.js +62 -12
- package/dist/render-ai.js.map +1 -1
- package/dist/render-auth-schema.d.ts +5 -0
- package/dist/render-auth-schema.d.ts.map +1 -1
- package/dist/render-auth-schema.js +8 -0
- package/dist/render-auth-schema.js.map +1 -1
- package/dist/render-auth-sources.d.ts +8 -0
- package/dist/render-auth-sources.d.ts.map +1 -1
- package/dist/render-auth-sources.js +8 -0
- package/dist/render-auth-sources.js.map +1 -1
- package/dist/render-auth.d.ts +21 -0
- package/dist/render-auth.d.ts.map +1 -1
- package/dist/render-auth.js +86 -24
- package/dist/render-auth.js.map +1 -1
- package/dist/render-database-sources.d.ts +15 -0
- package/dist/render-database-sources.d.ts.map +1 -1
- package/dist/render-database-sources.js +15 -0
- package/dist/render-database-sources.js.map +1 -1
- package/dist/render-database.d.ts +24 -0
- package/dist/render-database.d.ts.map +1 -1
- package/dist/render-database.js +37 -17
- package/dist/render-database.js.map +1 -1
- package/dist/render-domain-callables.d.ts +67 -0
- package/dist/render-domain-callables.d.ts.map +1 -0
- package/dist/render-domain-callables.js +99 -0
- package/dist/render-domain-callables.js.map +1 -0
- package/dist/render-domain-events.d.ts +59 -0
- package/dist/render-domain-events.d.ts.map +1 -0
- package/dist/render-domain-events.js +92 -0
- package/dist/render-domain-events.js.map +1 -0
- package/dist/render-domain-jobs.d.ts +56 -0
- package/dist/render-domain-jobs.d.ts.map +1 -0
- package/dist/render-domain-jobs.js +84 -0
- package/dist/render-domain-jobs.js.map +1 -0
- package/dist/render-domain-register.d.ts +18 -0
- package/dist/render-domain-register.d.ts.map +1 -1
- package/dist/render-domain-register.js +27 -7
- package/dist/render-domain-register.js.map +1 -1
- package/dist/render-domain-sources.d.ts +63 -0
- package/dist/render-domain-sources.d.ts.map +1 -1
- package/dist/render-domain-sources.js +65 -0
- package/dist/render-domain-sources.js.map +1 -1
- package/dist/render-domain.d.ts +4 -25
- package/dist/render-domain.d.ts.map +1 -1
- package/dist/render-domain.js +3 -97
- package/dist/render-domain.js.map +1 -1
- package/dist/render-domain.types.d.ts +15 -0
- package/dist/render-domain.types.d.ts.map +1 -0
- package/dist/render-domain.types.js +2 -0
- package/dist/render-domain.types.js.map +1 -0
- package/dist/render-resource-sources.d.ts +12 -0
- package/dist/render-resource-sources.d.ts.map +1 -1
- package/dist/render-resource-sources.js +12 -0
- package/dist/render-resource-sources.js.map +1 -1
- package/dist/render-resources.d.ts +47 -0
- package/dist/render-resources.d.ts.map +1 -1
- package/dist/render-resources.js +62 -15
- package/dist/render-resources.js.map +1 -1
- package/dist/render-route-sources.d.ts +19 -0
- package/dist/render-route-sources.d.ts.map +1 -1
- package/dist/render-route-sources.js +19 -0
- package/dist/render-route-sources.js.map +1 -1
- package/dist/render-routes.d.ts +57 -0
- package/dist/render-routes.d.ts.map +1 -1
- package/dist/render-routes.js +72 -10
- package/dist/render-routes.js.map +1 -1
- package/dist/render-service.d.ts +23 -1
- package/dist/render-service.d.ts.map +1 -1
- package/dist/render-service.js +65 -20
- package/dist/render-service.js.map +1 -1
- package/dist/scaffold-catalog.d.ts +7 -6
- package/dist/scaffold-catalog.d.ts.map +1 -1
- package/dist/scaffold-catalog.js +11 -5
- package/dist/scaffold-catalog.js.map +1 -1
- package/dist/scaffold-catalog.types.d.ts +11 -0
- package/dist/scaffold-catalog.types.d.ts.map +1 -0
- package/dist/scaffold-catalog.types.js +2 -0
- package/dist/scaffold-catalog.types.js.map +1 -0
- package/dist/source-edit.d.ts +38 -2
- package/dist/source-edit.d.ts.map +1 -1
- package/dist/source-edit.js +39 -94
- package/dist/source-edit.js.map +1 -1
- package/dist/source-factory-edit.d.ts +78 -0
- package/dist/source-factory-edit.d.ts.map +1 -0
- package/dist/source-factory-edit.js +156 -0
- package/dist/source-factory-edit.js.map +1 -0
- package/dist/source-import-edit.d.ts +7 -1
- package/dist/source-import-edit.d.ts.map +1 -1
- package/dist/source-import-edit.js +20 -1
- package/dist/source-import-edit.js.map +1 -1
- package/dist/template-root.d.ts +15 -4
- package/dist/template-root.d.ts.map +1 -1
- package/dist/template-root.js +22 -5
- package/dist/template-root.js.map +1 -1
- package/dist/templates/default/README.md +1 -1
- package/dist/templates/default/v1/agent/package.json +4 -4
- package/dist/templates/default/v1/api/package.json +3 -3
- package/dist/templates/default/v1/fullstack/package.json +6 -6
- package/dist/templates/default/v1/minimal/package.json +3 -3
- package/dist/templates/default/v1/tasks/package.json +3 -3
- package/dist/validate-errors.d.ts +12 -0
- package/dist/validate-errors.d.ts.map +1 -0
- package/dist/validate-errors.js +16 -0
- package/dist/validate-errors.js.map +1 -0
- package/dist/validate-paths.d.ts +43 -0
- package/dist/validate-paths.d.ts.map +1 -0
- package/dist/validate-paths.js +105 -0
- package/dist/validate-paths.js.map +1 -0
- package/dist/validate.d.ts +56 -17
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +89 -130
- package/dist/validate.js.map +1 -1
- package/dist/validate.types.d.ts +19 -0
- package/dist/validate.types.d.ts.map +1 -0
- package/dist/validate.types.js +2 -0
- package/dist/validate.types.js.map +1 -0
- package/package.json +67 -5
- package/src/catalog-resolution.ts +55 -0
- package/src/catalog-resolution.types.ts +2 -0
- package/dist/create-additions.d.ts +0 -7
- package/dist/create-additions.d.ts.map +0 -1
- package/dist/create-additions.js +0 -27
- package/dist/create-additions.js.map +0 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { observeExecution } from "@relkit/contracts/operation";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { Effect, Schema } from "effect";
|
|
6
|
+
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
7
|
+
import { applyFileOperationsEffect, validateOperationActionsEffect, } from "./add-transaction-files.js";
|
|
8
|
+
import { buildCatalogPatch } from "./build-catalog.js";
|
|
9
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
10
|
+
import { domainError, domainTry } from "./generator-errors.js";
|
|
11
|
+
import { runGeneratorPromise } from "./generator-runtime.js";
|
|
12
|
+
import { JsonObject, ProjectManifest } from "./project-manifest.schemas.js";
|
|
13
|
+
/**
|
|
14
|
+
* Loads verified Drizzle declaration repairs from source or the owning packed release.
|
|
15
|
+
* @returns The unchanged repair bytes and their catalog-derived project destination.
|
|
16
|
+
* @remarks Packed execution reads only its bundled asset, never a consumer checkout.
|
|
17
|
+
*/
|
|
18
|
+
export const readDrizzlePatchEffect = Effect.fn("DependencyPatch.read")(function* () {
|
|
19
|
+
const fs = yield* GeneratorFileSystem;
|
|
20
|
+
const descriptor = yield* domainTry(() => buildCatalogPatch("drizzle-orm"));
|
|
21
|
+
const modulePath = fileURLToPath(import.meta.url);
|
|
22
|
+
const asset = modulePath.endsWith(".ts")
|
|
23
|
+
? resolve(dirname(modulePath), "../../../patches/drizzle-orm.patch")
|
|
24
|
+
: resolve(dirname(modulePath), descriptor.asset);
|
|
25
|
+
if ((yield* fs.metadata(asset))?.kind !== "file")
|
|
26
|
+
return yield* invalid("The bundled Drizzle patch is not a regular file.");
|
|
27
|
+
const content = yield* fs.readText(asset);
|
|
28
|
+
if (createHash("sha256").update(content).digest("hex") !== descriptor.hash)
|
|
29
|
+
return yield* invalid("The bundled Drizzle patch does not match its build catalog hash.");
|
|
30
|
+
return Object.freeze({ ...descriptor, path: `patches/${descriptor.key}.patch`, content });
|
|
31
|
+
}, (effect) => observeExecution("generator", "planning.readDrizzlePatch", effect));
|
|
32
|
+
/**
|
|
33
|
+
* Plans byte-identical repair ownership without mutating project assets.
|
|
34
|
+
* @param projectRoot - Project whose asset and manifest will commit together.
|
|
35
|
+
* @param source - Current or already-planned package manifest bytes.
|
|
36
|
+
* @param patch - Verified release-owned repair.
|
|
37
|
+
* @returns Manifest changes and optional asset creation.
|
|
38
|
+
*/
|
|
39
|
+
export const planDependencyPatchEffect = Effect.fn("DependencyPatch.plan")(function* (projectRoot, source, patch) {
|
|
40
|
+
const parsed = yield* domainTry(() => JSON.parse(source));
|
|
41
|
+
const manifest = yield* Schema.decodeUnknownEffect(ProjectManifest)(parsed).pipe(Effect.mapError(() => domainError(new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, "package.json patchedDependencies must contain patch paths."))));
|
|
42
|
+
const original = yield* Schema.decodeUnknownEffect(JsonObject)(parsed).pipe(Effect.mapError(() => domainError(new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, "package.json must contain an object."))));
|
|
43
|
+
const entries = manifest.patchedDependencies ?? {};
|
|
44
|
+
const current = entries[patch.key];
|
|
45
|
+
if (current !== undefined && current !== patch.path)
|
|
46
|
+
return yield* collision(`package.json already declares a different patch for ${patch.key}.`);
|
|
47
|
+
const existing = yield* projectPatchContentEffect(projectRoot, patch.path);
|
|
48
|
+
if (existing !== undefined && existing !== patch.content)
|
|
49
|
+
return yield* collision(`${patch.path} already contains a different dependency patch.`);
|
|
50
|
+
const content = current === undefined
|
|
51
|
+
? `${JSON.stringify({ ...original, patchedDependencies: Object.fromEntries(Object.entries({ ...entries, [patch.key]: patch.path }).sort()) }, null, 2)}\n`
|
|
52
|
+
: source;
|
|
53
|
+
return {
|
|
54
|
+
content,
|
|
55
|
+
...(existing === undefined
|
|
56
|
+
? { operation: { path: patch.path, action: "create", content: patch.content } }
|
|
57
|
+
: {}),
|
|
58
|
+
};
|
|
59
|
+
}, (effect) => observeExecution("generator", "planning.planDependencyPatch", effect));
|
|
60
|
+
/**
|
|
61
|
+
* Delivers repair assets before the first installation inside a generation-owned stage.
|
|
62
|
+
* @param projectRoot - Disposable staging directory.
|
|
63
|
+
* @returns Completion once the manifest and unchanged patch asset are ready together.
|
|
64
|
+
*/
|
|
65
|
+
export const prepareProjectDependencyPatchEffect = Effect.fn("DependencyPatch.prepare")(function* (projectRoot) {
|
|
66
|
+
const source = yield* (yield* GeneratorFileSystem).readText(join(projectRoot, "package.json"));
|
|
67
|
+
const result = yield* planDependencyPatchEffect(projectRoot, source, yield* readDrizzlePatchEffect());
|
|
68
|
+
const operations = result.operation ? [result.operation] : [];
|
|
69
|
+
if (result.content !== source)
|
|
70
|
+
operations.push({ path: "package.json", action: "update", content: result.content });
|
|
71
|
+
yield* validateOperationActionsEffect(projectRoot, operations);
|
|
72
|
+
yield* applyFileOperationsEffect(projectRoot, operations, new Set());
|
|
73
|
+
}, (effect) => observeExecution("generator", "planning.prepareProjectDependencyPatch", effect));
|
|
74
|
+
/**
|
|
75
|
+
* Preserves the verified repair Promise API.
|
|
76
|
+
* @returns The validated concrete patch descriptor, versioned project path and canonical patch text.
|
|
77
|
+
*/
|
|
78
|
+
export function readDrizzlePatch() {
|
|
79
|
+
return runGeneratorPromise(readDrizzlePatchEffect());
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Preserves patch planning's Promise API and collision constructors.
|
|
83
|
+
* @param projectRoot - Absolute project root.
|
|
84
|
+
* @param source - Authored source text inspected or transformed without execution.
|
|
85
|
+
* @param patch - Validated portable patch descriptor, destination path and canonical bytes.
|
|
86
|
+
* @returns The manifest projection and optional patch file operation after collision preflight.
|
|
87
|
+
*/
|
|
88
|
+
export function planDependencyPatch(projectRoot, source, patch) {
|
|
89
|
+
return runGeneratorPromise(planDependencyPatchEffect(projectRoot, source, patch));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Preserves staging repair delivery's Promise API.
|
|
93
|
+
* @param projectRoot - Absolute project root.
|
|
94
|
+
* @returns Completion after the existing contract has been applied.
|
|
95
|
+
*/
|
|
96
|
+
export function prepareProjectDependencyPatch(projectRoot) {
|
|
97
|
+
return runGeneratorPromise(prepareProjectDependencyPatchEffect(projectRoot));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reads the managed asset without following symlink directories or files.
|
|
101
|
+
* @param projectRoot - Absolute project root.
|
|
102
|
+
* @param path - Path inside the current project or owned resource.
|
|
103
|
+
* @returns Existing regular-file patch text, or undefined when the project has no asset.
|
|
104
|
+
*/
|
|
105
|
+
const projectPatchContentEffect = Effect.fn("DependencyPatch.readProjectAsset")(function* (projectRoot, path) {
|
|
106
|
+
const fs = yield* GeneratorFileSystem;
|
|
107
|
+
const directory = yield* fs.metadata(join(projectRoot, "patches"));
|
|
108
|
+
if (directory !== undefined && directory.kind !== "directory")
|
|
109
|
+
return yield* collision("patches is not a project directory.");
|
|
110
|
+
const file = resolve(projectRoot, path);
|
|
111
|
+
const metadata = yield* fs.metadata(file);
|
|
112
|
+
if (metadata === undefined)
|
|
113
|
+
return undefined;
|
|
114
|
+
if (metadata.kind !== "file")
|
|
115
|
+
return yield* collision(`${path} is not a regular dependency patch file.`);
|
|
116
|
+
return yield* fs.readText(file);
|
|
117
|
+
}, (effect) => observeExecution("generator", "planning.projectPatchContent", effect));
|
|
118
|
+
/**
|
|
119
|
+
* Constructs an existing invalid-project failure in the typed domain channel.
|
|
120
|
+
* @param message - User-facing diagnostic or prompt text.
|
|
121
|
+
* @returns An Effect failing with the original invalid-project AddScaffoldError.
|
|
122
|
+
*/
|
|
123
|
+
function invalid(message) {
|
|
124
|
+
return Effect.fail(domainError(new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, message)));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Constructs a typed collision failure preserving its public constructor.
|
|
128
|
+
* @param message - Diagnostic explaining the conflicting declaration.
|
|
129
|
+
* @returns An Effect failing with the original RELKIT_ADD_COLLISION AddScaffoldError.
|
|
130
|
+
*/
|
|
131
|
+
function collision(message) {
|
|
132
|
+
return Effect.fail(domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, message)));
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=dependency-patches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-patches.js","sourceRoot":"","sources":["../src/dependency-patches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ScaffoldFileOperation } from "./add-types.js";
|
|
2
|
+
/** Build-derived identity of a portable dependency patch shipped with this release. */
|
|
3
|
+
export interface DependencyPatchDescriptor {
|
|
4
|
+
readonly version: string;
|
|
5
|
+
readonly key: string;
|
|
6
|
+
/** Asset path relative to the generator's dist directory. */
|
|
7
|
+
readonly asset: string;
|
|
8
|
+
/** SHA-256 of the unchanged UTF-8 patch bytes. */
|
|
9
|
+
readonly hash: string;
|
|
10
|
+
}
|
|
11
|
+
/** Verified patch bytes and their canonical project-relative destination. */
|
|
12
|
+
export interface DependencyPatch extends DependencyPatchDescriptor {
|
|
13
|
+
readonly path: string;
|
|
14
|
+
readonly content: string;
|
|
15
|
+
}
|
|
16
|
+
/** Manifest repair and optional unchanged asset creation, committed by the transaction owner. */
|
|
17
|
+
export interface DependencyPatchPlan {
|
|
18
|
+
readonly content: string;
|
|
19
|
+
readonly operation?: ScaffoldFileOperation;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dependency-patches.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-patches.types.d.ts","sourceRoot":"","sources":["../src/dependency-patches.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,uFAAuF;AACvF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAgB,SAAQ,yBAAyB;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,iGAAiG;AACjG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-patches.types.js","sourceRoot":"","sources":["../src/dependency-patches.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type NormalizedArtifactName } from "./add-name.js";
|
|
2
|
+
import { PlanBuilder } from "./plan-builder.js";
|
|
3
|
+
import type { DiscoveredArtifact } from "./project-discovery-types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Derives a normalized source path, descriptor ID and binding for one domain artifact.
|
|
6
|
+
* @param target - Discovered domain or artifact target.
|
|
7
|
+
* @param value - Friendly artifact name.
|
|
8
|
+
* @param directory - Artifact subdirectory beneath the owning domain.
|
|
9
|
+
* @param fileSuffix - Suffix between the file stem and .ts extension.
|
|
10
|
+
* @param kindSuffix - Optional suffix appended to the ID and binding.
|
|
11
|
+
* @param exportKind - Default or named source export form.
|
|
12
|
+
* @returns The artifact's normalized name, path, ID, binding and export form.
|
|
13
|
+
*/
|
|
14
|
+
export declare function domainArtifact(target: DomainTarget, value: string, directory: string, fileSuffix: string, kindSuffix?: string, exportKind?: "default" | "named"): DomainArtifact;
|
|
15
|
+
/**
|
|
16
|
+
* Finds an existing artifact by ID, binding or normalized file stem.
|
|
17
|
+
* @param builder - Per-request planning owner.
|
|
18
|
+
* @param target - Discovered domain or artifact target.
|
|
19
|
+
* @param kind - Required artifact kind.
|
|
20
|
+
* @param value - Requested ID, binding or file stem.
|
|
21
|
+
* @returns The matching artifact; an unknown identity raises a usage error.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveArtifact(builder: PlanBuilder, target: DomainTarget, kind: DiscoveredArtifact["kind"], value: string): DiscoveredArtifact;
|
|
24
|
+
/**
|
|
25
|
+
* Rejects a descriptor ID already present in discovered or planned artifacts.
|
|
26
|
+
* @param builder - Per-request planning owner.
|
|
27
|
+
* @param id - Proposed descriptor ID.
|
|
28
|
+
* @returns Completion when no artifact owns the ID; otherwise a collision is thrown.
|
|
29
|
+
*/
|
|
30
|
+
export declare function assertAvailableId(builder: PlanBuilder, id: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Converts a source path into its @app import alias.
|
|
33
|
+
* @param path - Project-relative src path ending in .ts.
|
|
34
|
+
* @returns An @app module specifier with a .js extension.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sourceModule(path: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Renders a default or named import declaration.
|
|
39
|
+
* @param binding - Imported binding name.
|
|
40
|
+
* @param module - Module specifier.
|
|
41
|
+
* @param exportKind - Named export selection; otherwise a default import.
|
|
42
|
+
* @returns A complete import statement for the selected export form.
|
|
43
|
+
*/
|
|
44
|
+
export declare function sourceImport(binding: string, module: string, exportKind: "default" | "named" | undefined): string;
|
|
45
|
+
/**
|
|
46
|
+
* Renders a domain's initial generic service declaration.
|
|
47
|
+
* @param domain - Normalized domain identity.
|
|
48
|
+
* @returns Source importing defineService and declaring the normalized service ID.
|
|
49
|
+
*/
|
|
50
|
+
export declare function serviceSource(domain: NormalizedArtifactName): string;
|
|
51
|
+
/**
|
|
52
|
+
* Rejects unsupported or incomplete scaffold arguments.
|
|
53
|
+
* @param message - Diagnostic explaining the unsupported arguments.
|
|
54
|
+
* @returns No value; throws AddScaffoldError with RELKIT_ADD_USAGE.
|
|
55
|
+
*/
|
|
56
|
+
export declare function usage(message: string): never;
|
|
57
|
+
/**
|
|
58
|
+
* Rejects an existing declaration that conflicts with planned output.
|
|
59
|
+
* @param message - Diagnostic explaining the conflicting declaration.
|
|
60
|
+
* @returns No value; throws AddScaffoldError with RELKIT_ADD_COLLISION.
|
|
61
|
+
*/
|
|
62
|
+
export declare function collision(message: string): never;
|
|
63
|
+
/**
|
|
64
|
+
* Uppercases the initial character of a nonempty identifier.
|
|
65
|
+
* @param value - Nonempty identifier produced by name normalization.
|
|
66
|
+
* @returns The identifier with its first character capitalized.
|
|
67
|
+
*/
|
|
68
|
+
export declare function capitalize(value: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Reads the file stem before the first extension separator.
|
|
71
|
+
* @param path - Path inside the current project or owned resource.
|
|
72
|
+
* @returns The final path component up to its first dot.
|
|
73
|
+
*/
|
|
74
|
+
export declare function fileStem(path: string): string;
|
|
75
|
+
import type { DomainTarget, DomainArtifact } from "./domain-planning.types.js";
|
|
76
|
+
//# sourceMappingURL=domain-artifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-artifact.d.ts","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,GAAG,OAAmB,GAC1C,cAAc,CAUhB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAgBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAC1C,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
2
|
+
import { normalizeArtifactName } from "./add-name.js";
|
|
3
|
+
import { PlanBuilder } from "./plan-builder.js";
|
|
4
|
+
/**
|
|
5
|
+
* Derives a normalized source path, descriptor ID and binding for one domain artifact.
|
|
6
|
+
* @param target - Discovered domain or artifact target.
|
|
7
|
+
* @param value - Friendly artifact name.
|
|
8
|
+
* @param directory - Artifact subdirectory beneath the owning domain.
|
|
9
|
+
* @param fileSuffix - Suffix between the file stem and .ts extension.
|
|
10
|
+
* @param kindSuffix - Optional suffix appended to the ID and binding.
|
|
11
|
+
* @param exportKind - Default or named source export form.
|
|
12
|
+
* @returns The artifact's normalized name, path, ID, binding and export form.
|
|
13
|
+
*/
|
|
14
|
+
export function domainArtifact(target, value, directory, fileSuffix, kindSuffix, exportKind = "default") {
|
|
15
|
+
const name = normalizeArtifactName(value);
|
|
16
|
+
const suffix = kindSuffix ? normalizeArtifactName(kindSuffix) : undefined;
|
|
17
|
+
return {
|
|
18
|
+
name,
|
|
19
|
+
path: `src/${target.domain.fileStem}/${directory}/${name.fileStem}.${fileSuffix}.ts`,
|
|
20
|
+
id: `${target.domain.idSegment}.${name.idSegment}${suffix ? `-${suffix.idSegment}` : ""}`,
|
|
21
|
+
binding: `${name.identifier}${suffix ? capitalize(suffix.identifier) : ""}`,
|
|
22
|
+
exportKind,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Finds an existing artifact by ID, binding or normalized file stem.
|
|
27
|
+
* @param builder - Per-request planning owner.
|
|
28
|
+
* @param target - Discovered domain or artifact target.
|
|
29
|
+
* @param kind - Required artifact kind.
|
|
30
|
+
* @param value - Requested ID, binding or file stem.
|
|
31
|
+
* @returns The matching artifact; an unknown identity raises a usage error.
|
|
32
|
+
*/
|
|
33
|
+
export function resolveArtifact(builder, target, kind, value) {
|
|
34
|
+
const normalized = normalizeArtifactName(value);
|
|
35
|
+
const candidates = builder.artifacts.filter((artifact) => artifact.domain === target.domain.fileStem && artifact.kind === kind);
|
|
36
|
+
const exact = candidates.find((artifact) => [artifact.binding, artifact.id, fileStem(artifact.path)].includes(value));
|
|
37
|
+
const normalizedMatch = candidates.find((artifact) => normalizeArtifactName(artifact.binding).fileStem === normalized.fileStem ||
|
|
38
|
+
normalizeArtifactName(fileStem(artifact.path)).fileStem === normalized.fileStem);
|
|
39
|
+
const result = exact ?? normalizedMatch;
|
|
40
|
+
if (result === undefined)
|
|
41
|
+
usage(`Unknown ${kind} in ${target.domain.fileStem}: ${value}`);
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Rejects a descriptor ID already present in discovered or planned artifacts.
|
|
46
|
+
* @param builder - Per-request planning owner.
|
|
47
|
+
* @param id - Proposed descriptor ID.
|
|
48
|
+
* @returns Completion when no artifact owns the ID; otherwise a collision is thrown.
|
|
49
|
+
*/
|
|
50
|
+
export function assertAvailableId(builder, id) {
|
|
51
|
+
if (builder.artifacts.some((artifact) => artifact.id === id)) {
|
|
52
|
+
collision(`Descriptor ID ${id} already exists.`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Converts a source path into its @app import alias.
|
|
57
|
+
* @param path - Project-relative src path ending in .ts.
|
|
58
|
+
* @returns An @app module specifier with a .js extension.
|
|
59
|
+
*/
|
|
60
|
+
export function sourceModule(path) {
|
|
61
|
+
return `@app/${path.replace(/^src\//, "").replace(/\.ts$/, ".js")}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Renders a default or named import declaration.
|
|
65
|
+
* @param binding - Imported binding name.
|
|
66
|
+
* @param module - Module specifier.
|
|
67
|
+
* @param exportKind - Named export selection; otherwise a default import.
|
|
68
|
+
* @returns A complete import statement for the selected export form.
|
|
69
|
+
*/
|
|
70
|
+
export function sourceImport(binding, module, exportKind) {
|
|
71
|
+
return exportKind === "named"
|
|
72
|
+
? `import { ${binding} } from "${module}";`
|
|
73
|
+
: `import ${binding} from "${module}";`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Renders a domain's initial generic service declaration.
|
|
77
|
+
* @param domain - Normalized domain identity.
|
|
78
|
+
* @returns Source importing defineService and declaring the normalized service ID.
|
|
79
|
+
*/
|
|
80
|
+
export function serviceSource(domain) {
|
|
81
|
+
return `import { defineService } from "@relkit/app/services";\n\nexport default defineService({ id: "${domain.idSegment}" });\n`;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Rejects unsupported or incomplete scaffold arguments.
|
|
85
|
+
* @param message - Diagnostic explaining the unsupported arguments.
|
|
86
|
+
* @returns No value; throws AddScaffoldError with RELKIT_ADD_USAGE.
|
|
87
|
+
*/
|
|
88
|
+
export function usage(message) {
|
|
89
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.usage, message);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Rejects an existing declaration that conflicts with planned output.
|
|
93
|
+
* @param message - Diagnostic explaining the conflicting declaration.
|
|
94
|
+
* @returns No value; throws AddScaffoldError with RELKIT_ADD_COLLISION.
|
|
95
|
+
*/
|
|
96
|
+
export function collision(message) {
|
|
97
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.collision, message);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Uppercases the initial character of a nonempty identifier.
|
|
101
|
+
* @param value - Nonempty identifier produced by name normalization.
|
|
102
|
+
* @returns The identifier with its first character capitalized.
|
|
103
|
+
*/
|
|
104
|
+
export function capitalize(value) {
|
|
105
|
+
return `${value[0].toUpperCase()}${value.slice(1)}`;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Reads the file stem before the first extension separator.
|
|
109
|
+
* @param path - Path inside the current project or owned resource.
|
|
110
|
+
* @returns The final path component up to its first dot.
|
|
111
|
+
*/
|
|
112
|
+
export function fileStem(path) {
|
|
113
|
+
return path.split("/").at(-1).split(".")[0];
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=domain-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-artifact.js","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
3
|
+
import { type GeneratorDomainError, type GeneratorIoError } from "./generator-errors.js";
|
|
2
4
|
import { PlanBuilder } from "./plan-builder.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Plans resolve domain through the owning request and typed filesystem authority.
|
|
7
|
+
* @param builder - Per-request planning owner.
|
|
8
|
+
* @returns The normalized owning domain and existing or newly planned service source.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveDomainEffect: (builder: PlanBuilder) => Effect.Effect<DomainTarget, GeneratorIoError | GeneratorDomainError, GeneratorFileSystem>;
|
|
11
|
+
/**
|
|
12
|
+
* Plans add public member through the owning request and typed filesystem authority.
|
|
13
|
+
* @param builder - Per-request planning owner.
|
|
14
|
+
* @param target - Discovered domain or artifact target.
|
|
15
|
+
* @param category - Service member collection receiving the rendered artifact.
|
|
16
|
+
* @param artifact - Normalized artifact identity, source path, binding and export metadata.
|
|
17
|
+
* @param artifactPath - Project-relative source path of the referenced artifact.
|
|
18
|
+
* @returns Completion after the member import and service collection reference are planned.
|
|
19
|
+
*/
|
|
20
|
+
export declare const addPublicMemberEffect: (builder: PlanBuilder, target: DomainTarget, category: "jobs" | "functions" | "events" | "tasks", artifact: DomainArtifact, artifactPath: string) => Effect.Effect<void, GeneratorIoError | GeneratorDomainError, GeneratorFileSystem>;
|
|
21
|
+
/**
|
|
22
|
+
* Preserves the resolveDomain Promise compatibility API.
|
|
23
|
+
* @param builder - Per-request planning owner.
|
|
24
|
+
* @returns The normalized owning domain and existing or newly planned service source.
|
|
25
|
+
*/
|
|
16
26
|
export declare function resolveDomain(builder: PlanBuilder): Promise<DomainTarget>;
|
|
27
|
+
/**
|
|
28
|
+
* Preserves the addPublicMember Promise compatibility API.
|
|
29
|
+
* @param builder - Per-request planning owner.
|
|
30
|
+
* @param target - Discovered domain or artifact target.
|
|
31
|
+
* @param category - Service member collection receiving the rendered artifact.
|
|
32
|
+
* @param artifact - Normalized artifact identity, source path, binding and export metadata.
|
|
33
|
+
* @param artifactPath - Project-relative source path of the referenced artifact.
|
|
34
|
+
* @returns Completion after the existing contract has been applied.
|
|
35
|
+
*/
|
|
17
36
|
export declare function addPublicMember(builder: PlanBuilder, target: DomainTarget, category: "functions" | "events" | "tasks" | "jobs", artifact: DomainArtifact, artifactPath: string): Promise<void>;
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
export
|
|
21
|
-
export declare function sourceModule(path: string): string;
|
|
22
|
-
export declare function sourceImport(binding: string, module: string, exportKind: "default" | "named" | undefined): string;
|
|
23
|
-
export declare function serviceSource(domain: NormalizedArtifactName): string;
|
|
37
|
+
export { domainArtifact, resolveArtifact, assertAvailableId, sourceModule, sourceImport, serviceSource, } from "./domain-artifact.js";
|
|
38
|
+
import type { DomainTarget, DomainArtifact } from "./domain-planning.types.js";
|
|
39
|
+
export type { DomainTarget, DomainArtifact } from "./domain-planning.types.js";
|
|
24
40
|
//# sourceMappingURL=domain-planning.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qHA4C/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,wOA0BjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EACnD,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf;AAWD,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/domain-planning.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { observeExecution } from "@relkit/contracts/operation";
|
|
3
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
4
|
+
import { scaffoldErrors, } from "./generator-errors.js";
|
|
5
|
+
import { runGeneratorPromise } from "./generator-runtime.js";
|
|
2
6
|
import { normalizeArtifactName } from "./add-name.js";
|
|
3
7
|
import { PlanBuilder } from "./plan-builder.js";
|
|
4
8
|
import { addFactoryObjectMember, addSourceImport } from "./source-edit.js";
|
|
5
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Plans resolve domain through the owning request and typed filesystem authority.
|
|
11
|
+
* @param builder - Per-request planning owner.
|
|
12
|
+
* @returns The normalized owning domain and existing or newly planned service source.
|
|
13
|
+
*/
|
|
14
|
+
export const resolveDomainEffect = Effect.fn("Scaffold.resolveDomain")(function* (builder) {
|
|
6
15
|
const request = builder.request;
|
|
7
16
|
if (request.service && request.createService)
|
|
8
17
|
usage("--service and --create-service are exclusive.");
|
|
@@ -12,7 +21,7 @@ export async function resolveDomain(builder) {
|
|
|
12
21
|
collision(`Service ${domain.fileStem} already exists.`);
|
|
13
22
|
}
|
|
14
23
|
const servicePath = `src/${domain.fileStem}/service.ts`;
|
|
15
|
-
|
|
24
|
+
yield* builder.createEffect(servicePath, serviceSource(domain));
|
|
16
25
|
return { domain, servicePath, service: undefined };
|
|
17
26
|
}
|
|
18
27
|
const generic = builder.discovery.services.filter((service) => service.capability === "generic");
|
|
@@ -33,62 +42,43 @@ export async function resolveDomain(builder) {
|
|
|
33
42
|
servicePath: selected.path,
|
|
34
43
|
service: selected,
|
|
35
44
|
};
|
|
36
|
-
}
|
|
37
|
-
|
|
45
|
+
}, (effect) => observeExecution("generator", "planning.resolveDomain", scaffoldErrors(effect)));
|
|
46
|
+
/**
|
|
47
|
+
* Plans add public member through the owning request and typed filesystem authority.
|
|
48
|
+
* @param builder - Per-request planning owner.
|
|
49
|
+
* @param target - Discovered domain or artifact target.
|
|
50
|
+
* @param category - Service member collection receiving the rendered artifact.
|
|
51
|
+
* @param artifact - Normalized artifact identity, source path, binding and export metadata.
|
|
52
|
+
* @param artifactPath - Project-relative source path of the referenced artifact.
|
|
53
|
+
* @returns Completion after the member import and service collection reference are planned.
|
|
54
|
+
*/
|
|
55
|
+
export const addPublicMemberEffect = Effect.fn("Scaffold.addPublicMember")(function* (builder, target, category, artifact, artifactPath) {
|
|
38
56
|
const importPath = sourceModule(artifactPath);
|
|
39
|
-
|
|
57
|
+
yield* builder.updateEffect(target.servicePath, (source) => {
|
|
40
58
|
const imported = addSourceImport(source, target.servicePath, sourceImport(artifact.binding, importPath, artifact.exportKind));
|
|
41
59
|
return addFactoryObjectMember(imported, target.servicePath, ["defineService"], [category], artifact.binding, artifact.binding);
|
|
42
60
|
});
|
|
61
|
+
}, (effect) => observeExecution("generator", "planning.addPublicMember", scaffoldErrors(effect)));
|
|
62
|
+
/**
|
|
63
|
+
* Preserves the resolveDomain Promise compatibility API.
|
|
64
|
+
* @param builder - Per-request planning owner.
|
|
65
|
+
* @returns The normalized owning domain and existing or newly planned service source.
|
|
66
|
+
*/
|
|
67
|
+
export function resolveDomain(builder) {
|
|
68
|
+
return runGeneratorPromise(resolveDomainEffect(builder));
|
|
43
69
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
export function resolveArtifact(builder, target, kind, value) {
|
|
56
|
-
const normalized = normalizeArtifactName(value);
|
|
57
|
-
const candidates = builder.artifacts.filter((artifact) => artifact.domain === target.domain.fileStem && artifact.kind === kind);
|
|
58
|
-
const exact = candidates.find((artifact) => [artifact.binding, artifact.id, fileStem(artifact.path)].includes(value));
|
|
59
|
-
const normalizedMatch = candidates.find((artifact) => normalizeArtifactName(artifact.binding).fileStem === normalized.fileStem ||
|
|
60
|
-
normalizeArtifactName(fileStem(artifact.path)).fileStem === normalized.fileStem);
|
|
61
|
-
const result = exact ?? normalizedMatch;
|
|
62
|
-
if (result === undefined)
|
|
63
|
-
usage(`Unknown ${kind} in ${target.domain.fileStem}: ${value}`);
|
|
64
|
-
return result;
|
|
65
|
-
}
|
|
66
|
-
export function assertAvailableId(builder, id) {
|
|
67
|
-
if (builder.artifacts.some((artifact) => artifact.id === id)) {
|
|
68
|
-
collision(`Descriptor ID ${id} already exists.`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export function sourceModule(path) {
|
|
72
|
-
return `@app/${path.replace(/^src\//, "").replace(/\.ts$/, ".js")}`;
|
|
73
|
-
}
|
|
74
|
-
export function sourceImport(binding, module, exportKind) {
|
|
75
|
-
return exportKind === "named"
|
|
76
|
-
? `import { ${binding} } from "${module}";`
|
|
77
|
-
: `import ${binding} from "${module}";`;
|
|
78
|
-
}
|
|
79
|
-
export function serviceSource(domain) {
|
|
80
|
-
return `import { defineService } from "@relkit/app/services";\n\nexport default defineService({ id: "${domain.idSegment}" });\n`;
|
|
81
|
-
}
|
|
82
|
-
function usage(message) {
|
|
83
|
-
throw new AddScaffoldError(ADD_FAILURE_CODES.usage, message);
|
|
84
|
-
}
|
|
85
|
-
function collision(message) {
|
|
86
|
-
throw new AddScaffoldError(ADD_FAILURE_CODES.collision, message);
|
|
87
|
-
}
|
|
88
|
-
function capitalize(value) {
|
|
89
|
-
return `${value[0].toUpperCase()}${value.slice(1)}`;
|
|
90
|
-
}
|
|
91
|
-
function fileStem(path) {
|
|
92
|
-
return path.split("/").at(-1).split(".")[0];
|
|
70
|
+
/**
|
|
71
|
+
* Preserves the addPublicMember Promise compatibility API.
|
|
72
|
+
* @param builder - Per-request planning owner.
|
|
73
|
+
* @param target - Discovered domain or artifact target.
|
|
74
|
+
* @param category - Service member collection receiving the rendered artifact.
|
|
75
|
+
* @param artifact - Normalized artifact identity, source path, binding and export metadata.
|
|
76
|
+
* @param artifactPath - Project-relative source path of the referenced artifact.
|
|
77
|
+
* @returns Completion after the existing contract has been applied.
|
|
78
|
+
*/
|
|
79
|
+
export function addPublicMember(builder, target, category, artifact, artifactPath) {
|
|
80
|
+
return runGeneratorPromise(addPublicMemberEffect(builder, target, category, artifact, artifactPath));
|
|
93
81
|
}
|
|
82
|
+
import { sourceModule, sourceImport, serviceSource, usage, collision, fileStem, } from "./domain-artifact.js";
|
|
83
|
+
export { domainArtifact, resolveArtifact, assertAvailableId, sourceModule, sourceImport, serviceSource, } from "./domain-artifact.js";
|
|
94
84
|
//# sourceMappingURL=domain-planning.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"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"}
|