@empire-builder-kit/nx 1.0.0-rc.4 → 1.0.0-rc.41
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/README.md +44 -10
- package/executors.json +21 -1
- package/generators.json +10 -0
- package/package.json +31 -7
- package/src/aws/child-environment.d.ts +10 -0
- package/src/aws/child-environment.js +77 -0
- package/src/aws/identity.d.ts +13 -0
- package/src/aws/identity.js +41 -0
- package/src/aws-authority/index.d.ts +2 -0
- package/src/aws-authority/index.js +6 -0
- package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
- package/src/aws-authority/lambda-policy-ordering.js +56 -0
- package/src/aws-authority/stage-authority.d.ts +248 -0
- package/src/aws-authority/stage-authority.js +3558 -0
- package/src/blueprints/external-sandbox.d.ts +1 -1
- package/src/blueprints/external-sandbox.js +21 -9
- package/src/blueprints/manifest.d.ts +1 -1
- package/src/blueprints/resolver.js +28 -15
- package/src/cli/bootstrap.d.ts +1 -1
- package/src/cli/deploy-runtime.d.ts +30 -0
- package/src/cli/deploy-runtime.js +174 -0
- package/src/cli/dev-command.d.ts +18 -4
- package/src/cli/dev-command.js +71 -0
- package/src/cli/main.d.ts +9 -1
- package/src/cli/main.js +157 -24
- package/src/cli/output.d.ts +1 -1
- package/src/cli/output.js +1 -1
- package/src/cli/personal-secret-runtime.d.ts +12 -0
- package/src/cli/personal-secret-runtime.js +18 -3
- package/src/cli/secret-terminal.js +1 -1
- package/src/container-images.d.ts +1 -1
- package/src/container-images.js +1 -1
- package/src/developer-agent/context.js +41 -9
- package/src/developer-agent/generator-planning.js +20 -6
- package/src/developer-agent/git-inspection.d.ts +6 -2
- package/src/developer-agent/git-inspection.js +78 -6
- package/src/developer-agent/model.d.ts +5 -3
- package/src/developer-agent/model.js +4 -4
- package/src/developer-agent/operation-registry.d.ts +15 -0
- package/src/developer-agent/operation-registry.js +342 -49
- package/src/developer-agent/planning.d.ts +8 -1
- package/src/developer-agent/planning.js +39 -16
- package/src/developer-agent/preview-changes.d.ts +2 -0
- package/src/developer-agent/preview-changes.js +14 -2
- package/src/developer-agent/preview-source.js +3 -0
- package/src/developer-agent/validation.js +25 -9
- package/src/developer-agent/workspace-inspection.js +60 -5
- package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
- package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
- package/src/executors/deployment-plan/deployment-plan.js +57 -2
- package/src/executors/dev-doctor/dev-doctor.js +13 -6
- package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
- package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
- package/src/executors/dev-task-cleanup/schema.json +9 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
- package/src/executors/fleet/fleet.js +1 -1
- package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
- package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
- package/src/executors/foundation-preflight/schema.json +5 -0
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
- package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
- package/src/executors/foundation-profile-preflight/schema.json +15 -4
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
- package/src/executors/foundation-remove-preflight/schema.json +6 -1
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
- package/src/executors/github-bootstrap/schema.json +7 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
- package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
- package/src/executors/infrastructure-plan/schema.json +12 -52
- package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
- package/src/executors/local-deploy/federated-credential-transport.js +252 -0
- package/src/executors/local-deploy/local-approval.d.ts +18 -0
- package/src/executors/local-deploy/local-approval.js +39 -0
- package/src/executors/local-deploy/local-deploy.d.ts +112 -0
- package/src/executors/local-deploy/local-deploy.js +1404 -0
- package/src/executors/local-deploy/schema.json +70 -0
- package/src/executors/refresh/refresh.js +2 -2
- package/src/executors/remove/remove.js +2 -2
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
- package/src/executors/router-waf-rehearsal/schema.json +29 -0
- package/src/executors/secret-initialize/schema.json +42 -0
- package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
- package/src/executors/secret-initialize/secret-initialize.js +297 -0
- package/src/executors/secret-metadata/schema.json +5 -0
- package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
- package/src/executors/secret-metadata/secret-metadata.js +129 -30
- package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
- package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
- package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
- package/src/executors/sst-lifecycle/governed-native-operation.js +163 -0
- package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
- package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +46 -6
- package/src/executors/sst-lifecycle/run-sst-command.js +750 -71
- package/src/executors/sst-lifecycle/schema.json +8 -1
- package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
- package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
- package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
- package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
- package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
- package/src/executors/sst-lifecycle/task-unlock.js +126 -0
- package/src/executors/unlock/unlock.js +2 -2
- package/src/foundation/capability-plan.d.ts +43 -0
- package/src/foundation/capability-plan.js +168 -0
- package/src/foundation/cost-estimate.d.ts +170 -0
- package/src/foundation/cost-estimate.js +683 -0
- package/src/foundation/discovery.d.ts +14 -11
- package/src/foundation/discovery.js +32 -6
- package/src/foundation/index.d.ts +4 -0
- package/src/foundation/index.js +11 -0
- package/src/foundation/local-database-contract.d.ts +20 -0
- package/src/foundation/local-database-contract.js +262 -13
- package/src/foundation/local-private-smoke-access.d.ts +20 -0
- package/src/foundation/local-private-smoke-access.js +197 -0
- package/src/foundation/logging-preflight.js +1 -1
- package/src/foundation/logging.d.ts +3 -1
- package/src/foundation/logging.js +1 -1
- package/src/foundation/partial-state.d.ts +10 -0
- package/src/foundation/partial-state.js +21 -0
- package/src/foundation/preflight.js +37 -18
- package/src/foundation/private-smoke-access.d.ts +25 -0
- package/src/foundation/private-smoke-access.js +135 -0
- package/src/foundation/private-smoke-admission.d.ts +45 -0
- package/src/foundation/private-smoke-admission.js +180 -0
- package/src/foundation/private-smoke-control-plane.d.ts +18 -0
- package/src/foundation/private-smoke-control-plane.js +184 -0
- package/src/foundation/provision-database-bindings.d.ts +5 -0
- package/src/foundation/provision-database-bindings.js +41 -8
- package/src/foundation/provision-logical-database.js +15 -8
- package/src/foundation/requirements.d.ts +3 -3
- package/src/foundation/requirements.js +24 -12
- package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
- package/src/foundation/router-waf-rate-rehearsal.js +210 -0
- package/src/foundation/router-waf.d.ts +149 -0
- package/src/foundation/router-waf.js +809 -0
- package/src/foundation/stages.d.ts +1 -0
- package/src/foundation/stages.js +11 -0
- package/src/generators/blueprint/blueprint.d.ts +5 -0
- package/src/generators/blueprint/blueprint.js +102 -0
- package/src/generators/blueprint/files.d.ts +6 -0
- package/src/generators/blueprint/files.js +217 -0
- package/src/generators/blueprint/schema.d.ts +4 -0
- package/src/generators/blueprint/schema.json +18 -0
- package/src/generators/formatting.d.ts +8 -0
- package/src/generators/formatting.js +141 -0
- package/src/generators/function/function.js +38 -17
- package/src/generators/logging-registry.d.ts +2 -0
- package/src/generators/logging-registry.js +22 -0
- package/src/generators/post-generation-install.js +2 -2
- package/src/generators/preset/dependency-overrides.d.ts +8 -0
- package/src/generators/preset/dependency-overrides.js +55 -0
- package/src/generators/preset/generator.js +43 -3
- package/src/generators/preset/schema.d.ts +10 -0
- package/src/generators/preset/schema.json +47 -0
- package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
- package/src/generators/preset/workspace-files-adopter-skills.js +324 -0
- package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
- package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
- package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
- package/src/generators/preset/workspace-files-ci-install.js +196 -0
- package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
- package/src/generators/preset/workspace-files-developer-agent.js +162 -44
- package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
- package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
- package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
- package/src/generators/preset/workspace-files-performance-cost.js +8 -8
- package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
- package/src/generators/preset/workspace-files-performance-load.js +39 -25
- package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
- package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
- package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
- package/src/generators/preset/workspace-files-stage-authority.js +529 -0
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +65 -0
- package/src/generators/preset/workspace-files-thin-deploy.js +2507 -0
- package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
- package/src/generators/preset/workspace-files-thin-docs.js +370 -0
- package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
- package/src/generators/preset/workspace-files-thin-release.js +26 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
- package/src/generators/preset/workspace-files.d.ts +18 -2
- package/src/generators/preset/workspace-files.js +1525 -609
- package/src/generators/repository-policy/repository-policy.js +235 -5
- package/src/generators/repository-policy/schema.d.ts +10 -0
- package/src/generators/repository-policy/schema.json +80 -4
- package/src/generators/repository-policy/tree-policy.d.ts +3 -0
- package/src/generators/repository-policy/tree-policy.js +25 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js +49 -11
- package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-api-files.js +130 -414
- package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
- package/src/generators/slice/built-in-plan-authorization-files.js +102 -334
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +975 -233
- package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
- package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
- package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
- package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-data-files.js +176 -1200
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
- package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +25 -2
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
- package/src/generators/slice/built-in-plan-frontend-files.js +14 -3
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -730
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +75 -14
- package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
- package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
- package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
- package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
- package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
- package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
- package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
- package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
- package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
- package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
- package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-metadata-files.js +159 -29
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
- package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +585 -97
- package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
- package/src/generators/slice/built-in-plan-project-files.js +141 -135
- package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-release-files.js +310 -70
- package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-reliability-files.js +283 -44
- package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
- package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
- package/src/generators/slice/built-in-plan-shared.js +41 -19
- package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
- package/src/generators/slice/built-in-plan-sql-events.js +276 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +304 -172
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.js +180 -0
- package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
- package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
- package/src/generators/slice/built-in-plan-verification-files.js +76 -2
- package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-web-files.js +223 -16
- package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
- package/src/generators/slice/built-in-plan.d.ts +11 -1
- package/src/generators/slice/built-in-plan.js +83 -30
- package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
- package/src/generators/slice/data-policy-review-seed.js +22 -0
- package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
- package/src/generators/slice/deployed-smoke-readiness.js +214 -0
- package/src/generators/slice/local-source-identity.d.ts +2 -0
- package/src/generators/slice/local-source-identity.js +31 -0
- package/src/generators/slice/persistence-contract.d.ts +14 -0
- package/src/generators/slice/persistence-contract.js +32 -0
- package/src/generators/slice/slice.js +61 -50
- package/src/generators/sql/schema.d.ts +7 -0
- package/src/generators/sql/schema.json +38 -0
- package/src/generators/sql/sql.d.ts +6 -0
- package/src/generators/sql/sql.js +53 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
- package/src/generators/upgrade/upgrade.d.ts +15 -1
- package/src/generators/upgrade/upgrade.js +435 -44
- package/src/generators/workload/frozen-container.d.ts +1 -1
- package/src/generators/workload/performance-registration.d.ts +1 -0
- package/src/generators/workload/performance-registration.js +9 -11
- package/src/generators/workload/service-performance-files.d.ts +1 -0
- package/src/generators/workload/service-performance-files.js +27 -7
- package/src/generators/workload/workload.d.ts +1 -1
- package/src/generators/workload/workload.js +105 -29
- package/src/git-policy/action-pins.d.ts +5 -0
- package/src/git-policy/action-pins.js +5 -0
- package/src/git-policy/github-bootstrap.d.ts +48 -8
- package/src/git-policy/github-bootstrap.js +344 -176
- package/src/git-policy/routing.d.ts +7 -1
- package/src/git-policy/routing.js +62 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/infrastructure-change/local-capability.d.ts +73 -0
- package/src/infrastructure-change/local-capability.js +114 -0
- package/src/infrastructure-change/model.d.ts +25 -4
- package/src/infrastructure-change/model.js +1 -0
- package/src/infrastructure-change/normalize.d.ts +4 -0
- package/src/infrastructure-change/normalize.js +47 -7
- package/src/infrastructure-change/plan.d.ts +30 -3
- package/src/infrastructure-change/plan.js +323 -13
- package/src/infrastructure-change/risk.d.ts +3 -1
- package/src/infrastructure-change/risk.js +96 -16
- package/src/local-dev/browser-verification.d.ts +37 -0
- package/src/local-dev/browser-verification.js +281 -0
- package/src/local-dev/contracts.d.ts +10 -1
- package/src/local-dev/contracts.js +114 -13
- package/src/local-dev/dev-command-core.js +24 -5
- package/src/local-dev/docker-credential-health.d.ts +14 -0
- package/src/local-dev/docker-credential-health.js +94 -0
- package/src/local-dev/environment-inspector.d.ts +7 -0
- package/src/local-dev/environment-inspector.js +42 -15
- package/src/local-dev/environment-state.js +2 -2
- package/src/local-dev/errors.d.ts +1 -1
- package/src/local-dev/errors.js +2 -0
- package/src/local-dev/fleet-client.js +2 -2
- package/src/local-dev/fleet-configuration.js +57 -25
- package/src/local-dev/fleet-inventory.js +58 -22
- package/src/local-dev/fleet-ipc.d.ts +7 -0
- package/src/local-dev/fleet-ipc.js +14 -2
- package/src/local-dev/fleet-launcher.d.ts +6 -0
- package/src/local-dev/fleet-launcher.js +16 -4
- package/src/local-dev/fleet-logs.js +50 -22
- package/src/local-dev/fleet-process.d.ts +20 -1
- package/src/local-dev/fleet-process.js +197 -41
- package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
- package/src/local-dev/fleet-runner-evidence.js +56 -0
- package/src/local-dev/fleet-runtime.js +268 -229
- package/src/local-dev/fleet-session.d.ts +2 -0
- package/src/local-dev/fleet-session.js +28 -11
- package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
- package/src/local-dev/fleet-state.d.ts +5 -2
- package/src/local-dev/fleet-state.js +25 -4
- package/src/local-dev/fleet-supervisor.d.ts +3 -0
- package/src/local-dev/fleet-supervisor.js +66 -11
- package/src/local-dev/fleet-web-start.d.ts +12 -0
- package/src/local-dev/fleet-web-start.js +48 -0
- package/src/local-dev/identity.js +3 -14
- package/src/local-dev/index.d.ts +1 -0
- package/src/local-dev/index.js +1 -0
- package/src/local-dev/native-completion.d.ts +9 -0
- package/src/local-dev/native-completion.js +130 -0
- package/src/local-dev/nx-workspace.d.ts +4 -2
- package/src/local-dev/nx-workspace.js +11 -6
- package/src/local-dev/personal-stage.d.ts +4 -5
- package/src/local-dev/personal-stage.js +6 -54
- package/src/local-dev/port-claims.d.ts +13 -0
- package/src/local-dev/port-claims.js +46 -0
- package/src/local-dev/ports.d.ts +14 -2
- package/src/local-dev/ports.js +78 -3
- package/src/local-dev/private-state.d.ts +11 -0
- package/src/local-dev/private-state.js +146 -40
- package/src/local-dev/process-group.d.ts +4 -0
- package/src/local-dev/process-group.js +29 -0
- package/src/local-dev/process-identity.d.ts +8 -0
- package/src/local-dev/process-identity.js +31 -1
- package/src/local-dev/proxy.js +11 -12
- package/src/local-dev/runtime-paths.js +1 -1
- package/src/local-dev/slice-claim.js +1 -1
- package/src/local-dev/slice-runner.d.ts +15 -6
- package/src/local-dev/slice-runner.js +189 -54
- package/src/local-dev/task-attachment.d.ts +17 -0
- package/src/local-dev/task-attachment.js +73 -0
- package/src/local-dev/task-authority.d.ts +10 -0
- package/src/local-dev/task-authority.js +27 -0
- package/src/local-dev/task-identity.d.ts +33 -0
- package/src/local-dev/task-identity.js +418 -0
- package/src/local-dev/task-native-writer.d.ts +18 -0
- package/src/local-dev/task-native-writer.js +329 -0
- package/src/local-dev/tls.js +8 -2
- package/src/local-dev/web-launch.d.ts +9 -0
- package/src/local-dev/web-launch.js +130 -0
- package/src/ownership/composition.d.ts +2 -1
- package/src/ownership/composition.js +1 -0
- package/src/performance/cost-collection.d.ts +1 -1
- package/src/performance/cost-collection.js +4 -2
- package/src/performance/cost-controls.d.ts +8 -4
- package/src/performance/cost-controls.js +39 -28
- package/src/performance/evidence.d.ts +1 -1
- package/src/performance/evidence.js +5 -3
- package/src/performance/load-safety.js +5 -3
- package/src/performance/model.d.ts +4 -4
- package/src/performance/model.js +4 -5
- package/src/performance/scenario.d.ts +22 -0
- package/src/performance/scenario.js +100 -92
- package/src/release/index.d.ts +0 -2
- package/src/release/index.js +0 -2
- package/src/release/source-authority.d.ts +5 -5
- package/src/release/source-authority.js +141 -124
- package/src/repository-policy/aurora-preflight.d.ts +1 -1
- package/src/repository-policy/aurora-preflight.js +4 -1
- package/src/repository-policy/capacity-migration.d.ts +3 -0
- package/src/repository-policy/capacity-migration.js +21 -0
- package/src/repository-policy/deployment-plan.d.ts +4 -1
- package/src/repository-policy/deployment-plan.js +9 -0
- package/src/repository-policy/foundation-profile.js +10 -1
- package/src/repository-policy/policy.d.ts +57 -3
- package/src/repository-policy/policy.js +497 -11
- package/src/schemas/blueprint-v1.json +5 -4
- package/src/schemas/foundation-requirement-v1.json +5 -4
- package/src/schemas/performance-policy-v1.json +3 -3
- package/src/schemas/repository-policy-v1.json +130 -6
- package/src/schemas/testing-evidence-result-v1.json +1 -1
- package/src/secrets/adapters.d.ts +7 -2
- package/src/secrets/adapters.js +34 -3
- package/src/secrets/aws-control-plane.d.ts +10 -1
- package/src/secrets/aws-control-plane.js +67 -0
- package/src/secrets/generated-aws-control-plane.d.ts +23 -0
- package/src/secrets/generated-aws-control-plane.js +259 -0
- package/src/secrets/metadata.js +38 -10
- package/src/secrets/model.d.ts +8 -1
- package/src/secrets/model.js +24 -3
- package/src/secrets/operator.d.ts +91 -3
- package/src/secrets/operator.js +463 -13
- package/src/secrets/personal-command.d.ts +18 -2
- package/src/secrets/personal-command.js +66 -12
- package/src/secrets/registry.d.ts +2 -1
- package/src/secrets/registry.js +18 -1
- package/src/secrets/verification.js +15 -2
- package/src/secrets/workload-access.js +10 -2
- package/src/sst-environment-source-format.d.ts +6 -0
- package/src/sst-environment-source-format.js +199 -0
- package/src/supply-chain/action-pins.js +61 -7
- package/src/supply-chain/blueprint-trust-git.js +85 -24
- package/src/supply-chain/blueprint-verification-authority.js +55 -3
- package/src/supply-chain/build-output-bounds.d.ts +2 -0
- package/src/supply-chain/build-output-bounds.js +12 -0
- package/src/supply-chain/build-output.d.ts +7 -1
- package/src/supply-chain/build-output.js +177 -24
- package/src/supply-chain/ecr-scanning.d.ts +5 -3
- package/src/supply-chain/ecr-scanning.js +11 -7
- package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
- package/src/supply-chain/ecs-deployed-image.js +6 -4
- package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
- package/src/supply-chain/generated-command.js +1 -0
- package/src/supply-chain/generated-container-release-command.js +1285 -124
- package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js +200 -93
- package/src/supply-chain/generated-files.js +25 -14
- package/src/supply-chain/generated-scanner-command.js +2 -1
- package/src/supply-chain/index.d.ts +1 -1
- package/src/supply-chain/index.js +2 -1
- package/src/supply-chain/sbom.d.ts +1 -1
- package/src/supply-chain/sbom.js +30 -5
- package/src/supply-chain/scanner.js +3 -0
- package/src/testing-evidence/fixture-scope.d.ts +2 -1
- package/src/testing-evidence/fixture-scope.js +4 -2
- package/src/testing-evidence/result.d.ts +2 -1
- package/src/testing-evidence/result.js +18 -4
- package/src/workload-roles/account-baseline.d.ts +11 -0
- package/src/workload-roles/account-baseline.js +253 -16
- package/src/workload-roles/authority.d.ts +3 -1
- package/src/workload-roles/authority.js +48 -2
- package/src/workload-roles/aws-s3-state.js +27 -0
- package/src/workload-roles/boundary.d.ts +2 -1
- package/src/workload-roles/boundary.js +9 -2
- package/src/workload-roles/handler.js +52 -24
- package/src/workload-roles/index.d.ts +10 -17
- package/src/workload-roles/index.js +5 -18
- package/src/workload-roles/injection.js +1 -1
- package/src/workload-roles/provisioner.js +12 -4
- package/src/workload-roles/registration.d.ts +1 -0
- package/src/workload-roles/registration.js +5 -0
- package/src/workload-roles/stage-boundary.js +1 -1
- package/src/workload-roles/standard-slice.js +3 -3
- package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
- package/src/workspace-deployment/affected-lifecycle.js +84 -0
- package/src/workspace-deployment/identity.d.ts +3 -0
- package/src/workspace-deployment/identity.js +22 -0
- package/src/workspace-deployment/index.d.ts +4 -0
- package/src/workspace-deployment/index.js +8 -0
- package/src/workspace-deployment/migration-evidence.d.ts +29 -0
- package/src/workspace-deployment/migration-evidence.js +83 -0
- package/src/workspace-deployment/migration.d.ts +27 -0
- package/src/workspace-deployment/migration.js +109 -0
- package/src/workspace-deployment/ownership.d.ts +81 -0
- package/src/workspace-deployment/ownership.js +381 -0
- package/src/api-contract/baseline-update.js.map +0 -1
- package/src/api-contract/compatibility.js.map +0 -1
- package/src/api-contract/contract-graph.js.map +0 -1
- package/src/api-contract/evidence.js.map +0 -1
- package/src/api-contract/index.js.map +0 -1
- package/src/api-contract/model.fixtures.d.ts +0 -2
- package/src/api-contract/model.fixtures.js +0 -81
- package/src/api-contract/model.fixtures.js.map +0 -1
- package/src/api-contract/model.js.map +0 -1
- package/src/api-contract/rollout.js.map +0 -1
- package/src/authorization/compatibility.js.map +0 -1
- package/src/authorization/index.js.map +0 -1
- package/src/blueprints/execution.js.map +0 -1
- package/src/blueprints/external-sandbox.js.map +0 -1
- package/src/blueprints/index.js.map +0 -1
- package/src/blueprints/inputs.js.map +0 -1
- package/src/blueprints/manifest.js.map +0 -1
- package/src/blueprints/resolver.js.map +0 -1
- package/src/blueprints/transitions.js.map +0 -1
- package/src/cli/agent-command.js.map +0 -1
- package/src/cli/agent-runtime.js.map +0 -1
- package/src/cli/blueprint-authority.js.map +0 -1
- package/src/cli/blueprint-command.js.map +0 -1
- package/src/cli/bootstrap.js.map +0 -1
- package/src/cli/dev-command.js.map +0 -1
- package/src/cli/main.js.map +0 -1
- package/src/cli/output.js.map +0 -1
- package/src/cli/personal-secret-runtime.js.map +0 -1
- package/src/cli/secret-terminal.js.map +0 -1
- package/src/container-images.js.map +0 -1
- package/src/data-lifecycle/index.js.map +0 -1
- package/src/data-lifecycle/model.fixtures.d.ts +0 -2
- package/src/data-lifecycle/model.fixtures.js +0 -244
- package/src/data-lifecycle/model.fixtures.js.map +0 -1
- package/src/data-lifecycle/model.js.map +0 -1
- package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
- package/src/data-lifecycle/validation.js.map +0 -1
- package/src/database-retirement/contract.js.map +0 -1
- package/src/database-retirement/index.js.map +0 -1
- package/src/deterministic-order.js.map +0 -1
- package/src/developer-agent/context.js.map +0 -1
- package/src/developer-agent/generator-planning.js.map +0 -1
- package/src/developer-agent/generator-preview.js.map +0 -1
- package/src/developer-agent/git-inspection.js.map +0 -1
- package/src/developer-agent/handoff.js.map +0 -1
- package/src/developer-agent/index.js.map +0 -1
- package/src/developer-agent/model.js.map +0 -1
- package/src/developer-agent/operation-registry.js.map +0 -1
- package/src/developer-agent/ordering.js.map +0 -1
- package/src/developer-agent/planning.js.map +0 -1
- package/src/developer-agent/preview-changes.js.map +0 -1
- package/src/developer-agent/preview-source.js.map +0 -1
- package/src/developer-agent/validation.js.map +0 -1
- package/src/developer-agent/workspace-inspection.js.map +0 -1
- package/src/developer-agent/workspace-path.js.map +0 -1
- package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
- package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
- package/src/executors/deploy/deploy.js.map +0 -1
- package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
- package/src/executors/dev/dev.js.map +0 -1
- package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
- package/src/executors/dev-setup/dev-setup.js.map +0 -1
- package/src/executors/developer-context/developer-context.js.map +0 -1
- package/src/executors/fleet/fleet.js.map +0 -1
- package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
- package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
- package/src/executors/refresh/refresh.js.map +0 -1
- package/src/executors/remove/remove.js.map +0 -1
- package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
- package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
- package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
- package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
- package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
- package/src/executors/unlock/unlock.js.map +0 -1
- package/src/executors/work-markers/work-markers.js.map +0 -1
- package/src/foundation/discovery.js.map +0 -1
- package/src/foundation/index.js.map +0 -1
- package/src/foundation/local-database-contract.js.map +0 -1
- package/src/foundation/logging-preflight.js.map +0 -1
- package/src/foundation/logging.js.map +0 -1
- package/src/foundation/preflight.js.map +0 -1
- package/src/foundation/provision-database-bindings.js.map +0 -1
- package/src/foundation/provision-logical-database.js.map +0 -1
- package/src/foundation/requirements.js.map +0 -1
- package/src/foundation/router-origin-proof.js.map +0 -1
- package/src/foundation/stages.js.map +0 -1
- package/src/frontend-security/index.js.map +0 -1
- package/src/frontend-security/security-headers.js.map +0 -1
- package/src/generators/feature-registry.js.map +0 -1
- package/src/generators/function/function.js.map +0 -1
- package/src/generators/job/job.js.map +0 -1
- package/src/generators/logging-registry.js.map +0 -1
- package/src/generators/post-generation-install.js.map +0 -1
- package/src/generators/preset/generator.js.map +0 -1
- package/src/generators/preset/tool-versions.js.map +0 -1
- package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
- package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
- package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
- package/src/generators/preset/workspace-files.js.map +0 -1
- package/src/generators/repository-policy/repository-policy.js.map +0 -1
- package/src/generators/service/service.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-shared.js.map +0 -1
- package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
- package/src/generators/slice/built-in-plan.js.map +0 -1
- package/src/generators/slice/slice.js.map +0 -1
- package/src/generators/upgrade/upgrade.js.map +0 -1
- package/src/generators/workload/frozen-container.js.map +0 -1
- package/src/generators/workload/performance-registration.js.map +0 -1
- package/src/generators/workload/reliability-registration.js.map +0 -1
- package/src/generators/workload/service-performance-files.js.map +0 -1
- package/src/generators/workload/workload.js.map +0 -1
- package/src/git-policy/action-pins.js.map +0 -1
- package/src/git-policy/github-bootstrap.js.map +0 -1
- package/src/git-policy/index.js.map +0 -1
- package/src/git-policy/routing.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/infrastructure-change/convergence.js.map +0 -1
- package/src/infrastructure-change/drift.js.map +0 -1
- package/src/infrastructure-change/index.js.map +0 -1
- package/src/infrastructure-change/model.js.map +0 -1
- package/src/infrastructure-change/normalize.js.map +0 -1
- package/src/infrastructure-change/plan.js.map +0 -1
- package/src/infrastructure-change/risk.js.map +0 -1
- package/src/infrastructure-change/summary.js.map +0 -1
- package/src/local-dev/context-discovery.js.map +0 -1
- package/src/local-dev/contract-validation.js.map +0 -1
- package/src/local-dev/contracts.js.map +0 -1
- package/src/local-dev/control-contract.js.map +0 -1
- package/src/local-dev/dev-command-core.js.map +0 -1
- package/src/local-dev/effects.js.map +0 -1
- package/src/local-dev/environment-inspector.js.map +0 -1
- package/src/local-dev/environment-state.js.map +0 -1
- package/src/local-dev/errors.js.map +0 -1
- package/src/local-dev/fleet-client.js.map +0 -1
- package/src/local-dev/fleet-configuration.js.map +0 -1
- package/src/local-dev/fleet-inventory.js.map +0 -1
- package/src/local-dev/fleet-ipc.js.map +0 -1
- package/src/local-dev/fleet-launcher.js.map +0 -1
- package/src/local-dev/fleet-lock.js.map +0 -1
- package/src/local-dev/fleet-logs.js.map +0 -1
- package/src/local-dev/fleet-process.js.map +0 -1
- package/src/local-dev/fleet-runtime.js.map +0 -1
- package/src/local-dev/fleet-session.js.map +0 -1
- package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
- package/src/local-dev/fleet-startup.js.map +0 -1
- package/src/local-dev/fleet-state.js.map +0 -1
- package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
- package/src/local-dev/fleet-supervisor.js.map +0 -1
- package/src/local-dev/gateway-daemon.js.map +0 -1
- package/src/local-dev/gateway.js.map +0 -1
- package/src/local-dev/identity.js.map +0 -1
- package/src/local-dev/index.js.map +0 -1
- package/src/local-dev/local-context.js.map +0 -1
- package/src/local-dev/nx-workspace.js.map +0 -1
- package/src/local-dev/personal-secret-ledger.js.map +0 -1
- package/src/local-dev/personal-stage.js.map +0 -1
- package/src/local-dev/portless.js.map +0 -1
- package/src/local-dev/ports.js.map +0 -1
- package/src/local-dev/private-state.js.map +0 -1
- package/src/local-dev/process-identity.js.map +0 -1
- package/src/local-dev/proxy.js.map +0 -1
- package/src/local-dev/runtime-paths.js.map +0 -1
- package/src/local-dev/secret-slice-claim.js.map +0 -1
- package/src/local-dev/slice-claim.js.map +0 -1
- package/src/local-dev/slice-runner.js.map +0 -1
- package/src/local-dev/tls.js.map +0 -1
- package/src/ownership/composition.js.map +0 -1
- package/src/ownership/foundation-record.js.map +0 -1
- package/src/ownership/hash.js.map +0 -1
- package/src/ownership/index.js.map +0 -1
- package/src/ownership/json-ownership.js.map +0 -1
- package/src/ownership/record.js.map +0 -1
- package/src/ownership/workspace-record.js.map +0 -1
- package/src/performance/cost-collection.js.map +0 -1
- package/src/performance/cost-controls.js.map +0 -1
- package/src/performance/evidence.js.map +0 -1
- package/src/performance/index.js.map +0 -1
- package/src/performance/load-safety.js.map +0 -1
- package/src/performance/model.js.map +0 -1
- package/src/performance/pr-artifact-budget.js.map +0 -1
- package/src/performance/runner.js.map +0 -1
- package/src/performance/scenario-endpoint.js.map +0 -1
- package/src/performance/scenario.js.map +0 -1
- package/src/performance/test-fixtures.d.ts +0 -7
- package/src/performance/test-fixtures.js +0 -169
- package/src/performance/test-fixtures.js.map +0 -1
- package/src/performance/unit-cost.js.map +0 -1
- package/src/release/index.js.map +0 -1
- package/src/release/lifecycle.js.map +0 -1
- package/src/release/manifest.js.map +0 -1
- package/src/release/rollout.js.map +0 -1
- package/src/release/source-authority.js.map +0 -1
- package/src/repository-policy/aurora-preflight.js.map +0 -1
- package/src/repository-policy/deployment-plan.js.map +0 -1
- package/src/repository-policy/foundation-profile.js.map +0 -1
- package/src/repository-policy/index.js.map +0 -1
- package/src/repository-policy/policy.js.map +0 -1
- package/src/secrets/adapters.js.map +0 -1
- package/src/secrets/aws-control-plane.js.map +0 -1
- package/src/secrets/declaration-verification.js.map +0 -1
- package/src/secrets/guardrails.js.map +0 -1
- package/src/secrets/index.js.map +0 -1
- package/src/secrets/metadata.js.map +0 -1
- package/src/secrets/model.js.map +0 -1
- package/src/secrets/operator.js.map +0 -1
- package/src/secrets/permissions.js.map +0 -1
- package/src/secrets/personal-command.js.map +0 -1
- package/src/secrets/personal-ledger.js.map +0 -1
- package/src/secrets/registry.js.map +0 -1
- package/src/secrets/verification.js.map +0 -1
- package/src/secrets/workload-access.js.map +0 -1
- package/src/supply-chain/action-pins.js.map +0 -1
- package/src/supply-chain/blueprint-trust-git.js.map +0 -1
- package/src/supply-chain/blueprint-trust-process.js.map +0 -1
- package/src/supply-chain/blueprint-trust.js.map +0 -1
- package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
- package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
- package/src/supply-chain/build-output.js.map +0 -1
- package/src/supply-chain/common.js.map +0 -1
- package/src/supply-chain/container-artifact-contract.js.map +0 -1
- package/src/supply-chain/container-release.js.map +0 -1
- package/src/supply-chain/ecr-applicability.js.map +0 -1
- package/src/supply-chain/ecr-scanning.js.map +0 -1
- package/src/supply-chain/ecs-deployed-image.js.map +0 -1
- package/src/supply-chain/errors.js.map +0 -1
- package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
- package/src/supply-chain/generated-command.js.map +0 -1
- package/src/supply-chain/generated-container-release-command.js.map +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
- package/src/supply-chain/generated-files.js.map +0 -1
- package/src/supply-chain/generated-scanner-command.js.map +0 -1
- package/src/supply-chain/index.js.map +0 -1
- package/src/supply-chain/inventory.js.map +0 -1
- package/src/supply-chain/license-expression.js.map +0 -1
- package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
- package/src/supply-chain/policy.js.map +0 -1
- package/src/supply-chain/publication.js.map +0 -1
- package/src/supply-chain/sbom.js.map +0 -1
- package/src/supply-chain/scanner.js.map +0 -1
- package/src/supply-chain/vendored-source.js.map +0 -1
- package/src/testing-evidence/fixture-scope.js.map +0 -1
- package/src/testing-evidence/index.js.map +0 -1
- package/src/testing-evidence/quarantine.js.map +0 -1
- package/src/testing-evidence/result.js.map +0 -1
- package/src/testing-evidence/runner-adapter.js.map +0 -1
- package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
- package/src/validation.js.map +0 -1
- package/src/work-markers/index.js.map +0 -1
- package/src/work-markers/work-markers.js.map +0 -1
- package/src/workload-roles/account-baseline.js.map +0 -1
- package/src/workload-roles/authority.js.map +0 -1
- package/src/workload-roles/aws-adapter.js.map +0 -1
- package/src/workload-roles/aws-internal-handler.js.map +0 -1
- package/src/workload-roles/aws-s3-state.js.map +0 -1
- package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
- package/src/workload-roles/boundary.js.map +0 -1
- package/src/workload-roles/convergence.js.map +0 -1
- package/src/workload-roles/effective-policy.js.map +0 -1
- package/src/workload-roles/handler.js.map +0 -1
- package/src/workload-roles/history.js.map +0 -1
- package/src/workload-roles/index.js.map +0 -1
- package/src/workload-roles/injection.js.map +0 -1
- package/src/workload-roles/manifest.js.map +0 -1
- package/src/workload-roles/provisioner.js.map +0 -1
- package/src/workload-roles/registration.js.map +0 -1
- package/src/workload-roles/stage-boundary.js.map +0 -1
- package/src/workload-roles/standard-slice.js.map +0 -1
|
@@ -10,6 +10,7 @@ export declare function isFoundationStage(stage: string): stage is FoundationSta
|
|
|
10
10
|
export declare function isPersonalStage(stage: string): boolean;
|
|
11
11
|
export declare function requireFoundationStage(stage: string): FoundationStage;
|
|
12
12
|
export declare function resolveFoundationStages(options: {
|
|
13
|
+
activeFoundationStages?: readonly string[];
|
|
13
14
|
consumerStage: string;
|
|
14
15
|
foundationStage?: string;
|
|
15
16
|
}): FoundationStageResolution;
|
package/src/foundation/stages.js
CHANGED
|
@@ -34,6 +34,13 @@ function requireFoundationStage(stage) {
|
|
|
34
34
|
return normalized;
|
|
35
35
|
}
|
|
36
36
|
function resolveFoundationStages(options) {
|
|
37
|
+
if (options.activeFoundationStages !== undefined &&
|
|
38
|
+
(options.activeFoundationStages.length === 0 ||
|
|
39
|
+
new Set(options.activeFoundationStages).size !==
|
|
40
|
+
options.activeFoundationStages.length ||
|
|
41
|
+
options.activeFoundationStages.some((stage) => !isFoundationStage(stage)))) {
|
|
42
|
+
throw new Error('Active Foundation stages must be a nonempty unique subset of development, staging, and production.');
|
|
43
|
+
}
|
|
37
44
|
const consumerStage = requireStage(options.consumerStage, 'Consumer stage');
|
|
38
45
|
if (!isFoundationStage(consumerStage) && !isPersonalStage(consumerStage)) {
|
|
39
46
|
throw new Error(`Consumer stage ${consumerStage} is neither canonical nor a framework-derived personal stage.`);
|
|
@@ -50,6 +57,10 @@ function resolveFoundationStages(options) {
|
|
|
50
57
|
}
|
|
51
58
|
throw new Error(`Personal consumer stage ${consumerStage} may use only the development Foundation.`);
|
|
52
59
|
}
|
|
60
|
+
if (options.activeFoundationStages !== undefined &&
|
|
61
|
+
!options.activeFoundationStages.includes(foundationStage)) {
|
|
62
|
+
throw new Error(`Foundation stage ${foundationStage} is inactive for this deployment profile.`);
|
|
63
|
+
}
|
|
53
64
|
return {
|
|
54
65
|
consumerStage,
|
|
55
66
|
foundationStage,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
import type { BlueprintGeneratorSchema } from './schema.js';
|
|
3
|
+
/** Scaffold source owned by the adopter, without executing it or minting trust. */
|
|
4
|
+
export declare function blueprintGenerator(tree: Tree, options: BlueprintGeneratorSchema): Promise<void>;
|
|
5
|
+
export default blueprintGenerator;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blueprintGenerator = blueprintGenerator;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const prettier_1 = require("prettier");
|
|
6
|
+
const semver_1 = require("semver");
|
|
7
|
+
const validation_js_1 = require("../../validation.js");
|
|
8
|
+
const manifest_js_1 = require("../../blueprints/manifest.js");
|
|
9
|
+
const post_generation_install_js_1 = require("../post-generation-install.js");
|
|
10
|
+
const files_js_1 = require("./files.js");
|
|
11
|
+
/** Scaffold source owned by the adopter, without executing it or minting trust. */
|
|
12
|
+
async function blueprintGenerator(tree, options) {
|
|
13
|
+
const name = options.name;
|
|
14
|
+
if (typeof name !== 'string' ||
|
|
15
|
+
name.length > 63 ||
|
|
16
|
+
!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(name) ||
|
|
17
|
+
/^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])$/.test(name)) {
|
|
18
|
+
throw new Error('Blueprint name must be a lowercase hyphenated name of at most 63 characters.');
|
|
19
|
+
}
|
|
20
|
+
(0, post_generation_install_js_1.assertPostGenerationInstallWorkspaceAvailable)(tree, `generator:blueprint:${name}`);
|
|
21
|
+
const workspace = (0, devkit_1.readJson)(tree, 'package.json');
|
|
22
|
+
if (!(0, validation_js_1.isRecord)(workspace) ||
|
|
23
|
+
typeof workspace.name !== 'string' ||
|
|
24
|
+
!/^[a-z0-9][a-z0-9-]*$/.test(workspace.name) ||
|
|
25
|
+
!(0, validation_js_1.isRecord)(workspace.devDependencies) ||
|
|
26
|
+
typeof workspace.devDependencies['@empire-builder-kit/nx'] !== 'string' ||
|
|
27
|
+
!(0, semver_1.valid)(workspace.devDependencies['@empire-builder-kit/nx'])) {
|
|
28
|
+
throw new Error('Blueprint authoring requires an EBK workspace with an unscoped name and exact @empire-builder-kit/nx version.');
|
|
29
|
+
}
|
|
30
|
+
if (workspace.ebk !== undefined && !(0, validation_js_1.isRecord)(workspace.ebk)) {
|
|
31
|
+
throw new Error('Workspace ebk configuration must be an object.');
|
|
32
|
+
}
|
|
33
|
+
const ebk = (0, validation_js_1.isRecord)(workspace.ebk) ? workspace.ebk : {};
|
|
34
|
+
if (ebk.blueprints !== undefined && !(0, validation_js_1.isRecord)(ebk.blueprints)) {
|
|
35
|
+
throw new Error('Workspace ebk.blueprints configuration must be an object.');
|
|
36
|
+
}
|
|
37
|
+
const blueprints = (0, validation_js_1.isRecord)(ebk.blueprints) ? ebk.blueprints : {};
|
|
38
|
+
if ((blueprints.localPackages !== undefined &&
|
|
39
|
+
(!(0, validation_js_1.isRecord)(blueprints.localPackages) ||
|
|
40
|
+
Object.values(blueprints.localPackages).some((path) => typeof path !== 'string'))) ||
|
|
41
|
+
(blueprints.localAuthoringPackages !== undefined &&
|
|
42
|
+
(!Array.isArray(blueprints.localAuthoringPackages) ||
|
|
43
|
+
blueprints.localAuthoringPackages.some((entry) => typeof entry !== 'string')))) {
|
|
44
|
+
throw new Error('Existing Blueprint local authoring mappings must be valid before scaffolding.');
|
|
45
|
+
}
|
|
46
|
+
const root = `blueprints/${name}`;
|
|
47
|
+
const project = `blueprint-${name}`;
|
|
48
|
+
const packageName = `@${workspace.name}/blueprint-${name}`;
|
|
49
|
+
const localPackages = (blueprints.localPackages ?? {});
|
|
50
|
+
const localAuthoringPackages = (blueprints.localAuthoringPackages ??
|
|
51
|
+
[]);
|
|
52
|
+
if (tree.isFile('blueprints') ||
|
|
53
|
+
tree.exists(root) ||
|
|
54
|
+
tree.children(root).length > 0 ||
|
|
55
|
+
tree.children('blueprints').some((entry) => entry.toLowerCase() === name) ||
|
|
56
|
+
(0, devkit_1.getProjects)(tree).has(project) ||
|
|
57
|
+
Object.prototype.hasOwnProperty.call(localPackages, packageName) ||
|
|
58
|
+
Object.values(localPackages).includes(root)) {
|
|
59
|
+
throw new Error(`Blueprint ${name} already has files, a project, or a local mapping. Choose a new name; existing authoring source is never overwritten.`);
|
|
60
|
+
}
|
|
61
|
+
const files = (0, files_js_1.createBlueprintAuthoringFiles)({
|
|
62
|
+
engine: workspace.devDependencies['@empire-builder-kit/nx'],
|
|
63
|
+
name,
|
|
64
|
+
packageName,
|
|
65
|
+
root,
|
|
66
|
+
});
|
|
67
|
+
const manifest = (0, manifest_js_1.validateBlueprintManifest)(JSON.parse(files['ebk-blueprint.json']));
|
|
68
|
+
if (!manifest.valid)
|
|
69
|
+
throw new Error('Generated Blueprint authoring manifest is invalid.');
|
|
70
|
+
const nextWorkspace = {
|
|
71
|
+
...workspace,
|
|
72
|
+
ebk: {
|
|
73
|
+
...ebk,
|
|
74
|
+
blueprints: {
|
|
75
|
+
...blueprints,
|
|
76
|
+
localPackages: { ...localPackages, [packageName]: root },
|
|
77
|
+
localAuthoringPackages: [
|
|
78
|
+
...new Set([...localAuthoringPackages, packageName]),
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
const planned = {
|
|
84
|
+
...Object.fromEntries(Object.entries(files).map(([path, contents]) => [
|
|
85
|
+
`${root}/${path}`,
|
|
86
|
+
contents,
|
|
87
|
+
])),
|
|
88
|
+
'package.json': JSON.stringify(nextWorkspace, null, 2) + '\n',
|
|
89
|
+
};
|
|
90
|
+
// Complete validation and formatting before the first write. Only this new
|
|
91
|
+
// package and the supported user-owned root ebk mapping are in scope.
|
|
92
|
+
const formatted = await Promise.all(Object.entries(planned).map(async ([path, contents]) => [
|
|
93
|
+
path,
|
|
94
|
+
options.skipFormat
|
|
95
|
+
? contents
|
|
96
|
+
: await (0, prettier_1.format)(contents, { filepath: path, singleQuote: true }),
|
|
97
|
+
]));
|
|
98
|
+
for (const [path, contents] of formatted)
|
|
99
|
+
tree.write(path, contents);
|
|
100
|
+
}
|
|
101
|
+
exports.default = blueprintGenerator;
|
|
102
|
+
//# sourceMappingURL=blueprint.js.map
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBlueprintAuthoringFiles = createBlueprintAuthoringFiles;
|
|
4
|
+
const json = (value) => JSON.stringify(value, null, 2) + '\n';
|
|
5
|
+
function createBlueprintAuthoringFiles(options) {
|
|
6
|
+
const { engine, name, packageName, root } = options;
|
|
7
|
+
return {
|
|
8
|
+
'package.json': json({
|
|
9
|
+
name: packageName,
|
|
10
|
+
version: '0.1.0',
|
|
11
|
+
private: true,
|
|
12
|
+
type: 'module',
|
|
13
|
+
description: `Adopter-owned ${name} Blueprint`,
|
|
14
|
+
files: [
|
|
15
|
+
'ebk-blueprint.json',
|
|
16
|
+
'schema.json',
|
|
17
|
+
'generator.mjs',
|
|
18
|
+
'templates',
|
|
19
|
+
],
|
|
20
|
+
scripts: { verify: 'node scripts/verify-recipe.mjs' },
|
|
21
|
+
}),
|
|
22
|
+
'ebk-blueprint.json': json({
|
|
23
|
+
$schema: 'https://empirebuilderkit.dev/schemas/blueprint-v1.json',
|
|
24
|
+
type: 'empire-builder-kit-blueprint',
|
|
25
|
+
name: packageName,
|
|
26
|
+
version: '0.1.0',
|
|
27
|
+
engine,
|
|
28
|
+
kind: 'slice',
|
|
29
|
+
generator: './generator.mjs',
|
|
30
|
+
inputs: './schema.json',
|
|
31
|
+
foundation: { contract: '^2.0.0', capabilities: ['deployment'] },
|
|
32
|
+
verification: ['verify'],
|
|
33
|
+
}),
|
|
34
|
+
'schema.json': json({
|
|
35
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
36
|
+
title: `${name} Blueprint inputs`,
|
|
37
|
+
type: 'object',
|
|
38
|
+
additionalProperties: false,
|
|
39
|
+
properties: {
|
|
40
|
+
greeting: { type: 'string', minLength: 1, maxLength: 120 },
|
|
41
|
+
},
|
|
42
|
+
required: ['greeting'],
|
|
43
|
+
}),
|
|
44
|
+
'project.json': json({
|
|
45
|
+
name: `blueprint-${name}`,
|
|
46
|
+
root,
|
|
47
|
+
sourceRoot: root,
|
|
48
|
+
projectType: 'library',
|
|
49
|
+
tags: ['scope:tooling', 'type:blueprint', 'private'],
|
|
50
|
+
targets: {
|
|
51
|
+
verify: {
|
|
52
|
+
cache: false,
|
|
53
|
+
executor: 'nx:run-commands',
|
|
54
|
+
options: {
|
|
55
|
+
command: 'node scripts/verify-recipe.mjs',
|
|
56
|
+
cwd: root,
|
|
57
|
+
forwardAllArgs: false,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
'generator.mjs': `import { readFileSync } from 'node:fs';
|
|
63
|
+
|
|
64
|
+
const json = (value) => JSON.stringify(value, null, 2) + '\\n';
|
|
65
|
+
const greetingTemplate = readFileSync(new URL('./templates/greeting.mjs', import.meta.url), 'utf8');
|
|
66
|
+
const verifyTemplate = readFileSync(new URL('./templates/verify.mjs', import.meta.url), 'utf8');
|
|
67
|
+
|
|
68
|
+
export default function generate(context) {
|
|
69
|
+
// EBK validates schema/capabilities first; keep the recipe independently testable.
|
|
70
|
+
if (typeof context.inputs.greeting !== 'string' || context.inputs.greeting.length < 1 || context.inputs.greeting.length > 120) {
|
|
71
|
+
throw new Error('greeting must contain 1–120 characters.');
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
contracts: { consumes: [], publishes: [] },
|
|
75
|
+
projects: [context.name],
|
|
76
|
+
files: [
|
|
77
|
+
{
|
|
78
|
+
path: 'package.json', mode: 'managed',
|
|
79
|
+
managedJsonPointers: ['/name', '/version', '/private', '/type'],
|
|
80
|
+
contents: json({ name: context.workspace.scope + '/' + context.name, version: '0.0.0', private: true, type: 'module' }),
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
path: 'project.json', mode: 'managed',
|
|
84
|
+
contents: json({
|
|
85
|
+
name: context.name, root: context.root, sourceRoot: context.root + '/features',
|
|
86
|
+
projectType: 'application', implicitDependencies: ['foundation'],
|
|
87
|
+
tags: ['scope:product-slice', 'type:slice', 'type:external-blueprint'],
|
|
88
|
+
targets: {
|
|
89
|
+
verify: {
|
|
90
|
+
executor: '@empire-builder-kit/nx:blueprint-verification',
|
|
91
|
+
cache: false, inputs: [], syncGenerators: [], dependsOn: [],
|
|
92
|
+
options: { kind: 'node', script: 'scripts/verify.mjs' },
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
}),
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
path: 'features/greeting.mjs', mode: 'seeded',
|
|
99
|
+
contents: greetingTemplate.replace('__GREETING_JSON__', () => JSON.stringify(context.inputs.greeting)),
|
|
100
|
+
},
|
|
101
|
+
{ path: 'scripts/verify.mjs', mode: 'managed', contents: verifyTemplate },
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
`,
|
|
106
|
+
'templates/greeting.mjs': `const greeting = __GREETING_JSON__;
|
|
107
|
+
|
|
108
|
+
export function greet(name) {
|
|
109
|
+
if (typeof name !== 'string' || name.trim().length < 1 || name.length > 100) {
|
|
110
|
+
throw new Error('name must contain 1–100 characters.');
|
|
111
|
+
}
|
|
112
|
+
return { message: greeting + ', ' + name.trim(), recipient: name.trim() };
|
|
113
|
+
}
|
|
114
|
+
`,
|
|
115
|
+
'templates/verify.mjs': `import assert from 'node:assert/strict';
|
|
116
|
+
import { greet } from '../features/greeting.mjs';
|
|
117
|
+
|
|
118
|
+
assert.equal(greet('reader').recipient, 'reader');
|
|
119
|
+
assert.equal(greet(' reader ').recipient, 'reader');
|
|
120
|
+
assert.equal(typeof greet('reader').message, 'string');
|
|
121
|
+
for (const invalid of [null, undefined, '', ' ', 42, 'a'.repeat(101)]) {
|
|
122
|
+
assert.throws(() => greet(invalid));
|
|
123
|
+
}
|
|
124
|
+
process.stdout.write('Blueprint feature verification passed.\\n');
|
|
125
|
+
`,
|
|
126
|
+
'scripts/verify-recipe.mjs': `import assert from 'node:assert/strict';
|
|
127
|
+
import { readFileSync } from 'node:fs';
|
|
128
|
+
import generate from '../generator.mjs';
|
|
129
|
+
|
|
130
|
+
const manifest = JSON.parse(readFileSync(new URL('../ebk-blueprint.json', import.meta.url), 'utf8'));
|
|
131
|
+
const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
132
|
+
assert.equal(packageJson.name, manifest.name);
|
|
133
|
+
assert.equal(packageJson.version, manifest.version);
|
|
134
|
+
for (const name of ['billing', 'notifications']) {
|
|
135
|
+
const context = {
|
|
136
|
+
foundation: { contractVersion: '2.0.0', capabilities: ['deployment'] },
|
|
137
|
+
inputs: { greeting: 'Hello \\"reader\\" \\n' }, manifest, name, root: 'packages/' + name,
|
|
138
|
+
workspace: { name: 'recipe-proof', scope: '@recipe-proof', framework: { nx: manifest.engine, runtime: manifest.engine } },
|
|
139
|
+
};
|
|
140
|
+
const plan = generate(context);
|
|
141
|
+
assert.deepEqual(generate(context), plan);
|
|
142
|
+
assert.deepEqual(plan.projects, [name]);
|
|
143
|
+
assert.equal(new Set(plan.files.map((file) => file.path)).size, plan.files.length);
|
|
144
|
+
for (const file of plan.files) {
|
|
145
|
+
assert.ok(!file.path.startsWith('/') && !file.path.split('/').includes('..'));
|
|
146
|
+
assert.ok(['managed', 'seeded'].includes(file.mode));
|
|
147
|
+
}
|
|
148
|
+
const feature = plan.files.find((file) => file.path === 'features/greeting.mjs');
|
|
149
|
+
assert.equal(feature.mode, 'seeded');
|
|
150
|
+
const { greet } = await import('data:text/javascript;base64,' + Buffer.from(feature.contents).toString('base64'));
|
|
151
|
+
assert.equal(greet('author').message, context.inputs.greeting + ', author');
|
|
152
|
+
assert.throws(() => greet(''));
|
|
153
|
+
assert.throws(() => generate({ ...context, inputs: { greeting: '' } }));
|
|
154
|
+
const project = JSON.parse(plan.files.find((file) => file.path === 'project.json').contents);
|
|
155
|
+
assert.equal(project.root, context.root);
|
|
156
|
+
assert.equal(project.targets.verify.executor, '@empire-builder-kit/nx:blueprint-verification');
|
|
157
|
+
assert.equal(project.targets.verify.cache, false);
|
|
158
|
+
}
|
|
159
|
+
process.stdout.write('Blueprint recipe verification passed.\\n');
|
|
160
|
+
`,
|
|
161
|
+
'README.md': `# ${name} Blueprint
|
|
162
|
+
|
|
163
|
+
This entire authoring package is yours. Edit its manifest, schema, generator,
|
|
164
|
+
templates and verification together. EBK does not mark these authoring files
|
|
165
|
+
managed or overwrite them during a workspace upgrade.
|
|
166
|
+
|
|
167
|
+
The manifest's \`engine\` intentionally pins the framework version used to
|
|
168
|
+
scaffold this recipe. A workspace upgrade does not assert compatibility or
|
|
169
|
+
rewrite this adopter-owned pin. Before using a newer EBK version, test this
|
|
170
|
+
recipe in a disposable upgraded workspace, update \`ebk-blueprint.json\`'s
|
|
171
|
+
\`engine\` to that tested exact version, and run the recipe verification below.
|
|
172
|
+
Then dry-run/generate and verify an instance and exercise a report-first instance
|
|
173
|
+
upgrade with seeded edits preserved. Bump the recipe's package and manifest
|
|
174
|
+
versions together and renew the integrity-bound trust record for changed bytes.
|
|
175
|
+
Do not widen the engine range merely to suppress a compatibility refusal.
|
|
176
|
+
|
|
177
|
+
Run \`pnpm nx run blueprint-${name}:verify\` to execute the recipe against two
|
|
178
|
+
Slice identities, check deterministic output, and run its seeded feature.
|
|
179
|
+
Then dry-run an instance from the workspace root:
|
|
180
|
+
|
|
181
|
+
\`\`\`bash
|
|
182
|
+
pnpm nx g @empire-builder-kit/nx:slice example --blueprint=${packageName}@0.1.0 --inputs='{"greeting":"Hello"}' --dry-run
|
|
183
|
+
\`\`\`
|
|
184
|
+
|
|
185
|
+
The generator added this exact local authoring mapping in root \`package.json\`.
|
|
186
|
+
It did not change protected trust, install a dependency, run publisher code,
|
|
187
|
+
create a receipt, or call AWS. The existing reviewed trust policy/snapshot and
|
|
188
|
+
local Docker publisher sandbox are still required for actual Slice generation.
|
|
189
|
+
If refused, follow the exact trust diagnostic; never delete the policy or
|
|
190
|
+
invent protected refs to get past it.
|
|
191
|
+
|
|
192
|
+
This starter recipe creates a tested domain function, not infrastructure. Add
|
|
193
|
+
your declared infrastructure and lifecycle targets to its file plan before
|
|
194
|
+
claiming deploy/refresh/remove support. Depend only on the public EBK packages
|
|
195
|
+
and Foundation capability contracts; do not import Foundation internals or
|
|
196
|
+
change another Slice. Prefer DynamoDB for application persistence. Declare SQL
|
|
197
|
+
only for a concrete relational requirement, not for framework inbox/outbox work.
|
|
198
|
+
|
|
199
|
+
The recipe returns \`managed\` mechanics and \`seeded\` product code. An instance
|
|
200
|
+
customizes \`features/greeting.mjs\`; change its generator/templates here to
|
|
201
|
+
evolve future instances. Keep tests meaningful for allowed customizations.
|
|
202
|
+
Use report-first \`pnpm nx g @empire-builder-kit/nx:upgrade example
|
|
203
|
+
--blueprint=${packageName}@<next-version>\`, review the report, then use \`--apply\`.
|
|
204
|
+
Bump both package and manifest versions together. Same-line upgrades preserve
|
|
205
|
+
seeded feature code. Breaking versions require the existing explicit succession
|
|
206
|
+
contract; no automatic data migration is implied.
|
|
207
|
+
|
|
208
|
+
Publication is separate: this scaffold is private. Before distributing a
|
|
209
|
+
reviewed exact package, deliberately choose its license, exports and contents,
|
|
210
|
+
remove \`private\`, and establish the normal integrity-bound trust record.
|
|
211
|
+
Local mapping grants neither registry nor protected deployment authority.
|
|
212
|
+
Read the framework Blueprint contract and generated developer-agent runbook for
|
|
213
|
+
protected verification review/receipt retention; do not forge those records.
|
|
214
|
+
`,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "EmpireBuilderKitBlueprint",
|
|
4
|
+
"title": "Scaffold an adopter-owned EBK Blueprint package",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"name": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Lowercase Blueprint recipe name, written under blueprints/<name>",
|
|
11
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
|
|
12
|
+
"maxLength": 63,
|
|
13
|
+
"$default": { "$source": "argv", "index": 0 }
|
|
14
|
+
},
|
|
15
|
+
"skipFormat": { "type": "boolean", "default": false }
|
|
16
|
+
},
|
|
17
|
+
"required": ["name"]
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
import { type Options as PrettierOptions } from 'prettier';
|
|
3
|
+
export declare function changedTreePrettierOptions(tree: Tree): PrettierOptions | undefined;
|
|
4
|
+
export declare function effectiveTreePrettierOptions(tree: Tree, path: string, changedOptions?: PrettierOptions): Promise<PrettierOptions>;
|
|
5
|
+
export declare function formatTreeContentsToFixedPoint(contents: string, options: PrettierOptions, path: string): Promise<string>;
|
|
6
|
+
export declare function formatTreeFileToFixedPoint(tree: Tree, path: string): Promise<void>;
|
|
7
|
+
export declare function createTreeFileRestorer(tree: Tree, retain: (path: string) => boolean): () => void;
|
|
8
|
+
export declare function formatChangedTreeToFixedPoint(tree: Tree, restoreProtectedFiles?: () => void): Promise<void>;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.changedTreePrettierOptions = changedTreePrettierOptions;
|
|
4
|
+
exports.effectiveTreePrettierOptions = effectiveTreePrettierOptions;
|
|
5
|
+
exports.formatTreeContentsToFixedPoint = formatTreeContentsToFixedPoint;
|
|
6
|
+
exports.formatTreeFileToFixedPoint = formatTreeFileToFixedPoint;
|
|
7
|
+
exports.createTreeFileRestorer = createTreeFileRestorer;
|
|
8
|
+
exports.formatChangedTreeToFixedPoint = formatChangedTreeToFixedPoint;
|
|
9
|
+
const devkit_1 = require("@nx/devkit");
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const prettier_1 = require("prettier");
|
|
12
|
+
const yaml_1 = require("yaml");
|
|
13
|
+
const preview_changes_js_1 = require("../developer-agent/preview-changes.js");
|
|
14
|
+
const MAX_FORMAT_PASSES = 4;
|
|
15
|
+
function changedTreePrettierOptions(tree) {
|
|
16
|
+
const changedPaths = new Set(tree.listChanges().map(({ path }) => path));
|
|
17
|
+
const candidates = [
|
|
18
|
+
'package.json',
|
|
19
|
+
'.prettierrc',
|
|
20
|
+
'.prettierrc.json',
|
|
21
|
+
'.prettierrc.yaml',
|
|
22
|
+
'.prettierrc.yml',
|
|
23
|
+
];
|
|
24
|
+
for (const path of candidates) {
|
|
25
|
+
if (!changedPaths.has(path) &&
|
|
26
|
+
!(tree instanceof preview_changes_js_1.DeferredDeveloperAgentTree &&
|
|
27
|
+
tree.hasPendingChange(path)))
|
|
28
|
+
continue;
|
|
29
|
+
const contents = tree.read(path, 'utf8');
|
|
30
|
+
if (contents === null)
|
|
31
|
+
continue;
|
|
32
|
+
let parsed;
|
|
33
|
+
try {
|
|
34
|
+
parsed =
|
|
35
|
+
path.endsWith('.yaml') || path.endsWith('.yml')
|
|
36
|
+
? (0, yaml_1.parse)(contents)
|
|
37
|
+
: JSON.parse(contents);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Workspace Prettier configuration is invalid at ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
41
|
+
}
|
|
42
|
+
if (path === 'package.json') {
|
|
43
|
+
if (typeof parsed !== 'object' ||
|
|
44
|
+
parsed === null ||
|
|
45
|
+
Array.isArray(parsed) ||
|
|
46
|
+
!Object.prototype.hasOwnProperty.call(parsed, 'prettier')) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
parsed = parsed.prettier;
|
|
50
|
+
}
|
|
51
|
+
if (typeof parsed !== 'object' ||
|
|
52
|
+
parsed === null ||
|
|
53
|
+
Array.isArray(parsed)) {
|
|
54
|
+
throw new Error(`Workspace Prettier configuration must be an object at ${path}.`);
|
|
55
|
+
}
|
|
56
|
+
return parsed;
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
async function effectiveTreePrettierOptions(tree, path, changedOptions = changedTreePrettierOptions(tree)) {
|
|
61
|
+
const systemPath = (0, node_path_1.resolve)(tree.root, path);
|
|
62
|
+
const resolvedOptions = (await (0, prettier_1.resolveConfig)(systemPath, { editorconfig: true })) ?? {};
|
|
63
|
+
return {
|
|
64
|
+
singleQuote: true,
|
|
65
|
+
...resolvedOptions,
|
|
66
|
+
...changedOptions,
|
|
67
|
+
filepath: systemPath,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async function formatTreeContentsToFixedPoint(contents, options, path) {
|
|
71
|
+
let current = contents;
|
|
72
|
+
for (let pass = 0; pass < MAX_FORMAT_PASSES; pass += 1) {
|
|
73
|
+
const formatted = await (0, prettier_1.format)(current, options);
|
|
74
|
+
if (formatted === current)
|
|
75
|
+
return current;
|
|
76
|
+
current = formatted;
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`Prettier formatting did not converge for ${path}.`);
|
|
79
|
+
}
|
|
80
|
+
async function formatTreeFileToFixedPoint(tree, path) {
|
|
81
|
+
const contents = tree.read(path, 'utf8');
|
|
82
|
+
if (contents === null) {
|
|
83
|
+
throw new Error(`Generated file is missing at ${path}.`);
|
|
84
|
+
}
|
|
85
|
+
const options = await effectiveTreePrettierOptions(tree, path);
|
|
86
|
+
tree.write(path, await formatTreeContentsToFixedPoint(contents, options, path));
|
|
87
|
+
}
|
|
88
|
+
function createTreeFileRestorer(tree, retain) {
|
|
89
|
+
const files = new Map();
|
|
90
|
+
for (const { path, type } of tree.listChanges()) {
|
|
91
|
+
if (type === 'DELETE' || !retain(path) || files.has(path))
|
|
92
|
+
continue;
|
|
93
|
+
const contents = tree.read(path);
|
|
94
|
+
if (contents !== null)
|
|
95
|
+
files.set(path, contents);
|
|
96
|
+
}
|
|
97
|
+
return () => {
|
|
98
|
+
for (const [path, contents] of files)
|
|
99
|
+
tree.write(path, contents);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function changedTreeSnapshot(tree) {
|
|
103
|
+
const paths = [
|
|
104
|
+
...new Set(tree
|
|
105
|
+
.listChanges()
|
|
106
|
+
.filter(({ type }) => type !== 'DELETE')
|
|
107
|
+
.map(({ path }) => path)),
|
|
108
|
+
].sort();
|
|
109
|
+
return JSON.stringify(paths.map((path) => [path, tree.read(path)?.toString('base64') ?? null]));
|
|
110
|
+
}
|
|
111
|
+
async function formatChangedTreeToFixedPoint(tree, restoreProtectedFiles = () => undefined) {
|
|
112
|
+
for (let pass = 0; pass < MAX_FORMAT_PASSES; pass += 1) {
|
|
113
|
+
const before = changedTreeSnapshot(tree);
|
|
114
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
115
|
+
// Nx sees only this transaction's changes, not pending configuration in
|
|
116
|
+
// an enclosing tree. Reapply that configuration without widening its diff.
|
|
117
|
+
const inheritedOptions = changedTreePrettierOptions(tree);
|
|
118
|
+
if (tree instanceof preview_changes_js_1.DeferredDeveloperAgentTree &&
|
|
119
|
+
inheritedOptions &&
|
|
120
|
+
process.env.NX_SKIP_FORMAT !== 'true') {
|
|
121
|
+
await Promise.all(tree.listChanges().map(async ({ path, type }) => {
|
|
122
|
+
if (type === 'DELETE')
|
|
123
|
+
return;
|
|
124
|
+
const options = await effectiveTreePrettierOptions(tree, path, inheritedOptions);
|
|
125
|
+
if (path.endsWith('.swcrc'))
|
|
126
|
+
options.parser = 'json';
|
|
127
|
+
const support = await (0, prettier_1.getFileInfo)((0, node_path_1.resolve)(tree.root, path), options);
|
|
128
|
+
if (support.ignored || !support.inferredParser)
|
|
129
|
+
return;
|
|
130
|
+
const contents = tree.read(path, 'utf8');
|
|
131
|
+
if (contents !== null)
|
|
132
|
+
tree.write(path, await formatTreeContentsToFixedPoint(contents, options, path));
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
restoreProtectedFiles();
|
|
136
|
+
if (changedTreeSnapshot(tree) === before)
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
throw new Error('Workspace formatting did not converge.');
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=formatting.js.map
|