Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion js-storefront/b2bspastore/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# B2bspastore

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.7.
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.19.

## Development server

Expand Down
2,394 changes: 1,225 additions & 1,169 deletions js-storefront/b2bspastore/package-lock.json

Large diffs are not rendered by default.

64 changes: 32 additions & 32 deletions js-storefront/b2bspastore/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"build:ssr": "ng build"
},
"private": true,
"packageManager": "npm@10.8.2",
"packageManager": "npm@10.9.8",
"dependencies": {
"@angular/common": "^21.2.0",
"@angular/compiler": "^21.2.0",
Expand All @@ -20,53 +20,53 @@
"@angular/platform-browser": "^21.2.0",
"@angular/platform-server": "^21.2.0",
"@angular/router": "^21.2.0",
"@angular/service-worker": "^21.2.4",
"@angular/ssr": "^21.2.7",
"@angular/service-worker": "^21.2.19",
"@angular/ssr": "^21.2.22",
"@fontsource/open-sans": "^5.2.7",
"@fortawesome/fontawesome-free": "7.1.0",
"@ng-select/ng-select": "^21.1.4",
"@ngrx/effects": "^21.0.1",
"@ngrx/router-store": "^21.0.1",
"@ngrx/store": "^21.0.1",
"@spartacus/asm": "~221121.10.0",
"@spartacus/assets": "~221121.10.0",
"@spartacus/cart": "~221121.10.0",
"@spartacus/checkout": "~221121.10.0",
"@spartacus/core": "~221121.10.0",
"@spartacus/customer-ticketing": "^221121.10.0",
"@spartacus/order": "~221121.10.0",
"@spartacus/organization": "^221121.10.0",
"@spartacus/pdf-invoices": "~221121.10.0",
"@spartacus/pickup-in-store": "^221121.10.0",
"@spartacus/product": "~221121.10.0",
"@spartacus/product-configurator": "^221121.10.0",
"@spartacus/qualtrics": "^221121.10.0",
"@spartacus/setup": "~221121.10.0",
"@spartacus/smartedit": "~221121.10.0",
"@spartacus/storefinder": "~221121.10.0",
"@spartacus/storefront": "~221121.10.0",
"@spartacus/styles": "~221121.10.0",
"@spartacus/tracking": "~221121.10.0",
"@spartacus/user": "~221121.10.0",
"@spartacus/asm": "~221121.18.0",
"@spartacus/assets": "~221121.18.0",
"@spartacus/cart": "~221121.18.0",
"@spartacus/checkout": "~221121.18.0",
"@spartacus/core": "~221121.18.0",
"@spartacus/customer-ticketing": "^221121.18.0",
"@spartacus/order": "~221121.18.0",
"@spartacus/organization": "^221121.18.0",
"@spartacus/pdf-invoices": "~221121.18.0",
"@spartacus/pickup-in-store": "^221121.18.0",
"@spartacus/product": "~221121.18.0",
"@spartacus/product-configurator": "^221121.18.0",
"@spartacus/qualtrics": "^221121.18.0",
"@spartacus/setup": "~221121.18.0",
"@spartacus/smartedit": "~221121.18.0",
"@spartacus/storefinder": "~221121.18.0",
"@spartacus/storefront": "~221121.18.0",
"@spartacus/styles": "~221121.18.0",
"@spartacus/tracking": "~221121.18.0",
"@spartacus/user": "~221121.18.0",
"angular-oauth2-oidc": "^20.0.2",
"express": "^5.1.0",
"i18next": "^25.7.4",
"i18next-http-backend": "^3.0.2",
"i18next-resources-to-backend": "^1.2.1",
"i18next-http-backend": "^3.0.6",
"i18next-resources-to-backend": "^1.2.2",
"ngx-infinite-scroll": "^21.0.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.16.0"
},
"devDependencies": {
"@angular-devkit/core": "^21.2.3",
"@angular-devkit/schematics": "^21.2.3",
"@angular/build": "^21.2.7",
"@angular/cli": "^21.2.7",
"@angular/compiler": "^21.2.4",
"@angular-devkit/core": "^21.2.19",
"@angular-devkit/schematics": "^21.2.19",
"@angular/build": "^21.2.19",
"@angular/cli": "^21.2.19",
"@angular/compiler": "^21.2.19",
"@angular/compiler-cli": "^21.2.0",
"@schematics/angular": "^21.2.0",
"@spartacus/schematics": "~221121.10.0",
"@schematics/angular": "^21.2.19",
"@spartacus/schematics": "~221121.18.0",
"@types/express": "^5.0.1",
"@types/node": "^20.17.19",
"jsdom": "^28.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import {
}),
provideConfig(<FeaturesConfig>{
features: {
level: '221121.10',
level: '221121.18',
},
}),
provideConfig(defaultB2bOccConfig),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ import { CartQuickOrderFeatureModule } from './features/cart/cart-quick-order-fe
import { CartImportExportFeatureModule } from './features/cart/cart-import-export-feature.module';
import { OrderFeatureModule } from './features/order/order-feature.module';
import { CheckoutFeatureModule } from './features/checkout/checkout-feature.module';
import { PersonalizationFeatureModule } from './features/tracking/personalization-feature.module';
import { StoreFinderFeatureModule } from './features/storefinder/store-finder-feature.module';
import { PersonalizationFeatureModule } from './features/tracking/personalization-feature.module';
import { AsmFeatureModule } from './features/asm/asm-feature.module';
import { AsmCustomer360FeatureModule } from './features/asm/asm-customer360-feature.module';
import { SmartEditFeatureModule } from './features/smartedit/smart-edit-feature.module';
Expand Down Expand Up @@ -140,8 +140,8 @@ import { ProductConfiguratorFeatureModule } from './features/product-configurato
CartImportExportFeatureModule,
OrderFeatureModule,
CheckoutFeatureModule,
PersonalizationFeatureModule,
StoreFinderFeatureModule,
PersonalizationFeatureModule,
AsmFeatureModule,
AsmCustomer360FeatureModule,
SmartEditFeatureModule,
Expand All @@ -161,43 +161,37 @@ import { ProductConfiguratorFeatureModule } from './features/product-configurato
],
providers: [
provideFeatureToggles({
alignNavigationMenuWithHeader: true,
a11yKeyboardAccessibleZoom: true,
a11yPreventCartItemsFormRedundantRecreation: true,
a11yStoreFinderLabel: true,
a11yStoreFinderFocusOnBackButton: true,
a11yB2BRegisterComponent: true,
a11yIncreaseContastGlobalMessageCloseButton: true,
a11yLinkBtnsToTertiaryBtns: true,
a11yAddPaddingToCarouselPanel: true,
a11yNgSelectUnicodeCarets: true,
readMoreDirective: true,
productReviewCharactersLeft: true,
a11yNgSelectAriaControls: true,
a11yConfiguratorOverviewHeaderVPC: true,
a11yPreventWindowsHighContrastOverride: true,
productListItemSummaryReadMore: true,
a11yFutureStockAccordionAriaControls: true,
enableReadDomainValuesOnDemand: true,
storeFinderFacadeCleanup: true,
defaultProductPageRouteAllowsNoProductName: true,
consistentSizeProductCards: true,
reserveHorizontalSpaceStarRating: true,
topProgressBarUseTransformAnimation: true,
disableCxPageSlotMarginAnimation: true,
productCarouselScrolling: true,
cdsLoginEventsToken: true,
createMediaPreconnectLink: true,
unifiedDefaultHeaderSlotsAcrossBreakpoints: true,
reserveSpaceForImagesOnPdpAndPlp: true,
lazyLoadImagesByDefault: true,
authorizationCodeFlowByDefault: true,
incrementProcessesCountForMergeCart: true,
dispatchLoginActionOnlyWhenTokenReceived: true,
defaultLayoutConfigWithoutPageFold: true,
authorizationCodeFlowByDefaultCsrfTokenRefresh: true,
navigationMenuCloseOnSameLinkClick: true,
enablePasswordExpiredErrorTranslation: true,
enableQuotePurchaseOrderNumber: true,
enableReturnOrderReturnableQuantityConsigmentFallback: true,
enableMediaPrefix: true,
a11yCustomerTicketingVisualFocusFix: true,
a11yMessagingListKeyboardFocus: true,
orderOverviewCardsInlinePadding: true,
a11yStoreFinderListItemFocus: true,
a11yFixSearchBoxDoubleFocus: true,
a11yFacetFilterByLabel: true,
removeDuplicatedOrderHistoryHeader: true,
a11yCardNotificationMessage: true,
searchBoxRecentSearchesRemoval: true,
searchBoxEmptyQueryResultsPanel: true,
cdsBottomHeaderSlotAdjustPosition: true,
enableB2BUnitSearch: true,
enableB2BCostCenterSearch: true,
enableB2BCustomerSearch: true,
Expand All @@ -207,8 +201,52 @@ import { ProductConfiguratorFeatureModule } from './features/product-configurato
showOnlyActiveCurrencies: true,
a11yAddedToCartDialogHeading: true,
a11yListSemanticsForFacets: true,
a11yFilteredFacetAnnouncement: true,
a11yCartItemListHideEmptyOutlets: true,
a11yReviewsKeyboardControls: true,
a11yCartQuickOrderFormEnableSubmitAndAddValidation: true,
a11yConsentManagementFocusPreservation: true,
a11yDeliveryModeFocusPreservation: true,
a11yFormFieldSectionLegend: true,
a11yImproveCheckoutFocus: true,
a11yVocalizeDropdownItemCount: true,
a11yRestoreFocusOnNgSelect: true,
a11yKeepFocusOnConsentManagementButtons: true,
useEnhancedSecurePasswordValidators: true,
enableApplyVoucherEndpoint: true,
enableRemoveVoucherEndpoint: true,
showSortFieldsOnlyAtTop: true,
showRequiredAsterisks: true,
enableExpiredRefreshTokenHandlers: true,
enableCartReloadOnContextChange: true,
opfPaymentVerificationCheckProcessingCartOnErrorOnly: true,
a11yQuickOrderResetFocus: true,
a11yCouponNotificationChannelsLinkStyling: true,
a11ySiteContextCaretClick: true,
redirectOnlyOnTrueNavigationEnd: true,
pageLinkSanitizeCanonicalUrl: true,
opfUseDestroyRef: true,
enableHierarchicalAddressFormat: true,
opfCheckoutUseUpdatePaymentTransaction: true,
a11yRegistrationTermsAsteriskMargin: true,
a11yAddToWishListBtnMargin: true,
a11yProductListItemNameMargin: true,
propagateLogoutToAllTabs: true,
asyncAuthConfigInitializer: true,
siteIsolationForCustomLoginPage: true,
applyBaseSiteThemeFromCms: true,
a11yNavigationSpaceKeyOnKeyUp: true,
b2bCheckoutShippingAddressFilter: true,
improvedTabStyling: true,
reloadOnLanguageChange: true,
productConfiguratorConsolidatedButtonDisabling: true,
mergeGuestCartOnCodeFlowLogin: true,
a11yFormErrorIconContrast: true,
a11yFocusIndicatorContrast: true,
a11yDisabledButtonContrast: true,
a11yImproveAddressFormFocus: true,
a11yFocusBreadcrumbOnNavigation: true,
a11yNavigationChevronContrast: true,
}),
],
})
Expand Down
17 changes: 12 additions & 5 deletions js-storefront/b2bspastore/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { APP_BASE_HREF } from '@angular/common';
import {
NgExpressEngineDecorator,
defaultExpressErrorHandlers,
getOriginValidationMiddleware,
ngExpressEngine as engine,
} from '@spartacus/setup/ssr';
import express from 'express';
Expand All @@ -10,11 +11,7 @@ import { dirname, join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import bootstrap from './main.server';

const ngExpressEngine = NgExpressEngineDecorator.get(engine, {
ssrFeatureToggles: {
limitCacheByMemory: true,
},
});
const ngExpressEngine = NgExpressEngineDecorator.get(engine);

// The Express app is exported so that it can be used by serverless Functions.
export function app(): express.Express {
Expand All @@ -26,6 +23,16 @@ export function app(): express.Express {

server.set('trust proxy', 'loopback');

// Validates the resolved request origin against an allowlist. See the JSDoc
// of `getOriginValidationMiddleware` for the accepted formats and matching
// rules. Here it is read from the `SSR_ALLOWED_ORIGINS` environment variable
// (comma-separated); when unset or empty the middleware is a no-op.
server.use(
getOriginValidationMiddleware({
allowedOrigins: process.env['SSR_ALLOWED_ORIGINS'],
}),
);

server.engine(
'html',
ngExpressEngine({
Expand Down
2 changes: 1 addition & 1 deletion js-storefront/b2bspastore/src/styles-config.scss
Original file line number Diff line number Diff line change
@@ -1 +1 @@
$styleVersion: 221121.1;
$styleVersion: 221121.18;
2 changes: 1 addition & 1 deletion js-storefront/spartacusstore/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Spartacusstore

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.7.
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.19.

## Development server

Expand Down
Loading