@endora-commerce/platform 0.100.0
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/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/cli/dispatch.d.ts +146 -0
- package/dist/cli/dispatch.d.ts.map +1 -0
- package/dist/cli/dispatch.js +259 -0
- package/dist/cli/dispatch.js.map +1 -0
- package/dist/cli/index.d.ts +58 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +58 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/module-commands.d.ts +118 -0
- package/dist/cli/module-commands.d.ts.map +1 -0
- package/dist/cli/module-commands.js +120 -0
- package/dist/cli/module-commands.js.map +1 -0
- package/dist/commands/actor.d.ts +19 -0
- package/dist/commands/actor.d.ts.map +1 -0
- package/dist/commands/actor.js +45 -0
- package/dist/commands/actor.js.map +1 -0
- package/dist/commands/audit-from-context.d.ts +24 -0
- package/dist/commands/audit-from-context.d.ts.map +1 -0
- package/dist/commands/audit-from-context.js +28 -0
- package/dist/commands/audit-from-context.js.map +1 -0
- package/dist/commands/command-bus.d.ts +40 -0
- package/dist/commands/command-bus.d.ts.map +1 -0
- package/dist/commands/command-bus.js +46 -0
- package/dist/commands/command-bus.js.map +1 -0
- package/dist/commands/command.d.ts +76 -0
- package/dist/commands/command.d.ts.map +1 -0
- package/dist/commands/command.js +2 -0
- package/dist/commands/command.js.map +1 -0
- package/dist/commands/index.d.ts +65 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +57 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/reversible.d.ts +66 -0
- package/dist/commands/reversible.d.ts.map +1 -0
- package/dist/commands/reversible.js +41 -0
- package/dist/commands/reversible.js.map +1 -0
- package/dist/composition/compose-app.d.ts +305 -0
- package/dist/composition/compose-app.d.ts.map +1 -0
- package/dist/composition/compose-app.js +939 -0
- package/dist/composition/compose-app.js.map +1 -0
- package/dist/composition/index.d.ts +92 -0
- package/dist/composition/index.d.ts.map +1 -0
- package/dist/composition/index.js +175 -0
- package/dist/composition/index.js.map +1 -0
- package/dist/composition/newsletter-token-secret.d.ts +19 -0
- package/dist/composition/newsletter-token-secret.d.ts.map +1 -0
- package/dist/composition/newsletter-token-secret.js +24 -0
- package/dist/composition/newsletter-token-secret.js.map +1 -0
- package/dist/composition/process-runs-workers.d.ts +17 -0
- package/dist/composition/process-runs-workers.d.ts.map +1 -0
- package/dist/composition/process-runs-workers.js +19 -0
- package/dist/composition/process-runs-workers.js.map +1 -0
- package/dist/db/baseline-migration-inventory.d.ts +15 -0
- package/dist/db/baseline-migration-inventory.d.ts.map +1 -0
- package/dist/db/baseline-migration-inventory.js +115 -0
- package/dist/db/baseline-migration-inventory.js.map +1 -0
- package/dist/db/configured-entities.d.ts +74 -0
- package/dist/db/configured-entities.d.ts.map +1 -0
- package/dist/db/configured-entities.js +20 -0
- package/dist/db/configured-entities.js.map +1 -0
- package/dist/db/configured-migrations.d.ts +199 -0
- package/dist/db/configured-migrations.d.ts.map +1 -0
- package/dist/db/configured-migrations.js +181 -0
- package/dist/db/configured-migrations.js.map +1 -0
- package/dist/db/index.d.ts +54 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +54 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate.d.ts +21 -0
- package/dist/db/migrate.d.ts.map +1 -0
- package/dist/db/migrate.js +48 -0
- package/dist/db/migrate.js.map +1 -0
- package/dist/db/migration-order.d.ts +159 -0
- package/dist/db/migration-order.d.ts.map +1 -0
- package/dist/db/migration-order.js +273 -0
- package/dist/db/migration-order.js.map +1 -0
- package/dist/db/mikro-orm.config.d.ts +51 -0
- package/dist/db/mikro-orm.config.d.ts.map +1 -0
- package/dist/db/mikro-orm.config.js +64 -0
- package/dist/db/mikro-orm.config.js.map +1 -0
- package/dist/db/orm.d.ts +40 -0
- package/dist/db/orm.d.ts.map +1 -0
- package/dist/db/orm.js +25 -0
- package/dist/db/orm.js.map +1 -0
- package/dist/db/platform-schema.d.ts +102 -0
- package/dist/db/platform-schema.d.ts.map +1 -0
- package/dist/db/platform-schema.js +79 -0
- package/dist/db/platform-schema.js.map +1 -0
- package/dist/db/pluralizing-naming-strategy.d.ts +16 -0
- package/dist/db/pluralizing-naming-strategy.d.ts.map +1 -0
- package/dist/db/pluralizing-naming-strategy.js +66 -0
- package/dist/db/pluralizing-naming-strategy.js.map +1 -0
- package/dist/demo/guard.d.ts +101 -0
- package/dist/demo/guard.d.ts.map +1 -0
- package/dist/demo/guard.js +168 -0
- package/dist/demo/guard.js.map +1 -0
- package/dist/demo/host-command.d.ts +133 -0
- package/dist/demo/host-command.d.ts.map +1 -0
- package/dist/demo/host-command.js +113 -0
- package/dist/demo/host-command.js.map +1 -0
- package/dist/demo/index.d.ts +82 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +82 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/packages.d.ts +67 -0
- package/dist/demo/packages.d.ts.map +1 -0
- package/dist/demo/packages.js +132 -0
- package/dist/demo/packages.js.map +1 -0
- package/dist/demo/plan.d.ts +111 -0
- package/dist/demo/plan.d.ts.map +1 -0
- package/dist/demo/plan.js +74 -0
- package/dist/demo/plan.js.map +1 -0
- package/dist/demo/report.d.ts +17 -0
- package/dist/demo/report.d.ts.map +1 -0
- package/dist/demo/report.js +85 -0
- package/dist/demo/report.js.map +1 -0
- package/dist/demo/runner.d.ts +207 -0
- package/dist/demo/runner.d.ts.map +1 -0
- package/dist/demo/runner.js +169 -0
- package/dist/demo/runner.js.map +1 -0
- package/dist/demo/scope.d.ts +44 -0
- package/dist/demo/scope.d.ts.map +1 -0
- package/dist/demo/scope.js +44 -0
- package/dist/demo/scope.js.map +1 -0
- package/dist/env/index.d.ts +68 -0
- package/dist/env/index.d.ts.map +1 -0
- package/dist/env/index.js +427 -0
- package/dist/env/index.js.map +1 -0
- package/dist/events/bus.d.ts +29 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +67 -0
- package/dist/events/bus.js.map +1 -0
- package/dist/events/index.d.ts +19 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +19 -0
- package/dist/events/index.js.map +1 -0
- package/dist/http/cursor.d.ts +10 -0
- package/dist/http/cursor.d.ts.map +1 -0
- package/dist/http/cursor.js +20 -0
- package/dist/http/cursor.js.map +1 -0
- package/dist/http/error-envelope.d.ts +127 -0
- package/dist/http/error-envelope.d.ts.map +1 -0
- package/dist/http/error-envelope.js +402 -0
- package/dist/http/error-envelope.js.map +1 -0
- package/dist/http/health.d.ts +88 -0
- package/dist/http/health.d.ts.map +1 -0
- package/dist/http/health.js +77 -0
- package/dist/http/health.js.map +1 -0
- package/dist/http/index.d.ts +50 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +50 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/interceptors/dispatch.d.ts +14 -0
- package/dist/http/interceptors/dispatch.d.ts.map +1 -0
- package/dist/http/interceptors/dispatch.js +113 -0
- package/dist/http/interceptors/dispatch.js.map +1 -0
- package/dist/http/interceptors/index.d.ts +6 -0
- package/dist/http/interceptors/index.d.ts.map +1 -0
- package/dist/http/interceptors/index.js +5 -0
- package/dist/http/interceptors/index.js.map +1 -0
- package/dist/http/interceptors/registry.d.ts +44 -0
- package/dist/http/interceptors/registry.d.ts.map +1 -0
- package/dist/http/interceptors/registry.js +123 -0
- package/dist/http/interceptors/registry.js.map +1 -0
- package/dist/http/interceptors/route-table.d.ts +33 -0
- package/dist/http/interceptors/route-table.d.ts.map +1 -0
- package/dist/http/interceptors/route-table.js +39 -0
- package/dist/http/interceptors/route-table.js.map +1 -0
- package/dist/http/interceptors/types.d.ts +101 -0
- package/dist/http/interceptors/types.d.ts.map +1 -0
- package/dist/http/interceptors/types.js +2 -0
- package/dist/http/interceptors/types.js.map +1 -0
- package/dist/http/interceptors/validation.d.ts +22 -0
- package/dist/http/interceptors/validation.d.ts.map +1 -0
- package/dist/http/interceptors/validation.js +39 -0
- package/dist/http/interceptors/validation.js.map +1 -0
- package/dist/http/logger.d.ts +9 -0
- package/dist/http/logger.d.ts.map +1 -0
- package/dist/http/logger.js +25 -0
- package/dist/http/logger.js.map +1 -0
- package/dist/http/openapi.d.ts +21 -0
- package/dist/http/openapi.d.ts.map +1 -0
- package/dist/http/openapi.js +114 -0
- package/dist/http/openapi.js.map +1 -0
- package/dist/http/product-audience.d.ts +78 -0
- package/dist/http/product-audience.d.ts.map +1 -0
- package/dist/http/product-audience.js +92 -0
- package/dist/http/product-audience.js.map +1 -0
- package/dist/http/request-actor.d.ts +82 -0
- package/dist/http/request-actor.d.ts.map +1 -0
- package/dist/http/request-actor.js +2 -0
- package/dist/http/request-actor.js.map +1 -0
- package/dist/http/server.d.ts +60 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +117 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/storefront-revalidator.d.ts +29 -0
- package/dist/http/storefront-revalidator.d.ts.map +1 -0
- package/dist/http/storefront-revalidator.js +34 -0
- package/dist/http/storefront-revalidator.js.map +1 -0
- package/dist/http/test-actor-carrier.d.ts +28 -0
- package/dist/http/test-actor-carrier.d.ts.map +1 -0
- package/dist/http/test-actor-carrier.js +10 -0
- package/dist/http/test-actor-carrier.js.map +1 -0
- package/dist/http/trusted-proxy.d.ts +48 -0
- package/dist/http/trusted-proxy.d.ts.map +1 -0
- package/dist/http/trusted-proxy.js +136 -0
- package/dist/http/trusted-proxy.js.map +1 -0
- package/dist/kernel/audit/audit-log-entry.entity.d.ts +33 -0
- package/dist/kernel/audit/audit-log-entry.entity.d.ts.map +1 -0
- package/dist/kernel/audit/audit-log-entry.entity.js +102 -0
- package/dist/kernel/audit/audit-log-entry.entity.js.map +1 -0
- package/dist/kernel/audit/audit-log-service.d.ts +63 -0
- package/dist/kernel/audit/audit-log-service.d.ts.map +1 -0
- package/dist/kernel/audit/audit-log-service.js +107 -0
- package/dist/kernel/audit/audit-log-service.js.map +1 -0
- package/dist/kernel/cache/in-process-cache-registry.d.ts +93 -0
- package/dist/kernel/cache/in-process-cache-registry.d.ts.map +1 -0
- package/dist/kernel/cache/in-process-cache-registry.js +78 -0
- package/dist/kernel/cache/in-process-cache-registry.js.map +1 -0
- package/dist/kernel/cache/shared-drop-marks.d.ts +39 -0
- package/dist/kernel/cache/shared-drop-marks.d.ts.map +1 -0
- package/dist/kernel/cache/shared-drop-marks.js +68 -0
- package/dist/kernel/cache/shared-drop-marks.js.map +1 -0
- package/dist/kernel/compose.d.ts +234 -0
- package/dist/kernel/compose.d.ts.map +1 -0
- package/dist/kernel/compose.js +279 -0
- package/dist/kernel/compose.js.map +1 -0
- package/dist/kernel/container.d.ts +95 -0
- package/dist/kernel/container.d.ts.map +1 -0
- package/dist/kernel/container.js +90 -0
- package/dist/kernel/container.js.map +1 -0
- package/dist/kernel/contribution-sinks.d.ts +106 -0
- package/dist/kernel/contribution-sinks.d.ts.map +1 -0
- package/dist/kernel/contribution-sinks.js +153 -0
- package/dist/kernel/contribution-sinks.js.map +1 -0
- package/dist/kernel/crypto/password-hasher.d.ts +3 -0
- package/dist/kernel/crypto/password-hasher.d.ts.map +1 -0
- package/dist/kernel/crypto/password-hasher.js +44 -0
- package/dist/kernel/crypto/password-hasher.js.map +1 -0
- package/dist/kernel/i18n/error-envelope-options.d.ts +56 -0
- package/dist/kernel/i18n/error-envelope-options.d.ts.map +1 -0
- package/dist/kernel/i18n/error-envelope-options.js +46 -0
- package/dist/kernel/i18n/error-envelope-options.js.map +1 -0
- package/dist/kernel/i18n/error-translation.d.ts +144 -0
- package/dist/kernel/i18n/error-translation.d.ts.map +1 -0
- package/dist/kernel/i18n/error-translation.js +84 -0
- package/dist/kernel/i18n/error-translation.js.map +1 -0
- package/dist/kernel/i18n/request-language.d.ts +80 -0
- package/dist/kernel/i18n/request-language.d.ts.map +1 -0
- package/dist/kernel/i18n/request-language.js +168 -0
- package/dist/kernel/i18n/request-language.js.map +1 -0
- package/dist/kernel/index.d.ts +142 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +160 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/lazy-port.d.ts +59 -0
- package/dist/kernel/lazy-port.d.ts.map +1 -0
- package/dist/kernel/lazy-port.js +78 -0
- package/dist/kernel/lazy-port.js.map +1 -0
- package/dist/kernel/lifecycle/activation-resolver.d.ts +63 -0
- package/dist/kernel/lifecycle/activation-resolver.d.ts.map +1 -0
- package/dist/kernel/lifecycle/activation-resolver.js +70 -0
- package/dist/kernel/lifecycle/activation-resolver.js.map +1 -0
- package/dist/kernel/lifecycle/capability-registry.d.ts +145 -0
- package/dist/kernel/lifecycle/capability-registry.d.ts.map +1 -0
- package/dist/kernel/lifecycle/capability-registry.js +170 -0
- package/dist/kernel/lifecycle/capability-registry.js.map +1 -0
- package/dist/kernel/lifecycle/effective-state.d.ts +126 -0
- package/dist/kernel/lifecycle/effective-state.d.ts.map +1 -0
- package/dist/kernel/lifecycle/effective-state.js +111 -0
- package/dist/kernel/lifecycle/effective-state.js.map +1 -0
- package/dist/kernel/lifecycle/module-registration.entity.d.ts +57 -0
- package/dist/kernel/lifecycle/module-registration.entity.d.ts.map +1 -0
- package/dist/kernel/lifecycle/module-registration.entity.js +111 -0
- package/dist/kernel/lifecycle/module-registration.entity.js.map +1 -0
- package/dist/kernel/lifecycle/plugin-helpers.d.ts +165 -0
- package/dist/kernel/lifecycle/plugin-helpers.d.ts.map +1 -0
- package/dist/kernel/lifecycle/plugin-helpers.js +395 -0
- package/dist/kernel/lifecycle/plugin-helpers.js.map +1 -0
- package/dist/kernel/lifecycle/registry-cache.d.ts +318 -0
- package/dist/kernel/lifecycle/registry-cache.d.ts.map +1 -0
- package/dist/kernel/lifecycle/registry-cache.js +509 -0
- package/dist/kernel/lifecycle/registry-cache.js.map +1 -0
- package/dist/kernel/lifecycle/required-modules.d.ts +137 -0
- package/dist/kernel/lifecycle/required-modules.d.ts.map +1 -0
- package/dist/kernel/lifecycle/required-modules.js +80 -0
- package/dist/kernel/lifecycle/required-modules.js.map +1 -0
- package/dist/kernel/lifecycle/unique-module-ids.d.ts +58 -0
- package/dist/kernel/lifecycle/unique-module-ids.d.ts.map +1 -0
- package/dist/kernel/lifecycle/unique-module-ids.js +82 -0
- package/dist/kernel/lifecycle/unique-module-ids.js.map +1 -0
- package/dist/kernel/logging.d.ts +116 -0
- package/dist/kernel/logging.d.ts.map +1 -0
- package/dist/kernel/logging.js +71 -0
- package/dist/kernel/logging.js.map +1 -0
- package/dist/kernel/module-context.d.ts +563 -0
- package/dist/kernel/module-context.d.ts.map +1 -0
- package/dist/kernel/module-context.js +670 -0
- package/dist/kernel/module-context.js.map +1 -0
- package/dist/kernel/ports/audit.d.ts +115 -0
- package/dist/kernel/ports/audit.d.ts.map +1 -0
- package/dist/kernel/ports/audit.js +2 -0
- package/dist/kernel/ports/audit.js.map +1 -0
- package/dist/kernel/ports/organizations.d.ts +56 -0
- package/dist/kernel/ports/organizations.d.ts.map +1 -0
- package/dist/kernel/ports/organizations.js +2 -0
- package/dist/kernel/ports/organizations.js.map +1 -0
- package/dist/kernel/ports/provide.d.ts +14 -0
- package/dist/kernel/ports/provide.d.ts.map +1 -0
- package/dist/kernel/ports/provide.js +50 -0
- package/dist/kernel/ports/provide.js.map +1 -0
- package/dist/kernel/ports/require-admin.d.ts +61 -0
- package/dist/kernel/ports/require-admin.d.ts.map +1 -0
- package/dist/kernel/ports/require-admin.js +2 -0
- package/dist/kernel/ports/require-admin.js.map +1 -0
- package/dist/kernel/ports/require-customer.d.ts +17 -0
- package/dist/kernel/ports/require-customer.d.ts.map +1 -0
- package/dist/kernel/ports/require-customer.js +2 -0
- package/dist/kernel/ports/require-customer.js.map +1 -0
- package/dist/kernel/ports/sales-channel.d.ts +84 -0
- package/dist/kernel/ports/sales-channel.d.ts.map +1 -0
- package/dist/kernel/ports/sales-channel.js +2 -0
- package/dist/kernel/ports/sales-channel.js.map +1 -0
- package/dist/kernel/ports/settings.d.ts +59 -0
- package/dist/kernel/ports/settings.d.ts.map +1 -0
- package/dist/kernel/ports/settings.js +2 -0
- package/dist/kernel/ports/settings.js.map +1 -0
- package/dist/kernel/public-api-base-url.d.ts +98 -0
- package/dist/kernel/public-api-base-url.d.ts.map +1 -0
- package/dist/kernel/public-api-base-url.js +144 -0
- package/dist/kernel/public-api-base-url.js.map +1 -0
- package/dist/kernel/request-scope-hook.d.ts +63 -0
- package/dist/kernel/request-scope-hook.d.ts.map +1 -0
- package/dist/kernel/request-scope-hook.js +67 -0
- package/dist/kernel/request-scope-hook.js.map +1 -0
- package/dist/kernel/sales-channels/channel-bridge-registry.d.ts +109 -0
- package/dist/kernel/sales-channels/channel-bridge-registry.d.ts.map +1 -0
- package/dist/kernel/sales-channels/channel-bridge-registry.js +75 -0
- package/dist/kernel/sales-channels/channel-bridge-registry.js.map +1 -0
- package/dist/kernel/sales-channels/compose.d.ts +69 -0
- package/dist/kernel/sales-channels/compose.d.ts.map +1 -0
- package/dist/kernel/sales-channels/compose.js +43 -0
- package/dist/kernel/sales-channels/compose.js.map +1 -0
- package/dist/kernel/sales-channels/default-channel-reconciler.d.ts +66 -0
- package/dist/kernel/sales-channels/default-channel-reconciler.d.ts.map +1 -0
- package/dist/kernel/sales-channels/default-channel-reconciler.js +91 -0
- package/dist/kernel/sales-channels/default-channel-reconciler.js.map +1 -0
- package/dist/kernel/sales-channels/no-system-default-channel.error.d.ts +28 -0
- package/dist/kernel/sales-channels/no-system-default-channel.error.d.ts.map +1 -0
- package/dist/kernel/sales-channels/no-system-default-channel.error.js +33 -0
- package/dist/kernel/sales-channels/no-system-default-channel.error.js.map +1 -0
- package/dist/kernel/sales-channels/request-channel-assortment.d.ts +72 -0
- package/dist/kernel/sales-channels/request-channel-assortment.d.ts.map +1 -0
- package/dist/kernel/sales-channels/request-channel-assortment.js +83 -0
- package/dist/kernel/sales-channels/request-channel-assortment.js.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-membership.service.d.ts +157 -0
- package/dist/kernel/sales-channels/sales-channel-membership.service.d.ts.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-membership.service.js +302 -0
- package/dist/kernel/sales-channels/sales-channel-membership.service.js.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.middleware.d.ts +76 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.middleware.d.ts.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.middleware.js +184 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.middleware.js.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.service.d.ts +82 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.service.d.ts.map +1 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.service.js +126 -0
- package/dist/kernel/sales-channels/sales-channel-resolver.service.js.map +1 -0
- package/dist/kernel/sales-channels/sales-channel.entity.d.ts +50 -0
- package/dist/kernel/sales-channels/sales-channel.entity.d.ts.map +1 -0
- package/dist/kernel/sales-channels/sales-channel.entity.js +132 -0
- package/dist/kernel/sales-channels/sales-channel.entity.js.map +1 -0
- package/dist/kernel/sales-channels/sales-channels-cache.d.ts +170 -0
- package/dist/kernel/sales-channels/sales-channels-cache.d.ts.map +1 -0
- package/dist/kernel/sales-channels/sales-channels-cache.js +243 -0
- package/dist/kernel/sales-channels/sales-channels-cache.js.map +1 -0
- package/dist/kernel/scope.d.ts +153 -0
- package/dist/kernel/scope.d.ts.map +1 -0
- package/dist/kernel/scope.js +172 -0
- package/dist/kernel/scope.js.map +1 -0
- package/dist/kernel/settings/compose.d.ts +49 -0
- package/dist/kernel/settings/compose.d.ts.map +1 -0
- package/dist/kernel/settings/compose.js +21 -0
- package/dist/kernel/settings/compose.js.map +1 -0
- package/dist/kernel/settings/manifest-reconciler.d.ts +78 -0
- package/dist/kernel/settings/manifest-reconciler.d.ts.map +1 -0
- package/dist/kernel/settings/manifest-reconciler.js +343 -0
- package/dist/kernel/settings/manifest-reconciler.js.map +1 -0
- package/dist/kernel/settings/secret-value-codec.d.ts +52 -0
- package/dist/kernel/settings/secret-value-codec.d.ts.map +1 -0
- package/dist/kernel/settings/secret-value-codec.js +102 -0
- package/dist/kernel/settings/secret-value-codec.js.map +1 -0
- package/dist/kernel/settings/setting-group.entity.d.ts +25 -0
- package/dist/kernel/settings/setting-group.entity.d.ts.map +1 -0
- package/dist/kernel/settings/setting-group.entity.js +79 -0
- package/dist/kernel/settings/setting-group.entity.js.map +1 -0
- package/dist/kernel/settings/setting-value.entity.d.ts +23 -0
- package/dist/kernel/settings/setting-value.entity.d.ts.map +1 -0
- package/dist/kernel/settings/setting-value.entity.js +66 -0
- package/dist/kernel/settings/setting-value.entity.js.map +1 -0
- package/dist/kernel/settings/setting.entity.d.ts +56 -0
- package/dist/kernel/settings/setting.entity.d.ts.map +1 -0
- package/dist/kernel/settings/setting.entity.js +147 -0
- package/dist/kernel/settings/setting.entity.js.map +1 -0
- package/dist/kernel/settings/settings-cache.d.ts +158 -0
- package/dist/kernel/settings/settings-cache.d.ts.map +1 -0
- package/dist/kernel/settings/settings-cache.js +253 -0
- package/dist/kernel/settings/settings-cache.js.map +1 -0
- package/dist/kernel/settings/settings.service.d.ts +142 -0
- package/dist/kernel/settings/settings.service.d.ts.map +1 -0
- package/dist/kernel/settings/settings.service.js +294 -0
- package/dist/kernel/settings/settings.service.js.map +1 -0
- package/dist/lifecycle/backend.d.ts +51 -0
- package/dist/lifecycle/backend.d.ts.map +1 -0
- package/dist/lifecycle/backend.js +40 -0
- package/dist/lifecycle/backend.js.map +1 -0
- package/dist/lifecycle/commands/activation.commands.d.ts +97 -0
- package/dist/lifecycle/commands/activation.commands.d.ts.map +1 -0
- package/dist/lifecycle/commands/activation.commands.js +142 -0
- package/dist/lifecycle/commands/activation.commands.js.map +1 -0
- package/dist/lifecycle/commands/disable.d.ts +3 -0
- package/dist/lifecycle/commands/disable.d.ts.map +1 -0
- package/dist/lifecycle/commands/disable.js +126 -0
- package/dist/lifecycle/commands/disable.js.map +1 -0
- package/dist/lifecycle/commands/enable.d.ts +3 -0
- package/dist/lifecycle/commands/enable.d.ts.map +1 -0
- package/dist/lifecycle/commands/enable.js +102 -0
- package/dist/lifecycle/commands/enable.js.map +1 -0
- package/dist/lifecycle/commands/install.d.ts +3 -0
- package/dist/lifecycle/commands/install.d.ts.map +1 -0
- package/dist/lifecycle/commands/install.js +263 -0
- package/dist/lifecycle/commands/install.js.map +1 -0
- package/dist/lifecycle/commands/operator-entry.d.ts +104 -0
- package/dist/lifecycle/commands/operator-entry.d.ts.map +1 -0
- package/dist/lifecycle/commands/operator-entry.js +127 -0
- package/dist/lifecycle/commands/operator-entry.js.map +1 -0
- package/dist/lifecycle/commands/operator-runtime.d.ts +147 -0
- package/dist/lifecycle/commands/operator-runtime.d.ts.map +1 -0
- package/dist/lifecycle/commands/operator-runtime.js +40 -0
- package/dist/lifecycle/commands/operator-runtime.js.map +1 -0
- package/dist/lifecycle/commands/status.d.ts +3 -0
- package/dist/lifecycle/commands/status.d.ts.map +1 -0
- package/dist/lifecycle/commands/status.js +108 -0
- package/dist/lifecycle/commands/status.js.map +1 -0
- package/dist/lifecycle/commands/uninstall.d.ts +3 -0
- package/dist/lifecycle/commands/uninstall.d.ts.map +1 -0
- package/dist/lifecycle/commands/uninstall.js +223 -0
- package/dist/lifecycle/commands/uninstall.js.map +1 -0
- package/dist/lifecycle/divergence-declaration.d.ts +74 -0
- package/dist/lifecycle/divergence-declaration.d.ts.map +1 -0
- package/dist/lifecycle/divergence-declaration.js +92 -0
- package/dist/lifecycle/divergence-declaration.js.map +1 -0
- package/dist/lifecycle/i18n/en.json +4 -0
- package/dist/lifecycle/i18n/pl.json +4 -0
- package/dist/lifecycle/index.d.ts +110 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +189 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/manifest-registry.d.ts +244 -0
- package/dist/lifecycle/manifest-registry.d.ts.map +1 -0
- package/dist/lifecycle/manifest-registry.js +223 -0
- package/dist/lifecycle/manifest-registry.js.map +1 -0
- package/dist/lifecycle/manifest.d.ts +166 -0
- package/dist/lifecycle/manifest.d.ts.map +1 -0
- package/dist/lifecycle/manifest.js +121 -0
- package/dist/lifecycle/manifest.js.map +1 -0
- package/dist/lifecycle/plugin.d.ts +56 -0
- package/dist/lifecycle/plugin.d.ts.map +1 -0
- package/dist/lifecycle/plugin.js +59 -0
- package/dist/lifecycle/plugin.js.map +1 -0
- package/dist/lifecycle/resident.d.ts +16 -0
- package/dist/lifecycle/resident.d.ts.map +1 -0
- package/dist/lifecycle/resident.js +59 -0
- package/dist/lifecycle/resident.js.map +1 -0
- package/dist/lifecycle/routes.admin.d.ts +57 -0
- package/dist/lifecycle/routes.admin.d.ts.map +1 -0
- package/dist/lifecycle/routes.admin.js +162 -0
- package/dist/lifecycle/routes.admin.js.map +1 -0
- package/dist/lifecycle/routes.storefront.d.ts +26 -0
- package/dist/lifecycle/routes.storefront.d.ts.map +1 -0
- package/dist/lifecycle/routes.storefront.js +36 -0
- package/dist/lifecycle/routes.storefront.js.map +1 -0
- package/dist/lifecycle/services/deactivation-ledger.d.ts +216 -0
- package/dist/lifecycle/services/deactivation-ledger.d.ts.map +1 -0
- package/dist/lifecycle/services/deactivation-ledger.js +171 -0
- package/dist/lifecycle/services/deactivation-ledger.js.map +1 -0
- package/dist/lifecycle/services/dep-graph.d.ts +119 -0
- package/dist/lifecycle/services/dep-graph.d.ts.map +1 -0
- package/dist/lifecycle/services/dep-graph.js +334 -0
- package/dist/lifecycle/services/dep-graph.js.map +1 -0
- package/dist/lifecycle/services/gating-graph.d.ts +164 -0
- package/dist/lifecycle/services/gating-graph.d.ts.map +1 -0
- package/dist/lifecycle/services/gating-graph.js +203 -0
- package/dist/lifecycle/services/gating-graph.js.map +1 -0
- package/dist/lifecycle/services/lock.d.ts +27 -0
- package/dist/lifecycle/services/lock.d.ts.map +1 -0
- package/dist/lifecycle/services/lock.js +82 -0
- package/dist/lifecycle/services/lock.js.map +1 -0
- package/dist/lifecycle/services/manifest-loader.d.ts +125 -0
- package/dist/lifecycle/services/manifest-loader.d.ts.map +1 -0
- package/dist/lifecycle/services/manifest-loader.js +210 -0
- package/dist/lifecycle/services/manifest-loader.js.map +1 -0
- package/dist/lifecycle/services/migration-ownership.d.ts +36 -0
- package/dist/lifecycle/services/migration-ownership.d.ts.map +1 -0
- package/dist/lifecycle/services/migration-ownership.js +15 -0
- package/dist/lifecycle/services/migration-ownership.js.map +1 -0
- package/dist/lifecycle/services/module-id-claims.d.ts +38 -0
- package/dist/lifecycle/services/module-id-claims.d.ts.map +1 -0
- package/dist/lifecycle/services/module-id-claims.js +123 -0
- package/dist/lifecycle/services/module-id-claims.js.map +1 -0
- package/dist/lifecycle/services/module-origin.d.ts +55 -0
- package/dist/lifecycle/services/module-origin.d.ts.map +1 -0
- package/dist/lifecycle/services/module-origin.js +47 -0
- package/dist/lifecycle/services/module-origin.js.map +1 -0
- package/dist/lifecycle/services/orchestrator.d.ts +235 -0
- package/dist/lifecycle/services/orchestrator.d.ts.map +1 -0
- package/dist/lifecycle/services/orchestrator.js +954 -0
- package/dist/lifecycle/services/orchestrator.js.map +1 -0
- package/dist/lifecycle/services/presence-load.d.ts +281 -0
- package/dist/lifecycle/services/presence-load.d.ts.map +1 -0
- package/dist/lifecycle/services/presence-load.js +437 -0
- package/dist/lifecycle/services/presence-load.js.map +1 -0
- package/dist/lifecycle/services/static-registry.d.ts +47 -0
- package/dist/lifecycle/services/static-registry.d.ts.map +1 -0
- package/dist/lifecycle/services/static-registry.js +41 -0
- package/dist/lifecycle/services/static-registry.js.map +1 -0
- package/dist/migrations/20260424T165847_core_foundation_init.d.ts +25 -0
- package/dist/migrations/20260424T165847_core_foundation_init.d.ts.map +1 -0
- package/dist/migrations/20260424T165847_core_foundation_init.js +238 -0
- package/dist/migrations/20260424T165847_core_foundation_init.js.map +1 -0
- package/dist/migrations/20260425T050720_core_commerce_init.d.ts +19 -0
- package/dist/migrations/20260425T050720_core_commerce_init.d.ts.map +1 -0
- package/dist/migrations/20260425T050720_core_commerce_init.js +200 -0
- package/dist/migrations/20260425T050720_core_commerce_init.js.map +1 -0
- package/dist/migrations/20260430T101450_core_settings_init.d.ts +25 -0
- package/dist/migrations/20260430T101450_core_settings_init.d.ts.map +1 -0
- package/dist/migrations/20260430T101450_core_settings_init.js +113 -0
- package/dist/migrations/20260430T101450_core_settings_init.js.map +1 -0
- package/dist/migrations/20260430T170044_core_sales_channels_promote.d.ts +67 -0
- package/dist/migrations/20260430T170044_core_sales_channels_promote.d.ts.map +1 -0
- package/dist/migrations/20260430T170044_core_sales_channels_promote.js +101 -0
- package/dist/migrations/20260430T170044_core_sales_channels_promote.js.map +1 -0
- package/dist/migrations/20260506T200657_core_module_lifecycle_init.d.ts +21 -0
- package/dist/migrations/20260506T200657_core_module_lifecycle_init.d.ts.map +1 -0
- package/dist/migrations/20260506T200657_core_module_lifecycle_init.js +41 -0
- package/dist/migrations/20260506T200657_core_module_lifecycle_init.js.map +1 -0
- package/dist/migrations/20260514T111329_core_settings_global_value.d.ts +30 -0
- package/dist/migrations/20260514T111329_core_settings_global_value.d.ts.map +1 -0
- package/dist/migrations/20260514T111329_core_settings_global_value.js +34 -0
- package/dist/migrations/20260514T111329_core_settings_global_value.js.map +1 -0
- package/dist/migrations/20260611T140411_core_settings_secret_value_type.d.ts +26 -0
- package/dist/migrations/20260611T140411_core_settings_secret_value_type.d.ts.map +1 -0
- package/dist/migrations/20260611T140411_core_settings_secret_value_type.js +63 -0
- package/dist/migrations/20260611T140411_core_settings_secret_value_type.js.map +1 -0
- package/dist/migrations/20260611T140419_core_settings_enum_options.d.ts +19 -0
- package/dist/migrations/20260611T140419_core_settings_enum_options.d.ts.map +1 -0
- package/dist/migrations/20260611T140419_core_settings_enum_options.js +23 -0
- package/dist/migrations/20260611T140419_core_settings_enum_options.js.map +1 -0
- package/dist/migrations/20260629T090100_core_settings_hidden_flag.d.ts +20 -0
- package/dist/migrations/20260629T090100_core_settings_hidden_flag.d.ts.map +1 -0
- package/dist/migrations/20260629T090100_core_settings_hidden_flag.js +24 -0
- package/dist/migrations/20260629T090100_core_settings_hidden_flag.js.map +1 -0
- package/dist/migrations/20260717T134752_core_tenant_scope_indexes.d.ts +27 -0
- package/dist/migrations/20260717T134752_core_tenant_scope_indexes.d.ts.map +1 -0
- package/dist/migrations/20260717T134752_core_tenant_scope_indexes.js +32 -0
- package/dist/migrations/20260717T134752_core_tenant_scope_indexes.js.map +1 -0
- package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.d.ts +24 -0
- package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.d.ts.map +1 -0
- package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.js +57 -0
- package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.js.map +1 -0
- package/dist/migrations/20260816T203339_core_retire_core_activation_settings.d.ts +39 -0
- package/dist/migrations/20260816T203339_core_retire_core_activation_settings.d.ts.map +1 -0
- package/dist/migrations/20260816T203339_core_retire_core_activation_settings.js +59 -0
- package/dist/migrations/20260816T203339_core_retire_core_activation_settings.js.map +1 -0
- package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.d.ts +34 -0
- package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.d.ts.map +1 -0
- package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.js +38 -0
- package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.js.map +1 -0
- package/dist/migrations/baseline-migrations.generated.d.ts +2 -0
- package/dist/migrations/baseline-migrations.generated.d.ts.map +1 -0
- package/dist/migrations/baseline-migrations.generated.js +136 -0
- package/dist/migrations/baseline-migrations.generated.js.map +1 -0
- package/dist/migrations/index.d.ts +62 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +75 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/overlay/deployment-roots.d.ts +37 -0
- package/dist/overlay/deployment-roots.d.ts.map +1 -0
- package/dist/overlay/deployment-roots.js +90 -0
- package/dist/overlay/deployment-roots.js.map +1 -0
- package/dist/overlay/index.d.ts +62 -0
- package/dist/overlay/index.d.ts.map +1 -0
- package/dist/overlay/index.js +62 -0
- package/dist/overlay/index.js.map +1 -0
- package/dist/overlay/overlay-runtime.d.ts +173 -0
- package/dist/overlay/overlay-runtime.d.ts.map +1 -0
- package/dist/overlay/overlay-runtime.js +281 -0
- package/dist/overlay/overlay-runtime.js.map +1 -0
- package/dist/overlay/resolve-overlay.d.ts +41 -0
- package/dist/overlay/resolve-overlay.d.ts.map +1 -0
- package/dist/overlay/resolve-overlay.js +72 -0
- package/dist/overlay/resolve-overlay.js.map +1 -0
- package/dist/packages/index.d.ts +57 -0
- package/dist/packages/index.d.ts.map +1 -0
- package/dist/packages/index.js +57 -0
- package/dist/packages/index.js.map +1 -0
- package/dist/packages/installed-packages.d.ts +79 -0
- package/dist/packages/installed-packages.d.ts.map +1 -0
- package/dist/packages/installed-packages.js +312 -0
- package/dist/packages/installed-packages.js.map +1 -0
- package/dist/packages/package-entity-lookup.d.ts +120 -0
- package/dist/packages/package-entity-lookup.d.ts.map +1 -0
- package/dist/packages/package-entity-lookup.js +17 -0
- package/dist/packages/package-entity-lookup.js.map +1 -0
- package/dist/packages/package-runtime.d.ts +177 -0
- package/dist/packages/package-runtime.d.ts.map +1 -0
- package/dist/packages/package-runtime.js +386 -0
- package/dist/packages/package-runtime.js.map +1 -0
- package/dist/tenancy/derived-scope.d.ts +43 -0
- package/dist/tenancy/derived-scope.d.ts.map +1 -0
- package/dist/tenancy/derived-scope.js +76 -0
- package/dist/tenancy/derived-scope.js.map +1 -0
- package/dist/tenancy/escape-hatch.d.ts +30 -0
- package/dist/tenancy/escape-hatch.d.ts.map +1 -0
- package/dist/tenancy/escape-hatch.js +50 -0
- package/dist/tenancy/escape-hatch.js.map +1 -0
- package/dist/tenancy/filters.d.ts +87 -0
- package/dist/tenancy/filters.d.ts.map +1 -0
- package/dist/tenancy/filters.js +126 -0
- package/dist/tenancy/filters.js.map +1 -0
- package/dist/tenancy/index.d.ts +63 -0
- package/dist/tenancy/index.d.ts.map +1 -0
- package/dist/tenancy/index.js +61 -0
- package/dist/tenancy/index.js.map +1 -0
- package/dist/tenancy/org-scoped.decorator.d.ts +150 -0
- package/dist/tenancy/org-scoped.decorator.d.ts.map +1 -0
- package/dist/tenancy/org-scoped.decorator.js +339 -0
- package/dist/tenancy/org-scoped.decorator.js.map +1 -0
- package/dist/tenancy/org-write-guard.d.ts +106 -0
- package/dist/tenancy/org-write-guard.d.ts.map +1 -0
- package/dist/tenancy/org-write-guard.js +141 -0
- package/dist/tenancy/org-write-guard.js.map +1 -0
- package/dist/tenancy/resolve-tenant-context.d.ts +91 -0
- package/dist/tenancy/resolve-tenant-context.d.ts.map +1 -0
- package/dist/tenancy/resolve-tenant-context.js +85 -0
- package/dist/tenancy/resolve-tenant-context.js.map +1 -0
- package/dist/tenancy/scoped-em.d.ts +10 -0
- package/dist/tenancy/scoped-em.d.ts.map +1 -0
- package/dist/tenancy/scoped-em.js +11 -0
- package/dist/tenancy/scoped-em.js.map +1 -0
- package/dist/tenancy/tenant-context.d.ts +154 -0
- package/dist/tenancy/tenant-context.d.ts.map +1 -0
- package/dist/tenancy/tenant-context.js +109 -0
- package/dist/tenancy/tenant-context.js.map +1 -0
- package/package.json +123 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/** `<moduleId>:<name>`, the key every lookup in this file uses. */
|
|
2
|
+
function keyOf(moduleId, name) {
|
|
3
|
+
return `${moduleId}:${name}`;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Assign an outcome to every cross-module edge, and report the ones that get
|
|
7
|
+
* none.
|
|
8
|
+
*
|
|
9
|
+
* Rule order is load-bearing and reads top to bottom as "what could make this
|
|
10
|
+
* edge lie to an operator?": a capture survives every other answer the edge
|
|
11
|
+
* might have had, because it is about *when* the name is read rather than what
|
|
12
|
+
* it answers; a gated port resolved too early takes the platform down rather
|
|
13
|
+
* than the request; only then do the declarations and the gate get to speak.
|
|
14
|
+
*/
|
|
15
|
+
export function buildDeactivationLedger(input) {
|
|
16
|
+
const entries = [];
|
|
17
|
+
const unassigned = [];
|
|
18
|
+
let excluded = 0;
|
|
19
|
+
const degrades = new Map();
|
|
20
|
+
// Beside it rather than merged into it: the two declarations produce
|
|
21
|
+
// different outcomes and the operator's row says different things. A
|
|
22
|
+
// `refuses-without` entry with no sentence is refused by the schema and
|
|
23
|
+
// reported by `check-port-dependencies.ts`; it is classified here anyway, so
|
|
24
|
+
// that a declaration this file cannot render still cannot silently become
|
|
25
|
+
// some *other* classification.
|
|
26
|
+
const refuses = new Map();
|
|
27
|
+
for (const edge of input.nonBinding) {
|
|
28
|
+
if (edge.kind === 'degrades-without' && edge.whenAbsent !== null) {
|
|
29
|
+
degrades.set(keyOf(edge.moduleId, edge.name), edge.whenAbsent);
|
|
30
|
+
}
|
|
31
|
+
if (edge.kind === 'refuses-without') {
|
|
32
|
+
refuses.set(keyOf(edge.moduleId, edge.name), edge.whenAbsent);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** One group per (dependent, owner, name); a name read from six files is one edge. */
|
|
36
|
+
const groups = new Map();
|
|
37
|
+
const acknowledged = new Set(input.acknowledged.map((edge) => keyOf(edge.moduleId, edge.name)));
|
|
38
|
+
for (const read of input.reads) {
|
|
39
|
+
if (read.moduleId === read.dependsOn)
|
|
40
|
+
continue;
|
|
41
|
+
if (input.neverAbsentOwners.has(read.dependsOn) &&
|
|
42
|
+
!acknowledged.has(keyOf(read.moduleId, read.name))) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (input.excludedNames.has(read.name)) {
|
|
46
|
+
excluded += 1;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const key = `${read.moduleId}:${read.dependsOn}:${read.name}`;
|
|
50
|
+
const group = groups.get(key) ?? { read, sites: new Set(), captured: false };
|
|
51
|
+
group.sites.add(read.site);
|
|
52
|
+
group.captured = group.captured || read.captured;
|
|
53
|
+
groups.set(key, group);
|
|
54
|
+
}
|
|
55
|
+
const classified = new Set();
|
|
56
|
+
for (const { read, sites, captured } of groups.values()) {
|
|
57
|
+
classified.add(`${read.moduleId}:${read.dependsOn}`);
|
|
58
|
+
const declared = degrades.get(keyOf(read.moduleId, read.name));
|
|
59
|
+
const edge = { moduleId: read.moduleId, dependsOn: read.dependsOn, name: read.name };
|
|
60
|
+
if (captured) {
|
|
61
|
+
unassigned.push({
|
|
62
|
+
...edge,
|
|
63
|
+
shape: 'captured-registration',
|
|
64
|
+
detail: `read once at construction, so it keeps answering after \`${read.dependsOn}\` ` +
|
|
65
|
+
`is switched off`,
|
|
66
|
+
});
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (read.gated && [...sites].some((site) => site !== 'call')) {
|
|
70
|
+
unassigned.push({
|
|
71
|
+
...edge,
|
|
72
|
+
shape: 'gated-port-before-first-request',
|
|
73
|
+
detail: `a gate with a real "no" answer is asked at ${[...sites].sort().join(', ')}`,
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (declared !== undefined) {
|
|
78
|
+
entries.push({ ...edge, outcome: 'degrades', whenAbsent: declared });
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
// Before the bare gate below, and the order is what the kind buys: the
|
|
82
|
+
// outcome is the same either way, so the only difference this branch makes
|
|
83
|
+
// is that the operator's row carries the dependent's own sentence instead
|
|
84
|
+
// of the platform's translated default.
|
|
85
|
+
const refusal = refuses.get(keyOf(read.moduleId, read.name));
|
|
86
|
+
if (refusal !== undefined) {
|
|
87
|
+
entries.push({ ...edge, outcome: 'fails-closed', whenAbsent: refusal });
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (read.gated) {
|
|
91
|
+
entries.push({ ...edge, outcome: 'fails-closed', whenAbsent: null });
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const policy = input.contributionPolicies[keyOf(read.dependsOn, read.name)];
|
|
95
|
+
if (policy === undefined) {
|
|
96
|
+
unassigned.push({
|
|
97
|
+
...edge,
|
|
98
|
+
shape: 'registry-without-policy',
|
|
99
|
+
detail: `\`${read.dependsOn}\` states nothing about what an absent owner's entry does`,
|
|
100
|
+
});
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
// A push happens once, from a boot hook, and reads nothing back; a host
|
|
104
|
+
// that honours an absent owner's entry answers the same to everybody. Both
|
|
105
|
+
// are "nothing happens". A *read* under a skip policy is not: the caller
|
|
106
|
+
// gets nothing back, which is the seam failing closed at enumeration.
|
|
107
|
+
const pushOnly = [...sites].every((site) => site === 'boot');
|
|
108
|
+
entries.push({
|
|
109
|
+
...edge,
|
|
110
|
+
outcome: policy === 'honour' || pushOnly ? 'contributes' : 'fails-closed',
|
|
111
|
+
whenAbsent: null,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Whatever a manifest declares and no container read backs. Deactivation
|
|
115
|
+
// drops no tables, so a foreign key into the owner's schema stays valid and
|
|
116
|
+
// nothing stops — which is also where a declaration backed by nothing at all
|
|
117
|
+
// lands, and that is a separate finding with its own owner.
|
|
118
|
+
for (const [moduleId, dependencies] of input.declaredDependencies) {
|
|
119
|
+
for (const dependsOn of dependencies) {
|
|
120
|
+
if (dependsOn === moduleId)
|
|
121
|
+
continue;
|
|
122
|
+
if (input.neverAbsentOwners.has(dependsOn))
|
|
123
|
+
continue;
|
|
124
|
+
if (classified.has(`${moduleId}:${dependsOn}`))
|
|
125
|
+
continue;
|
|
126
|
+
entries.push({ moduleId, dependsOn, name: null, outcome: 'schema-only', whenAbsent: null });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { entries, unassigned, excluded };
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The rows an operator is shown before switching `moduleId` off, and the rows
|
|
133
|
+
* the refusal carries when they have not acknowledged them.
|
|
134
|
+
*
|
|
135
|
+
* One row per dependent, whatever the number of edges between the two: an
|
|
136
|
+
* operator is choosing about modules, not about registrations. Where a
|
|
137
|
+
* dependent both pulls and contributes, **the pull decides** — a contribution
|
|
138
|
+
* costs nothing and saying so beside a capability that stops would be a
|
|
139
|
+
* consequence list that reads as reassurance.
|
|
140
|
+
*
|
|
141
|
+
* **The sentence follows the effect that wins**, and it has to, now that
|
|
142
|
+
* `fails-closed` can carry one. A dependent that degrades on one edge and
|
|
143
|
+
* refuses on another gets `unavailable`, and pairing that word with the
|
|
144
|
+
* degrade's *"keeps working with less"* sentence would be a row that
|
|
145
|
+
* contradicts itself in six words. A declared sentence is still kept when the
|
|
146
|
+
* winning effect has none of its own, because it is then the only specific
|
|
147
|
+
* thing the platform knows about that dependent.
|
|
148
|
+
*/
|
|
149
|
+
export function deactivationConsequencesFor(entries, moduleId, isPresent) {
|
|
150
|
+
const rows = new Map();
|
|
151
|
+
for (const entry of entries) {
|
|
152
|
+
if (entry.dependsOn !== moduleId)
|
|
153
|
+
continue;
|
|
154
|
+
if (entry.outcome !== 'fails-closed' && entry.outcome !== 'degrades')
|
|
155
|
+
continue;
|
|
156
|
+
if (!isPresent(entry.moduleId))
|
|
157
|
+
continue;
|
|
158
|
+
const existing = rows.get(entry.moduleId);
|
|
159
|
+
const effect = entry.outcome === 'degrades' ? 'degraded' : 'unavailable';
|
|
160
|
+
const winning = existing?.effect === 'unavailable' || effect === 'unavailable' ? 'unavailable' : 'degraded';
|
|
161
|
+
rows.set(entry.moduleId, {
|
|
162
|
+
moduleId: entry.moduleId,
|
|
163
|
+
effect: winning,
|
|
164
|
+
description: effect === winning
|
|
165
|
+
? (entry.whenAbsent ?? existing?.description ?? null)
|
|
166
|
+
: (existing?.description ?? entry.whenAbsent ?? null),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return [...rows.values()].sort((a, b) => a.moduleId.localeCompare(b.moduleId));
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=deactivation-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deactivation-ledger.js","sourceRoot":"","sources":["../../../src/lifecycle/services/deactivation-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { ModuleManifest } from '@endora-commerce/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Dependency graph derived from a snapshot of every loaded manifest.
|
|
4
|
+
*
|
|
5
|
+
* Built once at boot and rebuilt on every state-changing lifecycle
|
|
6
|
+
* operation. Pure in-memory; no I/O. The orchestrator drives every
|
|
7
|
+
* lifecycle command through this graph for validation.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ModuleDepGraph {
|
|
10
|
+
/** moduleId → set of ids it directly depends on. */
|
|
11
|
+
private readonly forward;
|
|
12
|
+
/** moduleId → set of ids that directly depend on it. */
|
|
13
|
+
private readonly reverse;
|
|
14
|
+
/** Full manifest set, for callers that want metadata, not just edges. */
|
|
15
|
+
private readonly manifests;
|
|
16
|
+
constructor(manifests: Iterable<ModuleManifest>);
|
|
17
|
+
has(id: string): boolean;
|
|
18
|
+
manifest(id: string): ModuleManifest | undefined;
|
|
19
|
+
ids(): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Detect a cycle. Returns a representative cycle (path of ids) when
|
|
22
|
+
* the graph is cyclic, `null` when it is a DAG. Uses iterative DFS so
|
|
23
|
+
* graphs with thousands of nodes don't blow the stack.
|
|
24
|
+
*/
|
|
25
|
+
hasCycle(): {
|
|
26
|
+
cycle: string[];
|
|
27
|
+
} | null;
|
|
28
|
+
/**
|
|
29
|
+
* Topological order (dependency-first). Throws if the graph contains a
|
|
30
|
+
* cycle — callers should call `hasCycle()` first when they want to
|
|
31
|
+
* surface a friendly error.
|
|
32
|
+
*/
|
|
33
|
+
topologicalOrder(): string[];
|
|
34
|
+
/**
|
|
35
|
+
* Reverse topological order (dependents first). Useful for cascade
|
|
36
|
+
* disable / hard-uninstall ordering.
|
|
37
|
+
*/
|
|
38
|
+
reverseTopologicalOrder(): string[];
|
|
39
|
+
/** Direct dependents of `id` (one-hop reverse edges). */
|
|
40
|
+
dependentsOf(id: string): string[];
|
|
41
|
+
/** Transitive closure of dependents (all who reach `id` through reverse edges). */
|
|
42
|
+
transitiveDependentsOf(id: string): string[];
|
|
43
|
+
/** Direct deps of `id` not present in `installed`. */
|
|
44
|
+
unresolvedDependenciesOf(id: string, installed: ReadonlySet<string>): string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Strongly connected components of a directed graph (Tarjan), iterative so a
|
|
48
|
+
* large graph cannot blow the stack.
|
|
49
|
+
*
|
|
50
|
+
* **The platform owns this walk because two of its readers must not be able to
|
|
51
|
+
* disagree about what a cycle is** (feature 080, D-160.11). It was
|
|
52
|
+
* `backend/src/db/migration-order.ts`'s private helper, which made the
|
|
53
|
+
* orchestrator's install refusal — *"with this module, [a, b] depend on each
|
|
54
|
+
* other in a loop"* — a reach out of the platform into the host application,
|
|
55
|
+
* for a pure graph walk. The host still reads it: `migration-order.ts` builds
|
|
56
|
+
* the ordering graph's condensation from exactly this function, so the member
|
|
57
|
+
* list an operator reads in a refused install is the member list the migration
|
|
58
|
+
* order reports, by construction and not by two implementations agreeing.
|
|
59
|
+
*
|
|
60
|
+
* `neighboursOf` is the caller's, so an edge into a node the caller did not
|
|
61
|
+
* declare is the caller's decision to skip or to keep.
|
|
62
|
+
*/
|
|
63
|
+
export declare function stronglyConnectedComponents(nodes: readonly string[], neighboursOf: (id: string) => readonly string[]): string[][];
|
|
64
|
+
/**
|
|
65
|
+
* A stable topological sort of a condensation — Kahn's algorithm, the ready set
|
|
66
|
+
* drained by the smallest module id in the component.
|
|
67
|
+
*
|
|
68
|
+
* **The platform owns this walk for the reason it owns
|
|
69
|
+
* {@link stronglyConnectedComponents}** (D-160.11), and feature 113 is what made
|
|
70
|
+
* the reason bite: the migration order and the demo runner both order modules by
|
|
71
|
+
* the manifest `dependencies` graph, and `contracts/module-demo-data-layer.md`
|
|
72
|
+
* §4.1 says the runner *"MUST NOT maintain an order of its own"*. Two
|
|
73
|
+
* implementations of one order are two answers waiting to disagree — and they
|
|
74
|
+
* would disagree silently, because nothing compares a demo run's order to a
|
|
75
|
+
* migration run's.
|
|
76
|
+
*
|
|
77
|
+
* It was `backend/src/db/migration-order.ts`' private `sortComponents`, moved
|
|
78
|
+
* here unchanged. The `first` parameter is that file's `'core'` rule made a
|
|
79
|
+
* parameter rather than a constant: `'core'` declares nothing and nothing
|
|
80
|
+
* declares it, so it is always ready at the start, and saying "it goes first"
|
|
81
|
+
* beats relying on an accident of alphabetical ordering. A caller with no such
|
|
82
|
+
* node passes nothing and gets the plain smallest-id-first drain.
|
|
83
|
+
*
|
|
84
|
+
* It always succeeds: the condensation is acyclic, so the ready set cannot
|
|
85
|
+
* empty early and there is no unresolvable order.
|
|
86
|
+
*
|
|
87
|
+
* `neighboursOf` is the caller's, exactly as above, and an edge into a node no
|
|
88
|
+
* component holds is skipped — the caller decided what its graph contains.
|
|
89
|
+
*/
|
|
90
|
+
export declare function sortComponentsTopologically(components: readonly string[][], neighboursOf: (id: string) => readonly string[], first?: string): string[][];
|
|
91
|
+
/**
|
|
92
|
+
* The modules of a dependency map, dependencies before dependents, ties broken
|
|
93
|
+
* by module id.
|
|
94
|
+
*
|
|
95
|
+
* The one order two readers share: the migration order builds it through the
|
|
96
|
+
* two functions above with its own `'core'` node, and the demo runner takes it
|
|
97
|
+
* whole (feature 113, §4.1). A dependency **cycle** is not an error here — its
|
|
98
|
+
* members come out as one contiguous block in id order, and reporting it is the
|
|
99
|
+
* caller's ({@link moduleDependencyCycles}), for the reason feature 081 gives: a
|
|
100
|
+
* manifest can arrive from an installed package, and one stranger's declaration
|
|
101
|
+
* must not stop a shop's own work.
|
|
102
|
+
*
|
|
103
|
+
* An edge naming a module the map does not hold is skipped, which is §4.4's
|
|
104
|
+
* *"an entry naming a module that is not installed orders nothing"*.
|
|
105
|
+
*/
|
|
106
|
+
export declare function orderModulesByDependencies(moduleDependencies: ReadonlyMap<string, readonly string[]>): string[];
|
|
107
|
+
/**
|
|
108
|
+
* Every dependency cycle in a module dependency map — one strongly connected
|
|
109
|
+
* component of more than one module per entry, members sorted.
|
|
110
|
+
*
|
|
111
|
+
* The one derivation behind three reactions (feature 081, FR-012): a red unit
|
|
112
|
+
* test for a cycle in this repository's own manifests, a `warn` at boot for one
|
|
113
|
+
* on a running platform, and the orchestrator refusing an install whose arrival
|
|
114
|
+
* closes a loop. An edge naming a module the map does not hold is skipped — a
|
|
115
|
+
* *migration* claiming such a module is refused by the ordering's own step 1,
|
|
116
|
+
* and a dependency on a module that is not there is not a cycle.
|
|
117
|
+
*/
|
|
118
|
+
export declare function moduleDependencyCycles(moduleDependencies: ReadonlyMap<string, readonly string[]>): string[][];
|
|
119
|
+
//# sourceMappingURL=dep-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-graph.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/services/dep-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;gBAEnD,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC;IAc/C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIhD,GAAG,IAAI,MAAM,EAAE;IAIf;;;;OAIG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IA+CtC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAkC5B;;;OAGG;IACH,uBAAuB,IAAI,MAAM,EAAE;IAInC,yDAAyD;IACzD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,mFAAmF;IACnF,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAY5C,sDAAsD;IACtD,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;CAO/E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAC9C,MAAM,EAAE,EAAE,CAsDZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,EAC/B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,EAC/C,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,EAAE,CAuCZ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GACzD,MAAM,EAAE,CAMV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GACzD,MAAM,EAAE,EAAE,CAOZ"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency graph derived from a snapshot of every loaded manifest.
|
|
3
|
+
*
|
|
4
|
+
* Built once at boot and rebuilt on every state-changing lifecycle
|
|
5
|
+
* operation. Pure in-memory; no I/O. The orchestrator drives every
|
|
6
|
+
* lifecycle command through this graph for validation.
|
|
7
|
+
*/
|
|
8
|
+
export class ModuleDepGraph {
|
|
9
|
+
/** moduleId → set of ids it directly depends on. */
|
|
10
|
+
forward = new Map();
|
|
11
|
+
/** moduleId → set of ids that directly depend on it. */
|
|
12
|
+
reverse = new Map();
|
|
13
|
+
/** Full manifest set, for callers that want metadata, not just edges. */
|
|
14
|
+
manifests = new Map();
|
|
15
|
+
constructor(manifests) {
|
|
16
|
+
for (const m of manifests) {
|
|
17
|
+
this.manifests.set(m.id, m);
|
|
18
|
+
this.forward.set(m.id, new Set(m.dependencies));
|
|
19
|
+
if (!this.reverse.has(m.id))
|
|
20
|
+
this.reverse.set(m.id, new Set());
|
|
21
|
+
}
|
|
22
|
+
for (const [id, deps] of this.forward) {
|
|
23
|
+
for (const dep of deps) {
|
|
24
|
+
if (!this.reverse.has(dep))
|
|
25
|
+
this.reverse.set(dep, new Set());
|
|
26
|
+
this.reverse.get(dep).add(id);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
has(id) {
|
|
31
|
+
return this.manifests.has(id);
|
|
32
|
+
}
|
|
33
|
+
manifest(id) {
|
|
34
|
+
return this.manifests.get(id);
|
|
35
|
+
}
|
|
36
|
+
ids() {
|
|
37
|
+
return [...this.manifests.keys()].sort();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Detect a cycle. Returns a representative cycle (path of ids) when
|
|
41
|
+
* the graph is cyclic, `null` when it is a DAG. Uses iterative DFS so
|
|
42
|
+
* graphs with thousands of nodes don't blow the stack.
|
|
43
|
+
*/
|
|
44
|
+
hasCycle() {
|
|
45
|
+
const color = new Map();
|
|
46
|
+
for (const id of this.manifests.keys())
|
|
47
|
+
color.set(id, 0);
|
|
48
|
+
for (const start of this.manifests.keys()) {
|
|
49
|
+
if (color.get(start) !== 0)
|
|
50
|
+
continue;
|
|
51
|
+
const stack = [
|
|
52
|
+
{ id: start, iter: (this.forward.get(start) ?? new Set()).values() },
|
|
53
|
+
];
|
|
54
|
+
const path = [start];
|
|
55
|
+
color.set(start, 1);
|
|
56
|
+
while (stack.length > 0) {
|
|
57
|
+
const top = stack[stack.length - 1];
|
|
58
|
+
const next = top.iter.next();
|
|
59
|
+
if (next.done) {
|
|
60
|
+
color.set(top.id, 2);
|
|
61
|
+
path.pop();
|
|
62
|
+
stack.pop();
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const child = next.value;
|
|
66
|
+
if (!this.manifests.has(child)) {
|
|
67
|
+
// Dependency points to a non-existent module — caller handles
|
|
68
|
+
// (different validation step); skip for cycle detection.
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const c = color.get(child);
|
|
72
|
+
if (c === 1) {
|
|
73
|
+
// Found a back-edge → cycle. Slice `path` from `child` to top.
|
|
74
|
+
const startIdx = path.indexOf(child);
|
|
75
|
+
return { cycle: [...path.slice(startIdx), child] };
|
|
76
|
+
}
|
|
77
|
+
if (c === 0) {
|
|
78
|
+
color.set(child, 1);
|
|
79
|
+
path.push(child);
|
|
80
|
+
stack.push({
|
|
81
|
+
id: child,
|
|
82
|
+
iter: (this.forward.get(child) ?? new Set()).values(),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Topological order (dependency-first). Throws if the graph contains a
|
|
91
|
+
* cycle — callers should call `hasCycle()` first when they want to
|
|
92
|
+
* surface a friendly error.
|
|
93
|
+
*/
|
|
94
|
+
topologicalOrder() {
|
|
95
|
+
const cycle = this.hasCycle();
|
|
96
|
+
if (cycle) {
|
|
97
|
+
throw new Error(`[dep-graph] cannot topologically sort: cycle detected ` +
|
|
98
|
+
`[${cycle.cycle.join(' → ')}]`);
|
|
99
|
+
}
|
|
100
|
+
// Kahn's algorithm: indegree[X] = number of X's unmet deps. Start
|
|
101
|
+
// from nodes with no deps (indegree 0); each pop removes that node
|
|
102
|
+
// from the dependents' indegree counts. Result is dependency-first.
|
|
103
|
+
const indegree = new Map();
|
|
104
|
+
for (const id of this.manifests.keys()) {
|
|
105
|
+
indegree.set(id, this.forward.get(id)?.size ?? 0);
|
|
106
|
+
}
|
|
107
|
+
const queue = [];
|
|
108
|
+
for (const [id, deg] of indegree)
|
|
109
|
+
if (deg === 0)
|
|
110
|
+
queue.push(id);
|
|
111
|
+
queue.sort();
|
|
112
|
+
const out = [];
|
|
113
|
+
while (queue.length > 0) {
|
|
114
|
+
const id = queue.shift();
|
|
115
|
+
out.push(id);
|
|
116
|
+
for (const dependent of this.reverse.get(id) ?? []) {
|
|
117
|
+
const next = (indegree.get(dependent) ?? 0) - 1;
|
|
118
|
+
indegree.set(dependent, next);
|
|
119
|
+
if (next === 0) {
|
|
120
|
+
queue.push(dependent);
|
|
121
|
+
queue.sort();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Reverse topological order (dependents first). Useful for cascade
|
|
129
|
+
* disable / hard-uninstall ordering.
|
|
130
|
+
*/
|
|
131
|
+
reverseTopologicalOrder() {
|
|
132
|
+
return this.topologicalOrder().slice().reverse();
|
|
133
|
+
}
|
|
134
|
+
/** Direct dependents of `id` (one-hop reverse edges). */
|
|
135
|
+
dependentsOf(id) {
|
|
136
|
+
return [...(this.reverse.get(id) ?? new Set())].sort();
|
|
137
|
+
}
|
|
138
|
+
/** Transitive closure of dependents (all who reach `id` through reverse edges). */
|
|
139
|
+
transitiveDependentsOf(id) {
|
|
140
|
+
const seen = new Set();
|
|
141
|
+
const stack = [...(this.reverse.get(id) ?? [])];
|
|
142
|
+
while (stack.length > 0) {
|
|
143
|
+
const cur = stack.pop();
|
|
144
|
+
if (seen.has(cur))
|
|
145
|
+
continue;
|
|
146
|
+
seen.add(cur);
|
|
147
|
+
for (const next of this.reverse.get(cur) ?? [])
|
|
148
|
+
stack.push(next);
|
|
149
|
+
}
|
|
150
|
+
return [...seen].sort();
|
|
151
|
+
}
|
|
152
|
+
/** Direct deps of `id` not present in `installed`. */
|
|
153
|
+
unresolvedDependenciesOf(id, installed) {
|
|
154
|
+
const out = [];
|
|
155
|
+
for (const dep of this.forward.get(id) ?? []) {
|
|
156
|
+
if (!installed.has(dep))
|
|
157
|
+
out.push(dep);
|
|
158
|
+
}
|
|
159
|
+
return out.sort();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Strongly connected components of a directed graph (Tarjan), iterative so a
|
|
164
|
+
* large graph cannot blow the stack.
|
|
165
|
+
*
|
|
166
|
+
* **The platform owns this walk because two of its readers must not be able to
|
|
167
|
+
* disagree about what a cycle is** (feature 080, D-160.11). It was
|
|
168
|
+
* `backend/src/db/migration-order.ts`'s private helper, which made the
|
|
169
|
+
* orchestrator's install refusal — *"with this module, [a, b] depend on each
|
|
170
|
+
* other in a loop"* — a reach out of the platform into the host application,
|
|
171
|
+
* for a pure graph walk. The host still reads it: `migration-order.ts` builds
|
|
172
|
+
* the ordering graph's condensation from exactly this function, so the member
|
|
173
|
+
* list an operator reads in a refused install is the member list the migration
|
|
174
|
+
* order reports, by construction and not by two implementations agreeing.
|
|
175
|
+
*
|
|
176
|
+
* `neighboursOf` is the caller's, so an edge into a node the caller did not
|
|
177
|
+
* declare is the caller's decision to skip or to keep.
|
|
178
|
+
*/
|
|
179
|
+
export function stronglyConnectedComponents(nodes, neighboursOf) {
|
|
180
|
+
const index = new Map();
|
|
181
|
+
const lowLink = new Map();
|
|
182
|
+
const onStack = new Set();
|
|
183
|
+
const stack = [];
|
|
184
|
+
const components = [];
|
|
185
|
+
let counter = 0;
|
|
186
|
+
const discover = (id) => {
|
|
187
|
+
index.set(id, counter);
|
|
188
|
+
lowLink.set(id, counter);
|
|
189
|
+
counter += 1;
|
|
190
|
+
stack.push(id);
|
|
191
|
+
onStack.add(id);
|
|
192
|
+
};
|
|
193
|
+
for (const root of nodes) {
|
|
194
|
+
if (index.has(root))
|
|
195
|
+
continue;
|
|
196
|
+
discover(root);
|
|
197
|
+
// `edge` is how far through the node's neighbour list the walk has got.
|
|
198
|
+
const work = [{ id: root, edge: 0 }];
|
|
199
|
+
while (work.length > 0) {
|
|
200
|
+
const frame = work[work.length - 1];
|
|
201
|
+
const neighbours = neighboursOf(frame.id);
|
|
202
|
+
if (frame.edge < neighbours.length) {
|
|
203
|
+
const next = neighbours[frame.edge];
|
|
204
|
+
frame.edge += 1;
|
|
205
|
+
if (!index.has(next)) {
|
|
206
|
+
discover(next);
|
|
207
|
+
work.push({ id: next, edge: 0 });
|
|
208
|
+
}
|
|
209
|
+
else if (onStack.has(next)) {
|
|
210
|
+
lowLink.set(frame.id, Math.min(lowLink.get(frame.id), index.get(next)));
|
|
211
|
+
}
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
work.pop();
|
|
215
|
+
if (lowLink.get(frame.id) === index.get(frame.id)) {
|
|
216
|
+
const component = [];
|
|
217
|
+
for (;;) {
|
|
218
|
+
const member = stack.pop();
|
|
219
|
+
onStack.delete(member);
|
|
220
|
+
component.push(member);
|
|
221
|
+
if (member === frame.id)
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
components.push(component.sort());
|
|
225
|
+
}
|
|
226
|
+
const parent = work[work.length - 1];
|
|
227
|
+
if (parent)
|
|
228
|
+
lowLink.set(parent.id, Math.min(lowLink.get(parent.id), lowLink.get(frame.id)));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return components;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* A stable topological sort of a condensation — Kahn's algorithm, the ready set
|
|
235
|
+
* drained by the smallest module id in the component.
|
|
236
|
+
*
|
|
237
|
+
* **The platform owns this walk for the reason it owns
|
|
238
|
+
* {@link stronglyConnectedComponents}** (D-160.11), and feature 113 is what made
|
|
239
|
+
* the reason bite: the migration order and the demo runner both order modules by
|
|
240
|
+
* the manifest `dependencies` graph, and `contracts/module-demo-data-layer.md`
|
|
241
|
+
* §4.1 says the runner *"MUST NOT maintain an order of its own"*. Two
|
|
242
|
+
* implementations of one order are two answers waiting to disagree — and they
|
|
243
|
+
* would disagree silently, because nothing compares a demo run's order to a
|
|
244
|
+
* migration run's.
|
|
245
|
+
*
|
|
246
|
+
* It was `backend/src/db/migration-order.ts`' private `sortComponents`, moved
|
|
247
|
+
* here unchanged. The `first` parameter is that file's `'core'` rule made a
|
|
248
|
+
* parameter rather than a constant: `'core'` declares nothing and nothing
|
|
249
|
+
* declares it, so it is always ready at the start, and saying "it goes first"
|
|
250
|
+
* beats relying on an accident of alphabetical ordering. A caller with no such
|
|
251
|
+
* node passes nothing and gets the plain smallest-id-first drain.
|
|
252
|
+
*
|
|
253
|
+
* It always succeeds: the condensation is acyclic, so the ready set cannot
|
|
254
|
+
* empty early and there is no unresolvable order.
|
|
255
|
+
*
|
|
256
|
+
* `neighboursOf` is the caller's, exactly as above, and an edge into a node no
|
|
257
|
+
* component holds is skipped — the caller decided what its graph contains.
|
|
258
|
+
*/
|
|
259
|
+
export function sortComponentsTopologically(components, neighboursOf, first) {
|
|
260
|
+
const componentOf = new Map();
|
|
261
|
+
components.forEach((members, position) => {
|
|
262
|
+
for (const member of members)
|
|
263
|
+
componentOf.set(member, position);
|
|
264
|
+
});
|
|
265
|
+
const successors = components.map(() => []);
|
|
266
|
+
const indegree = components.map(() => 0);
|
|
267
|
+
components.forEach((members, position) => {
|
|
268
|
+
for (const member of members) {
|
|
269
|
+
for (const dependency of neighboursOf(member)) {
|
|
270
|
+
// The edge means "mine follow theirs", so the dependency's component is
|
|
271
|
+
// emitted first: the arrow in the sort points at us. A repeated edge is
|
|
272
|
+
// counted twice on both sides and cancels out.
|
|
273
|
+
const target = componentOf.get(dependency);
|
|
274
|
+
if (target === undefined || target === position)
|
|
275
|
+
continue;
|
|
276
|
+
successors[target].push(position);
|
|
277
|
+
indegree[position] += 1;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
const firstComponent = first === undefined ? undefined : componentOf.get(first);
|
|
282
|
+
const sortKey = (position) => position === firstComponent ? '' : components[position][0];
|
|
283
|
+
const ready = components.map((_, position) => position).filter((p) => indegree[p] === 0);
|
|
284
|
+
const ordered = [];
|
|
285
|
+
while (ready.length > 0) {
|
|
286
|
+
ready.sort((left, right) => (sortKey(left) < sortKey(right) ? -1 : 1));
|
|
287
|
+
const next = ready.shift();
|
|
288
|
+
ordered.push(components[next]);
|
|
289
|
+
for (const successor of successors[next]) {
|
|
290
|
+
indegree[successor] -= 1;
|
|
291
|
+
if (indegree[successor] === 0)
|
|
292
|
+
ready.push(successor);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return ordered;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* The modules of a dependency map, dependencies before dependents, ties broken
|
|
299
|
+
* by module id.
|
|
300
|
+
*
|
|
301
|
+
* The one order two readers share: the migration order builds it through the
|
|
302
|
+
* two functions above with its own `'core'` node, and the demo runner takes it
|
|
303
|
+
* whole (feature 113, §4.1). A dependency **cycle** is not an error here — its
|
|
304
|
+
* members come out as one contiguous block in id order, and reporting it is the
|
|
305
|
+
* caller's ({@link moduleDependencyCycles}), for the reason feature 081 gives: a
|
|
306
|
+
* manifest can arrive from an installed package, and one stranger's declaration
|
|
307
|
+
* must not stop a shop's own work.
|
|
308
|
+
*
|
|
309
|
+
* An edge naming a module the map does not hold is skipped, which is §4.4's
|
|
310
|
+
* *"an entry naming a module that is not installed orders nothing"*.
|
|
311
|
+
*/
|
|
312
|
+
export function orderModulesByDependencies(moduleDependencies) {
|
|
313
|
+
const nodes = [...moduleDependencies.keys()];
|
|
314
|
+
const neighboursOf = (id) => (moduleDependencies.get(id) ?? []).filter((dependency) => moduleDependencies.has(dependency));
|
|
315
|
+
const components = stronglyConnectedComponents(nodes, neighboursOf);
|
|
316
|
+
return sortComponentsTopologically(components, neighboursOf).flat();
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Every dependency cycle in a module dependency map — one strongly connected
|
|
320
|
+
* component of more than one module per entry, members sorted.
|
|
321
|
+
*
|
|
322
|
+
* The one derivation behind three reactions (feature 081, FR-012): a red unit
|
|
323
|
+
* test for a cycle in this repository's own manifests, a `warn` at boot for one
|
|
324
|
+
* on a running platform, and the orchestrator refusing an install whose arrival
|
|
325
|
+
* closes a loop. An edge naming a module the map does not hold is skipped — a
|
|
326
|
+
* *migration* claiming such a module is refused by the ordering's own step 1,
|
|
327
|
+
* and a dependency on a module that is not there is not a cycle.
|
|
328
|
+
*/
|
|
329
|
+
export function moduleDependencyCycles(moduleDependencies) {
|
|
330
|
+
const nodes = [...moduleDependencies.keys()];
|
|
331
|
+
const neighboursOf = (id) => (moduleDependencies.get(id) ?? []).filter((dependency) => moduleDependencies.has(dependency));
|
|
332
|
+
return stronglyConnectedComponents(nodes, neighboursOf).filter((members) => members.length > 1);
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=dep-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-graph.js","sourceRoot":"","sources":["../../../src/lifecycle/services/dep-graph.ts"],"names":[],"mappings":"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"}
|