@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,170 @@
|
|
|
1
|
+
import type { Redis } from 'ioredis';
|
|
2
|
+
import type { SalesChannel } from './sales-channel.entity.js';
|
|
3
|
+
/**
|
|
4
|
+
* SalesChannelsCache — feature 005 / T012.
|
|
5
|
+
*
|
|
6
|
+
* Two-layer read-through cache used by the resolver service so that
|
|
7
|
+
* channel lookup costs <1 ms p95 even on hot paths (research R-11).
|
|
8
|
+
*
|
|
9
|
+
* 1. Per-process LRU (cap {@link LRU_MAX}, entries older than
|
|
10
|
+
* {@link SALES_CHANNELS_LRU_TTL_MS} ignored) — absorbs intra-request
|
|
11
|
+
* bursts and removes the Redis hop entirely on warm processes.
|
|
12
|
+
* 2. Redis (`sales-channels:v2:<code>`, TTL {@link TTL_SECONDS}) —
|
|
13
|
+
* cross-process consistency in multi-instance deployments.
|
|
14
|
+
*
|
|
15
|
+
* Invalidation flows write → drop in Redis → drop in LRU → announce. It is the
|
|
16
|
+
* same two-layer shape as `SettingsCache` and carries the same **three**
|
|
17
|
+
* obligations, for the same reasons (see {@link SharedDropMarks} and the TTL
|
|
18
|
+
* note there; the third is {@link SalesChannelsCacheInvalidation}, which D-93
|
|
19
|
+
* finally gave it):
|
|
20
|
+
*
|
|
21
|
+
* - the shared layer is dropped **first** and the prefix stays marked for
|
|
22
|
+
* the whole operation, so a read that lands mid-invalidation cannot
|
|
23
|
+
* re-pin the pre-drop value from Redis into the LRU, and a failed shared
|
|
24
|
+
* drop leaves reads failing closed to PostgreSQL rather than to a value
|
|
25
|
+
* the invalidation was supposed to remove;
|
|
26
|
+
* - the local layer expires, because a drop is in-process: a second instance
|
|
27
|
+
* that never ran it would otherwise serve the pre-change channel until
|
|
28
|
+
* capacity evicted it;
|
|
29
|
+
* - the drop is part of the **write**, not of the announcement.
|
|
30
|
+
*
|
|
31
|
+
* Cache values are JSON-serialised. The `null` sentinel is reserved
|
|
32
|
+
* for "no such channel"; absence of a key means "cache miss".
|
|
33
|
+
*/
|
|
34
|
+
/** Shared with the operator-facing cache-clear surface, so the two cannot drift. */
|
|
35
|
+
export declare const SALES_CHANNELS_CACHE_KEY_PREFIX = "sales-channels:v2:";
|
|
36
|
+
export declare const SALES_CHANNELS_CACHE_NAMESPACE = "sales_channels";
|
|
37
|
+
/** Maximum age of an entry in the per-process layer; see `SETTINGS_LRU_TTL_MS`. */
|
|
38
|
+
export declare const SALES_CHANNELS_LRU_TTL_MS = 30000;
|
|
39
|
+
/** Plain serialisable view of a SalesChannel — what the resolver actually needs. */
|
|
40
|
+
export interface CachedChannel {
|
|
41
|
+
id: string;
|
|
42
|
+
code: string;
|
|
43
|
+
name: Record<string, string>;
|
|
44
|
+
active: boolean;
|
|
45
|
+
/** Price-visibility flag (display concern, distinct from resolution). */
|
|
46
|
+
isPublic: boolean;
|
|
47
|
+
systemDefault: boolean;
|
|
48
|
+
defaultLanguage: string;
|
|
49
|
+
defaultCurrency: string;
|
|
50
|
+
themeCode: string | null;
|
|
51
|
+
logoAssetId: string | null;
|
|
52
|
+
languages: string[];
|
|
53
|
+
currencies: string[];
|
|
54
|
+
version: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function toCachedChannel(channel: SalesChannel): CachedChannel;
|
|
57
|
+
/**
|
|
58
|
+
* The invalidating half of the cache, as the **write seam** sees it (D-93,
|
|
59
|
+
* issue #160). The third obligation this cache's header already claimed from
|
|
60
|
+
* `SettingsCache` and had not been given.
|
|
61
|
+
*
|
|
62
|
+
* `SalesChannelsService` — the one place a channel's identity or lifecycle
|
|
63
|
+
* changes — takes this and awaits it before it emits, and `set-default` does
|
|
64
|
+
* the same after its Command commits. That is what makes the drop a property of
|
|
65
|
+
* the write instead of a property of the dispatch order: a caller that writes
|
|
66
|
+
* and reads back in the same tick, in the same `EventBus.run` scope, or with
|
|
67
|
+
* any number of module subscribers on the bus, cannot observe the pre-write
|
|
68
|
+
* channel.
|
|
69
|
+
*
|
|
70
|
+
* Both hazards were live here. `dictionaries` subscribes to the same two event
|
|
71
|
+
* names and rebuilds its own cache on receipt, so a handler ahead of the drop
|
|
72
|
+
* is the ordinary case rather than a thought experiment; and `set-default` is a
|
|
73
|
+
* Command, so its event rides the `event:` slot and dispatches only when
|
|
74
|
+
* `CommandBus.run`'s scope ends — after every read-back inside it.
|
|
75
|
+
*
|
|
76
|
+
* Narrow on purpose. The reader (`SalesChannelResolverService`) holds the whole
|
|
77
|
+
* {@link SalesChannelsCache}; the writer needs only these two, and a module that
|
|
78
|
+
* can only invalidate cannot accidentally seed the cache from the write path.
|
|
79
|
+
*/
|
|
80
|
+
export interface SalesChannelsCacheInvalidation {
|
|
81
|
+
/**
|
|
82
|
+
* Drop one channel's cached entry, on behalf of a write that has **already
|
|
83
|
+
* committed**.
|
|
84
|
+
*
|
|
85
|
+
* Returns the number of shared keys deleted, or `null` when the shared layer
|
|
86
|
+
* could not be reached. The degrade lives here rather than in a `catch` at
|
|
87
|
+
* the call site, and it is in the return type on purpose: the row is written
|
|
88
|
+
* and audited, so a Redis blip must not fail the operator's request or make
|
|
89
|
+
* them retry a write that succeeded. Correctness does not rest on the number
|
|
90
|
+
* — {@link SharedDropMarks} has marked the prefix failed, so this process
|
|
91
|
+
* bypasses both layers for those keys and retries the drop on the next read.
|
|
92
|
+
*/
|
|
93
|
+
invalidateAfterWrite(code: string): Promise<number | null>;
|
|
94
|
+
/**
|
|
95
|
+
* The same contract for a change that can move more than one channel's cached
|
|
96
|
+
* state: a delete that rebinds orphans, or the `system_default` flag moving,
|
|
97
|
+
* where the demoted channel's entry is stale too because `systemDefault`
|
|
98
|
+
* lives inside the cached value.
|
|
99
|
+
*/
|
|
100
|
+
invalidateAllAfterWrite(): Promise<number | null>;
|
|
101
|
+
}
|
|
102
|
+
export declare class SalesChannelsCache implements SalesChannelsCacheInvalidation {
|
|
103
|
+
private readonly redis;
|
|
104
|
+
/** Injectable so a test can advance the TTL window without a real clock. */
|
|
105
|
+
private readonly now;
|
|
106
|
+
private readonly lru;
|
|
107
|
+
private readonly marks;
|
|
108
|
+
constructor(redis: Redis,
|
|
109
|
+
/** Injectable so a test can advance the TTL window without a real clock. */
|
|
110
|
+
now?: () => number);
|
|
111
|
+
private static composeKey;
|
|
112
|
+
/**
|
|
113
|
+
* Returns:
|
|
114
|
+
* - { hit: true; value: CachedChannel } when the channel is cached
|
|
115
|
+
* - { hit: true; value: null } when the cache positively knows it does not exist
|
|
116
|
+
* - { hit: false } when the caller must fall through to Postgres
|
|
117
|
+
*/
|
|
118
|
+
get(code: string): Promise<{
|
|
119
|
+
hit: false;
|
|
120
|
+
} | {
|
|
121
|
+
hit: true;
|
|
122
|
+
value: CachedChannel | null;
|
|
123
|
+
}>;
|
|
124
|
+
set(code: string, channel: CachedChannel): Promise<void>;
|
|
125
|
+
/** Cache the "no such channel" outcome so repeated typos do not hammer Postgres. */
|
|
126
|
+
setNotFound(code: string): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Drop one channel's cached entry across both layers. Returns how many
|
|
129
|
+
* shared keys were deleted.
|
|
130
|
+
*/
|
|
131
|
+
invalidate(code: string): Promise<number>;
|
|
132
|
+
/**
|
|
133
|
+
* Drop every cached channel. Used on broad lifecycle changes and by the
|
|
134
|
+
* operator-facing cache clear. Returns how many shared keys were deleted.
|
|
135
|
+
*/
|
|
136
|
+
invalidateAll(): Promise<number>;
|
|
137
|
+
/** {@inheritDoc SalesChannelsCacheInvalidation.invalidateAfterWrite} */
|
|
138
|
+
invalidateAfterWrite(code: string): Promise<number | null>;
|
|
139
|
+
/** {@inheritDoc SalesChannelsCacheInvalidation.invalidateAllAfterWrite} */
|
|
140
|
+
invalidateAllAfterWrite(): Promise<number | null>;
|
|
141
|
+
/**
|
|
142
|
+
* The one place the write seam's tolerance is written down.
|
|
143
|
+
*
|
|
144
|
+
* `drop` has already marked the prefix failed by the time it re-throws, so
|
|
145
|
+
* every read in this process bypasses both layers for those keys and retries
|
|
146
|
+
* the drop until Redis answers — the invariant is intact and the answer is
|
|
147
|
+
* "slower but correct". What is left of the throw is a report, and a report
|
|
148
|
+
* must not undo the write that produced it.
|
|
149
|
+
*/
|
|
150
|
+
private afterWrite;
|
|
151
|
+
/**
|
|
152
|
+
* Drop both layers, shared layer first, with the prefix marked for the whole
|
|
153
|
+
* operation. `exact` distinguishes the two shapes: one channel's key is
|
|
154
|
+
* deleted directly (a SCAN on `<key>*` would also take every channel whose
|
|
155
|
+
* code extends it), while the namespace drop scans.
|
|
156
|
+
*/
|
|
157
|
+
private drop;
|
|
158
|
+
/** SCAN + DEL, to avoid blocking on KEYS in production-sized databases. */
|
|
159
|
+
private dropShared;
|
|
160
|
+
private dropLocal;
|
|
161
|
+
/**
|
|
162
|
+
* True when neither layer may be trusted for this key: a drop is in flight,
|
|
163
|
+
* or an earlier drop failed and Redis was never cleaned. In the failed case
|
|
164
|
+
* the drop is retried here, so a transient outage costs the affected channels
|
|
165
|
+
* their caching until Redis answers again — not for the process lifetime.
|
|
166
|
+
*/
|
|
167
|
+
private isBypassed;
|
|
168
|
+
private touchLru;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=sales-channels-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-channels-cache.d.ts","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channels-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,oFAAoF;AACpF,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AACpE,eAAO,MAAM,8BAA8B,mBAAmB,CAAC;AAE/D,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAOhD,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAgBpE;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D;;;;;OAKG;IACH,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,qBAAa,kBAAmB,YAAW,8BAA8B;IAKrE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAG5B,KAAK,EAAE,KAAK;IAC7B,4EAA4E;IAC3D,GAAG,GAAE,MAAM,MAAyB;IAGvD,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;;;;OAKG;IACG,GAAG,CACP,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,GAAG,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;KAAE,CAAC;IA6BjE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,oFAAoF;IAC9E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,wEAAwE;IAClE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIhE,2EAA2E;IACrE,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIvD;;;;;;;;OAQG;YACW,UAAU;IAQxB;;;;;OAKG;YACW,IAAI;IAmBlB,2EAA2E;YAC7D,UAAU;IAmBxB,OAAO,CAAC,SAAS;IAMjB;;;;;OAKG;YACW,UAAU;IAaxB,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { SharedDropMarks } from '../cache/shared-drop-marks.js';
|
|
2
|
+
/**
|
|
3
|
+
* SalesChannelsCache — feature 005 / T012.
|
|
4
|
+
*
|
|
5
|
+
* Two-layer read-through cache used by the resolver service so that
|
|
6
|
+
* channel lookup costs <1 ms p95 even on hot paths (research R-11).
|
|
7
|
+
*
|
|
8
|
+
* 1. Per-process LRU (cap {@link LRU_MAX}, entries older than
|
|
9
|
+
* {@link SALES_CHANNELS_LRU_TTL_MS} ignored) — absorbs intra-request
|
|
10
|
+
* bursts and removes the Redis hop entirely on warm processes.
|
|
11
|
+
* 2. Redis (`sales-channels:v2:<code>`, TTL {@link TTL_SECONDS}) —
|
|
12
|
+
* cross-process consistency in multi-instance deployments.
|
|
13
|
+
*
|
|
14
|
+
* Invalidation flows write → drop in Redis → drop in LRU → announce. It is the
|
|
15
|
+
* same two-layer shape as `SettingsCache` and carries the same **three**
|
|
16
|
+
* obligations, for the same reasons (see {@link SharedDropMarks} and the TTL
|
|
17
|
+
* note there; the third is {@link SalesChannelsCacheInvalidation}, which D-93
|
|
18
|
+
* finally gave it):
|
|
19
|
+
*
|
|
20
|
+
* - the shared layer is dropped **first** and the prefix stays marked for
|
|
21
|
+
* the whole operation, so a read that lands mid-invalidation cannot
|
|
22
|
+
* re-pin the pre-drop value from Redis into the LRU, and a failed shared
|
|
23
|
+
* drop leaves reads failing closed to PostgreSQL rather than to a value
|
|
24
|
+
* the invalidation was supposed to remove;
|
|
25
|
+
* - the local layer expires, because a drop is in-process: a second instance
|
|
26
|
+
* that never ran it would otherwise serve the pre-change channel until
|
|
27
|
+
* capacity evicted it;
|
|
28
|
+
* - the drop is part of the **write**, not of the announcement.
|
|
29
|
+
*
|
|
30
|
+
* Cache values are JSON-serialised. The `null` sentinel is reserved
|
|
31
|
+
* for "no such channel"; absence of a key means "cache miss".
|
|
32
|
+
*/
|
|
33
|
+
// v2 (feature 053): `isPublic` added to the cached shape so storefront
|
|
34
|
+
// consumers read price-visibility off the resolved channel instead of
|
|
35
|
+
// re-querying. Bumped from v1 so entries cached without the field are ignored.
|
|
36
|
+
/** Shared with the operator-facing cache-clear surface, so the two cannot drift. */
|
|
37
|
+
export const SALES_CHANNELS_CACHE_KEY_PREFIX = 'sales-channels:v2:';
|
|
38
|
+
export const SALES_CHANNELS_CACHE_NAMESPACE = 'sales_channels';
|
|
39
|
+
/** Maximum age of an entry in the per-process layer; see `SETTINGS_LRU_TTL_MS`. */
|
|
40
|
+
export const SALES_CHANNELS_LRU_TTL_MS = 30_000;
|
|
41
|
+
const KEY_PREFIX = SALES_CHANNELS_CACHE_KEY_PREFIX;
|
|
42
|
+
const TTL_SECONDS = 5 * 60;
|
|
43
|
+
const LRU_MAX = 256;
|
|
44
|
+
const NOT_FOUND_SENTINEL = '__sales_channel_not_found__';
|
|
45
|
+
export function toCachedChannel(channel) {
|
|
46
|
+
return {
|
|
47
|
+
id: channel.id,
|
|
48
|
+
code: channel.code,
|
|
49
|
+
name: channel.name,
|
|
50
|
+
active: channel.active,
|
|
51
|
+
isPublic: channel.isPublic,
|
|
52
|
+
systemDefault: channel.systemDefault,
|
|
53
|
+
defaultLanguage: channel.defaultLanguage,
|
|
54
|
+
defaultCurrency: channel.defaultCurrency,
|
|
55
|
+
themeCode: channel.themeCode ?? null,
|
|
56
|
+
logoAssetId: channel.logoAssetId ?? null,
|
|
57
|
+
languages: [...channel.languages],
|
|
58
|
+
currencies: [...channel.currencies],
|
|
59
|
+
version: channel.version,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export class SalesChannelsCache {
|
|
63
|
+
redis;
|
|
64
|
+
now;
|
|
65
|
+
lru = new Map();
|
|
66
|
+
marks = new SharedDropMarks();
|
|
67
|
+
constructor(redis,
|
|
68
|
+
/** Injectable so a test can advance the TTL window without a real clock. */
|
|
69
|
+
now = () => Date.now()) {
|
|
70
|
+
this.redis = redis;
|
|
71
|
+
this.now = now;
|
|
72
|
+
}
|
|
73
|
+
static composeKey(code) {
|
|
74
|
+
return `${KEY_PREFIX}${code}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Returns:
|
|
78
|
+
* - { hit: true; value: CachedChannel } when the channel is cached
|
|
79
|
+
* - { hit: true; value: null } when the cache positively knows it does not exist
|
|
80
|
+
* - { hit: false } when the caller must fall through to Postgres
|
|
81
|
+
*/
|
|
82
|
+
async get(code) {
|
|
83
|
+
const key = SalesChannelsCache.composeKey(code);
|
|
84
|
+
if (await this.isBypassed(key))
|
|
85
|
+
return { hit: false };
|
|
86
|
+
const entry = this.lru.get(key);
|
|
87
|
+
if (entry !== undefined) {
|
|
88
|
+
if (this.now() - entry.storedAt < SALES_CHANNELS_LRU_TTL_MS) {
|
|
89
|
+
// Touch for eviction order only — the window is on the value's age, so
|
|
90
|
+
// a channel resolved on every request still ages out.
|
|
91
|
+
this.lru.delete(key);
|
|
92
|
+
this.lru.set(key, entry);
|
|
93
|
+
return { hit: true, value: entry.value };
|
|
94
|
+
}
|
|
95
|
+
this.lru.delete(key);
|
|
96
|
+
}
|
|
97
|
+
const raw = await this.redis.get(key);
|
|
98
|
+
if (raw === null)
|
|
99
|
+
return { hit: false };
|
|
100
|
+
if (raw === NOT_FOUND_SENTINEL) {
|
|
101
|
+
this.touchLru(key, null);
|
|
102
|
+
return { hit: true, value: null };
|
|
103
|
+
}
|
|
104
|
+
const decoded = JSON.parse(raw);
|
|
105
|
+
this.touchLru(key, decoded);
|
|
106
|
+
return { hit: true, value: decoded };
|
|
107
|
+
}
|
|
108
|
+
async set(code, channel) {
|
|
109
|
+
const key = SalesChannelsCache.composeKey(code);
|
|
110
|
+
// A read that started before the change resolved the pre-change row from
|
|
111
|
+
// Postgres. Caching it now would undo the invalidation in flight.
|
|
112
|
+
if (await this.isBypassed(key))
|
|
113
|
+
return;
|
|
114
|
+
this.touchLru(key, channel);
|
|
115
|
+
await this.redis.set(key, JSON.stringify(channel), 'EX', TTL_SECONDS);
|
|
116
|
+
}
|
|
117
|
+
/** Cache the "no such channel" outcome so repeated typos do not hammer Postgres. */
|
|
118
|
+
async setNotFound(code) {
|
|
119
|
+
const key = SalesChannelsCache.composeKey(code);
|
|
120
|
+
if (await this.isBypassed(key))
|
|
121
|
+
return;
|
|
122
|
+
this.touchLru(key, null);
|
|
123
|
+
await this.redis.set(key, NOT_FOUND_SENTINEL, 'EX', TTL_SECONDS);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Drop one channel's cached entry across both layers. Returns how many
|
|
127
|
+
* shared keys were deleted.
|
|
128
|
+
*/
|
|
129
|
+
async invalidate(code) {
|
|
130
|
+
return this.drop(SalesChannelsCache.composeKey(code), true);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Drop every cached channel. Used on broad lifecycle changes and by the
|
|
134
|
+
* operator-facing cache clear. Returns how many shared keys were deleted.
|
|
135
|
+
*/
|
|
136
|
+
async invalidateAll() {
|
|
137
|
+
return this.drop(KEY_PREFIX, false);
|
|
138
|
+
}
|
|
139
|
+
/** {@inheritDoc SalesChannelsCacheInvalidation.invalidateAfterWrite} */
|
|
140
|
+
async invalidateAfterWrite(code) {
|
|
141
|
+
return this.afterWrite(() => this.invalidate(code));
|
|
142
|
+
}
|
|
143
|
+
/** {@inheritDoc SalesChannelsCacheInvalidation.invalidateAllAfterWrite} */
|
|
144
|
+
async invalidateAllAfterWrite() {
|
|
145
|
+
return this.afterWrite(() => this.invalidateAll());
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The one place the write seam's tolerance is written down.
|
|
149
|
+
*
|
|
150
|
+
* `drop` has already marked the prefix failed by the time it re-throws, so
|
|
151
|
+
* every read in this process bypasses both layers for those keys and retries
|
|
152
|
+
* the drop until Redis answers — the invariant is intact and the answer is
|
|
153
|
+
* "slower but correct". What is left of the throw is a report, and a report
|
|
154
|
+
* must not undo the write that produced it.
|
|
155
|
+
*/
|
|
156
|
+
async afterWrite(drop) {
|
|
157
|
+
try {
|
|
158
|
+
return await drop();
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Drop both layers, shared layer first, with the prefix marked for the whole
|
|
166
|
+
* operation. `exact` distinguishes the two shapes: one channel's key is
|
|
167
|
+
* deleted directly (a SCAN on `<key>*` would also take every channel whose
|
|
168
|
+
* code extends it), while the namespace drop scans.
|
|
169
|
+
*/
|
|
170
|
+
async drop(prefix, exact) {
|
|
171
|
+
this.marks.begin(prefix);
|
|
172
|
+
try {
|
|
173
|
+
const deleted = exact
|
|
174
|
+
? await this.redis.del(prefix)
|
|
175
|
+
: await this.dropShared(prefix);
|
|
176
|
+
this.marks.retireFailedUnder(prefix);
|
|
177
|
+
return deleted;
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
// Fail closed: Redis may still serve the pre-invalidation value to this
|
|
181
|
+
// process, so keep reads off the cache until a later drop succeeds.
|
|
182
|
+
this.marks.markFailed(prefix);
|
|
183
|
+
throw err;
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
this.dropLocal(prefix);
|
|
187
|
+
this.marks.finish(prefix);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/** SCAN + DEL, to avoid blocking on KEYS in production-sized databases. */
|
|
191
|
+
async dropShared(prefix) {
|
|
192
|
+
let cursor = '0';
|
|
193
|
+
let deleted = 0;
|
|
194
|
+
do {
|
|
195
|
+
const [next, keys] = await this.redis.scan(cursor, 'MATCH', `${prefix}*`, 'COUNT', 500);
|
|
196
|
+
cursor = next;
|
|
197
|
+
if (keys.length > 0) {
|
|
198
|
+
deleted += await this.redis.del(...keys);
|
|
199
|
+
}
|
|
200
|
+
} while (cursor !== '0');
|
|
201
|
+
return deleted;
|
|
202
|
+
}
|
|
203
|
+
dropLocal(prefix) {
|
|
204
|
+
for (const k of this.lru.keys()) {
|
|
205
|
+
if (k.startsWith(prefix))
|
|
206
|
+
this.lru.delete(k);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* True when neither layer may be trusted for this key: a drop is in flight,
|
|
211
|
+
* or an earlier drop failed and Redis was never cleaned. In the failed case
|
|
212
|
+
* the drop is retried here, so a transient outage costs the affected channels
|
|
213
|
+
* their caching until Redis answers again — not for the process lifetime.
|
|
214
|
+
*/
|
|
215
|
+
async isBypassed(key) {
|
|
216
|
+
if (this.marks.isClean)
|
|
217
|
+
return false;
|
|
218
|
+
if (this.marks.isDraining(key))
|
|
219
|
+
return true;
|
|
220
|
+
const failed = this.marks.failedPrefixFor(key);
|
|
221
|
+
if (failed === undefined)
|
|
222
|
+
return false;
|
|
223
|
+
try {
|
|
224
|
+
await this.drop(failed, failed !== KEY_PREFIX);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
// Still unreachable — stay off the cache and read through to Postgres.
|
|
228
|
+
}
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
touchLru(key, value) {
|
|
232
|
+
if (this.lru.has(key))
|
|
233
|
+
this.lru.delete(key);
|
|
234
|
+
this.lru.set(key, { value, storedAt: this.now() });
|
|
235
|
+
while (this.lru.size > LRU_MAX) {
|
|
236
|
+
const oldest = this.lru.keys().next().value;
|
|
237
|
+
if (oldest === undefined)
|
|
238
|
+
break;
|
|
239
|
+
this.lru.delete(oldest);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=sales-channels-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-channels-cache.js","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channels-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { RequestMeta, ScopeEntryPointKind } from '@endora-commerce/contracts';
|
|
2
|
+
import { type TenantContext } from '../tenancy/tenant-context.js';
|
|
3
|
+
import type { ResolvedChannel } from './ports/sales-channel.js';
|
|
4
|
+
import { type KernelContainer, type KernelCradle } from './container.js';
|
|
5
|
+
/**
|
|
6
|
+
* `enterPlatformScope` — the one entry into a scoped execution (feature 072,
|
|
7
|
+
* FR-015…FR-021). Six callers: the HTTP `onRequest` hook, BullMQ processors,
|
|
8
|
+
* the 15 CLI scripts, the four boot reconcilers, the four `setInterval` sweeps
|
|
9
|
+
* and — since issue #235 — the registry cache's Redis pub/sub handler.
|
|
10
|
+
*
|
|
11
|
+
* ## Three rules, none of them negotiable
|
|
12
|
+
*
|
|
13
|
+
* **1. AsyncLocalStorage stays the tenancy carrier.** `@OrgScoped` attaches a
|
|
14
|
+
* MikroORM filter with `args: false` whose `cond` is a zero-argument thunk that
|
|
15
|
+
* reads `getTenantContext()` **when the query is built**
|
|
16
|
+
* (`tenancy/org-scoped.decorator.ts` → `tenancy/filters.ts`). The EntityManager
|
|
17
|
+
* is therefore stateless with respect to tenancy, and that is exactly what makes
|
|
18
|
+
* `forkScopedEm(orm) = orm.em.fork()` correct. Registering tenancy in the
|
|
19
|
+
* container instead would require `setFilterParams` on a scoped EM and would
|
|
20
|
+
* break every `em.transactional` sub-fork and every service that forks its own
|
|
21
|
+
* manager. `test/integration/tenancy/fault-injection.test.ts` is this design's
|
|
22
|
+
* unit test: it calls one EM factory inside five different ambient stores and
|
|
23
|
+
* asserts five different result sets. Any design in which a scoped EM captures
|
|
24
|
+
* tenancy at construction inverts every assertion in that file.
|
|
25
|
+
*
|
|
26
|
+
* **2. The ALS `run()` is the outermost wrapper of the work.** It is the
|
|
27
|
+
* callback form (`storage.run`), never `storage.enterWith`: `enterWith` called
|
|
28
|
+
* inside an *async* Fastify hook does not propagate into the handler, and it
|
|
29
|
+
* fails **silently** (`tenancy/tenant-context.ts`). The consequence is
|
|
30
|
+
* structural — the awilix scope cannot be created in a separate, earlier hook,
|
|
31
|
+
* because its disposal and the store's lifetime would then not coincide.
|
|
32
|
+
*
|
|
33
|
+
* **3. The channel goes into the scope; tenancy does not.** The channel is
|
|
34
|
+
* already per-request and has no non-HTTP counterpart. Tenancy must stay
|
|
35
|
+
* establishable by CLI scripts, workers, boot reconcilers and interval timers
|
|
36
|
+
* that will never have a request scope.
|
|
37
|
+
*
|
|
38
|
+
* ## `onRequest` hook ordering is load-bearing
|
|
39
|
+
*
|
|
40
|
+
* The three global `onRequest` hooks run in array order (`http/server.ts`):
|
|
41
|
+
*
|
|
42
|
+
* auth → tenant → sales channel
|
|
43
|
+
*
|
|
44
|
+
* **This ordering is a constraint, not an accident of registration.** The
|
|
45
|
+
* channel resolver performs database reads through `emFactory`, and would throw
|
|
46
|
+
* `MissingTenantContextError` if it ran before the tenant hook and `SalesChannel`
|
|
47
|
+
* were tenant-scoped. `SalesChannel` is `@GlobalEntity` today, so either order
|
|
48
|
+
* survives — which is precisely why the kernel must not reorder them on the
|
|
49
|
+
* assumption that it is free. Classify `SalesChannel` any other way and the
|
|
50
|
+
* reversed order breaks every request.
|
|
51
|
+
*
|
|
52
|
+
* Three call sites already run inside a request but *before* tenancy exists and
|
|
53
|
+
* use `withSystemScope` for it: auth resolving the customer organisation, mfa,
|
|
54
|
+
* and `customer-rollup-scope.ts` called from inside the context builder itself.
|
|
55
|
+
* They are the precedent this ordering has to preserve.
|
|
56
|
+
*
|
|
57
|
+
* ## Using it from the HTTP hook
|
|
58
|
+
*
|
|
59
|
+
* The hook must call the next stage **synchronously inside** the store and keep
|
|
60
|
+
* the scope alive for the whole request, so the shape is a promise that settles
|
|
61
|
+
* when the response does:
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* app.addHook('onRequest', (request, reply, done) => {
|
|
65
|
+
* buildTenantContext(request).then(
|
|
66
|
+
* (tenant) => {
|
|
67
|
+
* void enterPlatformScope(
|
|
68
|
+
* tenant,
|
|
69
|
+
* () =>
|
|
70
|
+
* new Promise<void>((resolve) => {
|
|
71
|
+
* reply.raw.once('close', resolve);
|
|
72
|
+
* done();
|
|
73
|
+
* }),
|
|
74
|
+
* { requestMeta: requestMetaOf(request) },
|
|
75
|
+
* );
|
|
76
|
+
* },
|
|
77
|
+
* (err: unknown) => done(err as Error),
|
|
78
|
+
* );
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* `done()` runs inside `storage.run`, so the store propagates across the
|
|
83
|
+
* handler's awaited continuations; `close` fires on success, on error and on
|
|
84
|
+
* client abort, so the scope is disposed in all three cases.
|
|
85
|
+
*/
|
|
86
|
+
/** A scoped execution: an awilix child container plus the ambient tenant store. */
|
|
87
|
+
export interface PlatformScope {
|
|
88
|
+
/** Resolution surface for this execution. */
|
|
89
|
+
readonly cradle: KernelCradle;
|
|
90
|
+
/**
|
|
91
|
+
* The ambient tenant context. Present here for inspection only — it is **not**
|
|
92
|
+
* a container registration, and reading it back from a scope is never a
|
|
93
|
+
* substitute for `getTenantContext()`, which is what the ORM filter uses.
|
|
94
|
+
*/
|
|
95
|
+
readonly tenant: TenantContext;
|
|
96
|
+
/** Which class of entry point opened this scope. */
|
|
97
|
+
readonly entryPoint: ScopeEntryPointKind;
|
|
98
|
+
/** The resolved sales channel; `null` until resolved, and outside HTTP forever. */
|
|
99
|
+
readonly channel: ResolvedChannel | null;
|
|
100
|
+
/** Correlation id and client info; absent outside HTTP. */
|
|
101
|
+
readonly requestMeta: RequestMeta | null;
|
|
102
|
+
/**
|
|
103
|
+
* Fill the channel slot. HTTP only, and called exactly once, by the
|
|
104
|
+
* sales-channel resolver hook.
|
|
105
|
+
*
|
|
106
|
+
* **Why the slot is mutable at all** — a correction to `contracts/request-scope.md`,
|
|
107
|
+
* which reads as though the channel is known when the scope opens. It is not:
|
|
108
|
+
* the hook order is auth → tenant → channel (see above), so the scope is
|
|
109
|
+
* already open when the resolver runs, and the resolver *must* run after
|
|
110
|
+
* tenancy because its refusal path writes an audit row. The alternatives are
|
|
111
|
+
* reordering the hooks (forbidden — the ordering is load-bearing) or opening a
|
|
112
|
+
* second scope for the channel (its disposal would no longer coincide with the
|
|
113
|
+
* store's lifetime, which rule 2 forbids).
|
|
114
|
+
*/
|
|
115
|
+
setChannel(channel: ResolvedChannel): void;
|
|
116
|
+
dispose(): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
export interface EnterPlatformScopeOptions {
|
|
119
|
+
readonly channel?: ResolvedChannel | undefined;
|
|
120
|
+
readonly requestMeta?: RequestMeta | undefined;
|
|
121
|
+
/** Which class of entry point this is. Defaults to `'http'`. */
|
|
122
|
+
readonly entryPoint?: ScopeEntryPointKind | undefined;
|
|
123
|
+
/** Root to branch from. Defaults to the process-wide root container. */
|
|
124
|
+
readonly container?: KernelContainer | undefined;
|
|
125
|
+
}
|
|
126
|
+
/** The scope of the current execution, or `undefined` outside one. */
|
|
127
|
+
export declare function getCurrentPlatformScope(): PlatformScope | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* How many scopes are currently open. Diagnostics only — the leak test asserts
|
|
130
|
+
* it returns to its pre-request value after success, error and client abort
|
|
131
|
+
* (FR-015).
|
|
132
|
+
*/
|
|
133
|
+
export declare function openPlatformScopeCount(): number;
|
|
134
|
+
/**
|
|
135
|
+
* Run `run` inside a fresh resolution scope with `tenant` as the ambient tenant
|
|
136
|
+
* context. The scope is disposed when `run` settles — on success, on error and
|
|
137
|
+
* on abort.
|
|
138
|
+
*/
|
|
139
|
+
export declare function enterPlatformScope<T>(tenant: TenantContext, run: (scope: PlatformScope) => T | Promise<T>, opts?: EnterPlatformScopeOptions): Promise<T>;
|
|
140
|
+
/**
|
|
141
|
+
* Open a scope that crosses every organisation, for an execution that has no
|
|
142
|
+
* caller to derive tenancy from: a worker job, a CLI script, a boot reconciler
|
|
143
|
+
* or an interval sweep.
|
|
144
|
+
*
|
|
145
|
+
* The difference from `withSystemScope` is which question it answers.
|
|
146
|
+
* `withSystemScope` **widens an execution that already has a context** (a
|
|
147
|
+
* request handler that must read across organisations); this **starts** one, and
|
|
148
|
+
* is therefore also where the resolution scope is created. Both emit the same
|
|
149
|
+
* escape-hatch audit record, so `reason` stays mandatory and the cross-org
|
|
150
|
+
* access stays observable.
|
|
151
|
+
*/
|
|
152
|
+
export declare function enterSystemScope<T>(reason: string, run: (scope: PlatformScope) => T | Promise<T>, opts?: Omit<EnterPlatformScopeOptions, 'channel'>): Promise<T>;
|
|
153
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/kernel/scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAoB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACtD,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAClD;AAcD,sEAAsE;AACtE,wBAAgB,uBAAuB,IAAI,aAAa,GAAG,SAAS,CAEnE;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA8GD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC7C,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC7C,IAAI,GAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAM,GACpD,OAAO,CAAC,CAAC,CAAC,CAMZ"}
|