From 0e614312bd0cdf449debbafb40af7cf4de1f606f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Nowak?= <49277278+michnowak@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:17:08 +0100 Subject: [PATCH 01/35] feat: update page model and integration to support redirects (#777) --- .changeset/all-islands-search.md | 5 +++++ .changeset/odd-stars-heal.md | 7 +++++++ apps/api-harmonization/src/modules/page/page.mapper.ts | 1 + apps/api-harmonization/src/modules/page/page.model.ts | 1 + apps/frontend/src/app/[locale]/[[...slug]]/page.tsx | 6 +++++- package-lock.json | 7 ++++--- packages/framework/src/modules/cms/models/page.model.ts | 1 + .../src/modules/cms/mappers/mocks/pages/home.page.ts | 3 +++ 8 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 .changeset/all-islands-search.md create mode 100644 .changeset/odd-stars-heal.md diff --git a/.changeset/all-islands-search.md b/.changeset/all-islands-search.md new file mode 100644 index 000000000..9179373a7 --- /dev/null +++ b/.changeset/all-islands-search.md @@ -0,0 +1,5 @@ +--- +'@o2s/integrations.mocked-dxp': minor +--- + +feat: added redirection for homepage dxp mock diff --git a/.changeset/odd-stars-heal.md b/.changeset/odd-stars-heal.md new file mode 100644 index 000000000..464f04404 --- /dev/null +++ b/.changeset/odd-stars-heal.md @@ -0,0 +1,7 @@ +--- +'@o2s/api-harmonization': minor +'@o2s/framework': minor +'@o2s/frontend': minor +--- + +feat: update page model and integration to support redirects diff --git a/apps/api-harmonization/src/modules/page/page.mapper.ts b/apps/api-harmonization/src/modules/page/page.mapper.ts index 7158a31ad..25f44ddad 100644 --- a/apps/api-harmonization/src/modules/page/page.mapper.ts +++ b/apps/api-harmonization/src/modules/page/page.mapper.ts @@ -31,6 +31,7 @@ export const mapPage = ( }, locales, theme: page.theme, + redirect: page.redirect, }, data: { alternativeUrls, diff --git a/apps/api-harmonization/src/modules/page/page.model.ts b/apps/api-harmonization/src/modules/page/page.model.ts index a7be6f31d..6027806fe 100644 --- a/apps/api-harmonization/src/modules/page/page.model.ts +++ b/apps/api-harmonization/src/modules/page/page.model.ts @@ -64,6 +64,7 @@ export class Metadata { seo!: Models.SEO.Page; locales!: string[]; theme?: string; + redirect?: string; } export class Breadcrumb { diff --git a/apps/frontend/src/app/[locale]/[[...slug]]/page.tsx b/apps/frontend/src/app/[locale]/[[...slug]]/page.tsx index 50b82245c..d7e0e22c1 100644 --- a/apps/frontend/src/app/[locale]/[[...slug]]/page.tsx +++ b/apps/frontend/src/app/[locale]/[[...slug]]/page.tsx @@ -1,7 +1,7 @@ import { Metadata } from 'next'; import { setRequestLocale } from 'next-intl/server'; import { headers } from 'next/headers'; -import { notFound } from 'next/navigation'; +import { notFound, redirect } from 'next/navigation'; import React from 'react'; import { GlobalProvider } from '@o2s/ui/providers/GlobalProvider'; @@ -96,6 +96,10 @@ export default async function Page({ params }: Props) { session?.accessToken, ); + if (meta.redirect) { + redirect(`/${locale}${meta.redirect}`); + } + if (session?.user && session?.error === 'RefreshTokenError') { return await signIn(); } diff --git a/package-lock.json b/package-lock.json index 813430392..bc8772568 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51545,7 +51545,7 @@ } }, "packages/cli/create-o2s-app": { - "version": "2.0.0", + "version": "3.0.0", "license": "MIT", "dependencies": { "@o2s/telemetry": "^1.2.1", @@ -51599,7 +51599,8 @@ "license": "MIT", "dependencies": { "@o2s/framework": "*", - "@o2s/integrations.mocked": "*" + "@o2s/integrations.mocked": "*", + "@o2s/integrations.mocked-dxp": "*" }, "devDependencies": { "@o2s/eslint-config": "*", @@ -51963,7 +51964,7 @@ }, "packages/integrations/mocked-dxp": { "name": "@o2s/integrations.mocked-dxp", - "version": "0.0.1", + "version": "1.0.0", "license": "MIT", "dependencies": { "@o2s/framework": "*", diff --git a/packages/framework/src/modules/cms/models/page.model.ts b/packages/framework/src/modules/cms/models/page.model.ts index d8e15ae45..ae770efaf 100644 --- a/packages/framework/src/modules/cms/models/page.model.ts +++ b/packages/framework/src/modules/cms/models/page.model.ts @@ -24,6 +24,7 @@ export class Page { /** Role-based access control (e.g., ['ORG_USER', 'ORG_ADMIN']) */ roles?: string[]; theme?: string; + redirect?: string; } export abstract class Template { diff --git a/packages/integrations/mocked-dxp/src/modules/cms/mappers/mocks/pages/home.page.ts b/packages/integrations/mocked-dxp/src/modules/cms/mappers/mocks/pages/home.page.ts index 341d8f58d..8fa89cc67 100644 --- a/packages/integrations/mocked-dxp/src/modules/cms/mappers/mocks/pages/home.page.ts +++ b/packages/integrations/mocked-dxp/src/modules/cms/mappers/mocks/pages/home.page.ts @@ -41,6 +41,7 @@ export const PAGE_HOME_EN: CMS.Model.Page.Page = { }, }, hasOwnTitle: true, + redirect: '/personal', template: { __typename: 'OneColumnTemplate', slots: { @@ -92,6 +93,7 @@ export const PAGE_HOME_DE: CMS.Model.Page.Page = { }, }, hasOwnTitle: false, + redirect: '/personlich', template: { __typename: 'OneColumnTemplate', slots: { @@ -143,6 +145,7 @@ export const PAGE_HOME_PL: CMS.Model.Page.Page = { }, }, hasOwnTitle: false, + redirect: '/indywidualny', template: { __typename: 'OneColumnTemplate', slots: { From d4da91182274fd6cd7b87555b0391ff7631fbf47 Mon Sep 17 00:00:00 2001 From: Marcin Krasowski Date: Thu, 12 Mar 2026 12:15:49 +0100 Subject: [PATCH 02/35] chore(config): update renovate config to enable npm manager and weekly lock file maintenance --- renovate.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/renovate.json b/renovate.json index faca38042..8028057b7 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,11 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended"], + "enabledManagers": ["npm"], + "lockFileMaintenance": { + "enabled": true, + "schedule": ["after 11pm on sunday"] + }, "vulnerabilityAlerts": { "enabled": true }, @@ -19,6 +24,5 @@ ], "rangeStrategy": "widen" } - ], - "postUpdateOptions": ["npmInstallTwice"] + ] } From 742ffbd717d22c1ba407408b066b3e8c79d24bd7 Mon Sep 17 00:00:00 2001 From: Marcin Krasowski Date: Thu, 12 Mar 2026 14:32:46 +0100 Subject: [PATCH 03/35] chore(config): update renovate config to disable OSV vulnerability alerts --- renovate.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 8028057b7..8b074595c 100644 --- a/renovate.json +++ b/renovate.json @@ -2,6 +2,7 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended"], "enabledManagers": ["npm"], + "ignorePaths": ["**/dist/**", "**/build/**", "**/.next/**", "**/generated/**"], "lockFileMaintenance": { "enabled": true, "schedule": ["after 11pm on sunday"] @@ -9,7 +10,7 @@ "vulnerabilityAlerts": { "enabled": true }, - "osvVulnerabilityAlerts": true, + "osvVulnerabilityAlerts": false, "packageRules": [ { "matchDepTypes": [ From 0a8b958d6c8d29e95d21af058a1ce8709b8aa469 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 14:56:38 +0100 Subject: [PATCH 04/35] chore(deps): update commitlint monorepo to ^20.4.4 (#781) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 297 ++++++++++++++++++++++++++-------------------- package.json | 4 +- 2 files changed, 173 insertions(+), 128 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc8772568..73c4ae7af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,8 +24,8 @@ "unzipper": "^0.12.3" }, "devDependencies": { - "@commitlint/cli": "^20.4.2", - "@commitlint/config-conventional": "^20.4.2", + "@commitlint/cli": "^20.4.4", + "@commitlint/config-conventional": "^20.4.4", "@playwright/test": "^1.58.2", "@storybook/addon-a11y": "^10.2.13", "@storybook/addon-docs": "^10.2.13", @@ -3833,17 +3833,17 @@ } }, "node_modules/@commitlint/cli": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.4.2.tgz", - "integrity": "sha512-YjYSX2yj/WsVoxh9mNiymfFS2ADbg2EK4+1WAsMuckwKMCqJ5PDG0CJU/8GvmHWcv4VRB2V02KqSiecRksWqZQ==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.4.4.tgz", + "integrity": "sha512-GLMNQHYGcn0ohL2HMlAnXcD1PS2vqBBGbYKlhrRPOYsWiRoLWtrewsR3uKRb9v/IdS+qOS0vqJQ64n1g8VPKFw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/format": "^20.4.0", - "@commitlint/lint": "^20.4.2", - "@commitlint/load": "^20.4.0", - "@commitlint/read": "^20.4.0", - "@commitlint/types": "^20.4.0", + "@commitlint/format": "^20.4.4", + "@commitlint/lint": "^20.4.4", + "@commitlint/load": "^20.4.4", + "@commitlint/read": "^20.4.4", + "@commitlint/types": "^20.4.4", "tinyexec": "^1.0.0", "yargs": "^17.0.0" }, @@ -3855,27 +3855,27 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.4.2.tgz", - "integrity": "sha512-rwkTF55q7Q+6dpSKUmJoScV0f3EpDlWKw2UPzklkLS4o5krMN1tPWAVOgHRtyUTMneIapLeQwaCjn44Td6OzBQ==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.4.4.tgz", + "integrity": "sha512-Usg+XXbPNG2GtFWTgRURNWCge1iH1y6jQIvvklOdAbyn2t8ajfVwZCnf5t5X4gUsy17BOiY+myszGsSMIvhOVA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", - "conventional-changelog-conventionalcommits": "^9.1.0" + "@commitlint/types": "^20.4.4", + "conventional-changelog-conventionalcommits": "^9.2.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/config-validator": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.4.0.tgz", - "integrity": "sha512-zShmKTF+sqyNOfAE0vKcqnpvVpG0YX8F9G/ZIQHI2CoKyK+PSdladXMSns400aZ5/QZs+0fN75B//3Q5CHw++w==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.4.4.tgz", + "integrity": "sha512-K8hMS9PTLl7EYe5vWtSFQ/sgsV2PHUOtEnosg8k3ZQxCyfKD34I4C7FxWEfRTR54rFKeUYmM3pmRQqBNQeLdlw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", + "@commitlint/types": "^20.4.4", "ajv": "^8.11.0" }, "engines": { @@ -3883,9 +3883,9 @@ } }, "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -3907,13 +3907,13 @@ "license": "MIT" }, "node_modules/@commitlint/ensure": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.4.1.tgz", - "integrity": "sha512-WLQqaFx1pBooiVvBrA1YfJNFqZF8wS/YGOtr5RzApDbV9tQ52qT5VkTsY65hFTnXhW8PcDfZLaknfJTmPejmlw==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.4.4.tgz", + "integrity": "sha512-QivV0M1MGL867XCaF+jJkbVXEPKBALhUUXdjae66hes95aY1p3vBJdrcl3x8jDv2pdKWvIYIz+7DFRV/v0dRkA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", + "@commitlint/types": "^20.4.4", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -3935,13 +3935,13 @@ } }, "node_modules/@commitlint/format": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-20.4.0.tgz", - "integrity": "sha512-i3ki3WR0rgolFVX6r64poBHXM1t8qlFel1G1eCBvVgntE3fCJitmzSvH5JD/KVJN/snz6TfaX2CLdON7+s4WVQ==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-20.4.4.tgz", + "integrity": "sha512-jLi/JBA4GEQxc5135VYCnkShcm1/rarbXMn2Tlt3Si7DHiiNKHm4TaiJCLnGbZ1r8UfwDRk+qrzZ80kwh08Aow==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", + "@commitlint/types": "^20.4.4", "picocolors": "^1.1.1" }, "engines": { @@ -3949,13 +3949,13 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.4.1.tgz", - "integrity": "sha512-In5EO4JR1lNsAv1oOBBO24V9ND1IqdAJDKZiEpdfjDl2HMasAcT7oA+5BKONv1pRoLG380DGPE2W2RIcUwdgLA==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.4.4.tgz", + "integrity": "sha512-y76rT8yq02x+pMDBI2vY4y/ByAwmJTkta/pASbgo8tldBiKLduX8/2NCRTSCjb3SumE5FBeopERKx3oMIm8RTQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", + "@commitlint/types": "^20.4.4", "semver": "^7.6.0" }, "engines": { @@ -3963,33 +3963,33 @@ } }, "node_modules/@commitlint/lint": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-20.4.2.tgz", - "integrity": "sha512-buquzNRtFng6xjXvBU1abY/WPEEjCgUipNQrNmIWe8QuJ6LWLtei/LDBAzEe5ASm45+Q9L2Xi3/GVvlj50GAug==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-20.4.4.tgz", + "integrity": "sha512-svOEW+RptcNpXKE7UllcAsV0HDIdOck9reC2TP1QA6K5Fo0xxQV+QPjV8Zqx9g6X/hQBkF2S9ZQZ78Xrv1Eiog==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/is-ignored": "^20.4.1", - "@commitlint/parse": "^20.4.1", - "@commitlint/rules": "^20.4.2", - "@commitlint/types": "^20.4.0" + "@commitlint/is-ignored": "^20.4.4", + "@commitlint/parse": "^20.4.4", + "@commitlint/rules": "^20.4.4", + "@commitlint/types": "^20.4.4" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.4.0.tgz", - "integrity": "sha512-Dauup/GfjwffBXRJUdlX/YRKfSVXsXZLnINXKz0VZkXdKDcaEILAi9oflHGbfydonJnJAbXEbF3nXPm9rm3G6A==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.4.4.tgz", + "integrity": "sha512-kvFrzvoIACa/fMjXEP0LNEJB1joaH3q3oeMJsLajXE5IXjYrNGVcW1ZFojXUruVJ7odTZbC3LdE/6+ONW4f2Dg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^20.4.0", + "@commitlint/config-validator": "^20.4.4", "@commitlint/execute-rule": "^20.0.0", - "@commitlint/resolve-extends": "^20.4.0", - "@commitlint/types": "^20.4.0", - "cosmiconfig": "^9.0.0", + "@commitlint/resolve-extends": "^20.4.4", + "@commitlint/types": "^20.4.4", + "cosmiconfig": "^9.0.1", "cosmiconfig-typescript-loader": "^6.1.0", "is-plain-obj": "^4.1.0", "lodash.mergewith": "^4.6.2", @@ -4000,9 +4000,9 @@ } }, "node_modules/@commitlint/load/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4055,9 +4055,9 @@ } }, "node_modules/@commitlint/message": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-20.4.0.tgz", - "integrity": "sha512-B5lGtvHgiLAIsK5nLINzVW0bN5hXv+EW35sKhYHE8F7V9Uz1fR4tx3wt7mobA5UNhZKUNgB/+ldVMQE6IHZRyA==", + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-20.4.3.tgz", + "integrity": "sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ==", "dev": true, "license": "MIT", "engines": { @@ -4065,30 +4065,30 @@ } }, "node_modules/@commitlint/parse": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-20.4.1.tgz", - "integrity": "sha512-XNtZjeRcFuAfUnhYrCY02+mpxwY4OmnvD3ETbVPs25xJFFz1nRo/25nHj+5eM+zTeRFvWFwD4GXWU2JEtoK1/w==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-20.4.4.tgz", + "integrity": "sha512-AjfgOgrjEozeQNzhFu1KL5N0nDx4JZmswVJKNfOTLTUGp6xODhZHCHqb//QUHKOzx36If5DQ7tci2o7szYxu1A==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.4.0", - "conventional-changelog-angular": "^8.1.0", - "conventional-commits-parser": "^6.2.1" + "@commitlint/types": "^20.4.4", + "conventional-changelog-angular": "^8.2.0", + "conventional-commits-parser": "^6.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/read": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-20.4.0.tgz", - "integrity": "sha512-QfpFn6/I240ySEGv7YWqho4vxqtPpx40FS7kZZDjUJ+eHxu3azfhy7fFb5XzfTqVNp1hNoI3tEmiEPbDB44+cg==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-20.4.4.tgz", + "integrity": "sha512-jvgdAQDdEY6L8kCxOo21IWoiAyNFzvrZb121wU2eBxI1DzWAUZgAq+a8LlJRbT0Qsj9INhIPVWgdaBbEzlF0dQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/top-level": "^20.4.0", - "@commitlint/types": "^20.4.0", - "git-raw-commits": "^4.0.0", + "@commitlint/top-level": "^20.4.3", + "@commitlint/types": "^20.4.4", + "git-raw-commits": "^5.0.0", "minimist": "^1.2.8", "tinyexec": "^1.0.0" }, @@ -4097,14 +4097,14 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.4.0.tgz", - "integrity": "sha512-ay1KM8q0t+/OnlpqXJ+7gEFQNlUtSU5Gxr8GEwnVf2TPN3+ywc5DzL3JCxmpucqxfHBTFwfRMXxPRRnR5Ki20g==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.4.4.tgz", + "integrity": "sha512-pyOf+yX3c3m/IWAn2Jop+7s0YGKPQ8YvQaxt9IQxnLIM3yZAlBdkKiQCT14TnrmZTkVGTXiLtckcnFTXYwlY0A==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^20.4.0", - "@commitlint/types": "^20.4.0", + "@commitlint/config-validator": "^20.4.4", + "@commitlint/types": "^20.4.4", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", @@ -4125,16 +4125,16 @@ } }, "node_modules/@commitlint/rules": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-20.4.2.tgz", - "integrity": "sha512-oz83pnp5Yq6uwwTAabuVQPNlPfeD2Y5ZjMb7Wx8FSUlu4sLYJjbBWt8031Z0osCFPfHzAwSYrjnfDFKtuSMdKg==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-20.4.4.tgz", + "integrity": "sha512-PmUp8QPLICn9w05dAx5r1rdOYoTk7SkfusJJh5tP3TqHwo2mlQ9jsOm8F0HSXU9kuLfgTEGNrunAx/dlK/RyPQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/ensure": "^20.4.1", - "@commitlint/message": "^20.4.0", + "@commitlint/ensure": "^20.4.4", + "@commitlint/message": "^20.4.3", "@commitlint/to-lines": "^20.0.0", - "@commitlint/types": "^20.4.0" + "@commitlint/types": "^20.4.4" }, "engines": { "node": ">=v18" @@ -4151,9 +4151,9 @@ } }, "node_modules/@commitlint/top-level": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.0.tgz", - "integrity": "sha512-NDzq8Q6jmFaIIBC/GG6n1OQEaHdmaAAYdrZRlMgW6glYWGZ+IeuXmiymDvQNXPc82mVxq2KiE3RVpcs+1OeDeA==", + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.3.tgz", + "integrity": "sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4164,13 +4164,13 @@ } }, "node_modules/@commitlint/types": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-20.4.0.tgz", - "integrity": "sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==", + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-20.4.4.tgz", + "integrity": "sha512-dwTGzyAblFXHJNBOgrTuO5Ee48ioXpS5XPRLLatxhQu149DFAHUcB3f0Q5eea3RM4USSsP1+WVT2dBtLVod4fg==", "dev": true, "license": "MIT", "dependencies": { - "conventional-commits-parser": "^6.2.1", + "conventional-commits-parser": "^6.3.0", "picocolors": "^1.1.1" }, "engines": { @@ -4246,6 +4246,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@conventional-changelog/git-client": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-2.6.0.tgz", + "integrity": "sha512-T+uPDciKf0/ioNNDpMGc8FDsehJClZP0yR3Q5MN6wE/Y/1QZ7F+80OgznnTCOlMEG4AV0LvH2UJi3C/nBnaBUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/child-process-utils": "^1.0.0", + "@simple-libs/stream-utils": "^1.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.3.0" + }, + "peerDependenciesMeta": { + "conventional-commits-filter": { + "optional": true + }, + "conventional-commits-parser": { + "optional": true + } + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -16965,6 +16992,35 @@ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, + "node_modules/@simple-libs/child-process-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@simple-libs/child-process-utils/-/child-process-utils-1.0.2.tgz", + "integrity": "sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/stream-utils": "^1.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, + "node_modules/@simple-libs/stream-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@simple-libs/stream-utils/-/stream-utils-1.2.0.tgz", + "integrity": "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -24613,9 +24669,9 @@ } }, "node_modules/conventional-changelog-angular": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.1.0.tgz", - "integrity": "sha512-GGf2Nipn1RUCAktxuVauVr1e3r8QrLP/B0lEUsFktmGqc3ddbQkhoJZHJctVU829U1c6mTSWftrVOCHaL85Q3w==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.3.0.tgz", + "integrity": "sha512-DOuBwYSqWzfwuRByY9O4oOIvDlkUCTDzfbOgcSbkY+imXXj+4tmrEFao3K+FxemClYfYnZzsvudbwrhje9VHDA==", "dev": true, "license": "ISC", "dependencies": { @@ -24626,9 +24682,9 @@ } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.1.0.tgz", - "integrity": "sha512-MnbEysR8wWa8dAEvbj5xcBgJKQlX/m0lhS8DsyAAWDHdfs2faDJxTgzRYlRYpXSe7UiKrIIlB4TrBKU9q9DgkA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.3.0.tgz", + "integrity": "sha512-kYFx6gAyjSIMwNtASkI3ZE99U1fuVDJr0yTYgVy+I2QG46zNZfl2her+0+eoviG82c5WQvW1jMt1eOQTeJLodA==", "dev": true, "license": "ISC", "dependencies": { @@ -24639,12 +24695,13 @@ } }, "node_modules/conventional-commits-parser": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.2.1.tgz", - "integrity": "sha512-20pyHgnO40rvfI0NGF/xiEoFMkXDtkF8FwHvk5BokoFoCuTQRI8vrNCNFWUOfuolKJMm1tPCHc8GgYEtr1XRNA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.3.0.tgz", + "integrity": "sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg==", "dev": true, "license": "MIT", "dependencies": { + "@simple-libs/stream-utils": "^1.2.0", "meow": "^13.0.0" }, "bin": { @@ -25927,19 +25984,6 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "node_modules/dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -29616,21 +29660,33 @@ } }, "node_modules/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.1.tgz", + "integrity": "sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ==", "dev": true, "license": "MIT", "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" + "@conventional-changelog/git-client": "^2.6.0", + "meow": "^13.0.0" }, "bin": { - "git-raw-commits": "cli.mjs" + "git-raw-commits": "src/cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" + } + }, + "node_modules/git-raw-commits/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/github-slugger": { @@ -44792,16 +44848,6 @@ "wbuf": "^1.7.3" } }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, "node_modules/sponge-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", @@ -51599,8 +51645,7 @@ "license": "MIT", "dependencies": { "@o2s/framework": "*", - "@o2s/integrations.mocked": "*", - "@o2s/integrations.mocked-dxp": "*" + "@o2s/integrations.mocked": "*" }, "devDependencies": { "@o2s/eslint-config": "*", diff --git a/package.json b/package.json index 70945414f..8d83040f6 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "packages/modules/*" ], "devDependencies": { - "@commitlint/cli": "^20.4.2", - "@commitlint/config-conventional": "^20.4.2", + "@commitlint/cli": "^20.4.4", + "@commitlint/config-conventional": "^20.4.4", "@playwright/test": "^1.58.2", "@storybook/addon-a11y": "^10.2.13", "@storybook/addon-docs": "^10.2.13", From 537413b3bfb567fd89f4ca39319e6e80e0092f73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 14:57:03 +0100 Subject: [PATCH 05/35] chore(deps): update dependency npm-check-updates to ^19.6.3 (#782) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 73c4ae7af..70aa24e29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "fs-extra": "^11.3.3", "husky": "^9.1.7", "lint-staged": "^16.2.7", - "npm-check-updates": "^19.6.2", + "npm-check-updates": "^19.6.3", "playwright": "^1.58.2", "prettier": "^3.8.1", "rimraf": "^6.1.3", @@ -38647,9 +38647,9 @@ } }, "node_modules/npm-check-updates": { - "version": "19.6.2", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-19.6.2.tgz", - "integrity": "sha512-fxoQAhn90dx/pLOHY0w3U0IzW02DGDgkNwjTsPpHexo3niLxkL3xAggTQNjODMwTtWoRhP7rhnm7ji0hw/F1kA==", + "version": "19.6.3", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-19.6.3.tgz", + "integrity": "sha512-VAt9Bp26eLaymZ0nZyh5n/by+YZIuegXlvWR0yv1zBqd984f8VnEnBbn+1lS3nN5LyEjn62BJ+yYgzNSpb6Gzg==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 8d83040f6..be28042fe 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "fs-extra": "^11.3.3", "husky": "^9.1.7", "lint-staged": "^16.2.7", - "npm-check-updates": "^19.6.2", + "npm-check-updates": "^19.6.3", "playwright": "^1.58.2", "prettier": "^3.8.1", "rimraf": "^6.1.3", From a1659cf574cb5f182a7eb24b6ba380d2f09f0b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Nowak?= <49277278+michnowak@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:37:17 +0100 Subject: [PATCH 06/35] Fix/cli wizzard fixes (#774) * fix:cli-wizard-fixes * chore: add changeset for major update to 'create-o2s-app' with a fix for dxp starter and mocked data * fix: update CLI commands to remove version specifier for create-o2s-app * fix: update CLI commands in logger to reflect new watch commands for development * fix: clarify CLI commands in logger for starting development in separate terminals * feat: enhance project scaffolding by adding integration version management * chore: add changeset for minor update to 'create-o2s-app' * feat: update HomepageStartersSection with new CLI features and improved styling * chore: add changeset for minor update to '@o2s/docs' * fix: improve error handling for integration version retrieval in scaffolding --- .changeset/afraid-cooks-battle.md | 5 ++ .changeset/breezy-sites-wish.md | 5 ++ .changeset/heavy-ties-drop.md | 5 ++ .changeset/rich-friends-travel.md | 5 ++ apps/docs/blog/releases/dxp/1.0.0.md | 2 +- apps/docs/docs/app-starters/dxp/overview.md | 2 +- apps/docs/docs/app-starters/o2s/overview.md | 2 +- .../docs/docs/getting-started/installation.md | 8 +-- apps/docs/docs/integrations/mocked/mocked.md | 2 +- .../HomepageStartersSection/index.tsx | 8 +-- apps/docs/src/pages/product/starters.tsx | 4 +- packages/cli/create-o2s-app/README.md | 28 +++++----- .../cli/create-o2s-app/src/scaffold/index.ts | 46 +++++++++++++--- .../create-o2s-app/src/scaffold/install.ts | 52 ++++++++++++++++--- .../scaffold/transform-integration-configs.ts | 36 +++++++++---- .../cli/create-o2s-app/src/utils/logger.ts | 7 ++- 16 files changed, 165 insertions(+), 52 deletions(-) create mode 100644 .changeset/afraid-cooks-battle.md create mode 100644 .changeset/breezy-sites-wish.md create mode 100644 .changeset/heavy-ties-drop.md create mode 100644 .changeset/rich-friends-travel.md diff --git a/.changeset/afraid-cooks-battle.md b/.changeset/afraid-cooks-battle.md new file mode 100644 index 000000000..a25fdbd5a --- /dev/null +++ b/.changeset/afraid-cooks-battle.md @@ -0,0 +1,5 @@ +--- +'create-o2s-app': major +--- + +added fix related to dxp starter and mocked data diff --git a/.changeset/breezy-sites-wish.md b/.changeset/breezy-sites-wish.md new file mode 100644 index 000000000..fab786721 --- /dev/null +++ b/.changeset/breezy-sites-wish.md @@ -0,0 +1,5 @@ +--- +'@o2s/docs': minor +--- + +feat: update HomepageStartersSection with new CLI features and improved styling diff --git a/.changeset/heavy-ties-drop.md b/.changeset/heavy-ties-drop.md new file mode 100644 index 000000000..2a06a242b --- /dev/null +++ b/.changeset/heavy-ties-drop.md @@ -0,0 +1,5 @@ +--- +'create-o2s-app': minor +--- + +fix: update CLI commands in logger to reflect new watch commands for development diff --git a/.changeset/rich-friends-travel.md b/.changeset/rich-friends-travel.md new file mode 100644 index 000000000..e237a62db --- /dev/null +++ b/.changeset/rich-friends-travel.md @@ -0,0 +1,5 @@ +--- +'create-o2s-app': minor +--- + +fix: update CLI custom installation process diff --git a/apps/docs/blog/releases/dxp/1.0.0.md b/apps/docs/blog/releases/dxp/1.0.0.md index a476109b3..8a3d9ebb4 100644 --- a/apps/docs/blog/releases/dxp/1.0.0.md +++ b/apps/docs/blog/releases/dxp/1.0.0.md @@ -52,7 +52,7 @@ Take a look at our [**DXP Frontend Starter chapter**](../../../docs/app-starters To get started, you can use our NPM script to create a new project: ```shell -npx create-o2s-app@latest my-dxp-portal --template dxp +npx create-o2s-app my-dxp-portal --template dxp ``` which, just like in O2S, will create a pre-configured template with all the necessary components, integrations, and best practices to accelerate your development and is ready for your own customizations. diff --git a/apps/docs/docs/app-starters/dxp/overview.md b/apps/docs/docs/app-starters/dxp/overview.md index 928b5ae13..05dde4a63 100644 --- a/apps/docs/docs/app-starters/dxp/overview.md +++ b/apps/docs/docs/app-starters/dxp/overview.md @@ -13,7 +13,7 @@ Its features can be extended with Blocks or integrations O2S provides or your ow To create a new DXP application: ```shell -npx create-o2s-app@latest my-dxp-portal --template dxp +npx create-o2s-app my-dxp-portal --template dxp ``` This command automatically scaffolds the DXP starter with its default blocks and integrations — no interactive prompts needed. diff --git a/apps/docs/docs/app-starters/o2s/overview.md b/apps/docs/docs/app-starters/o2s/overview.md index 3cb6b8dfc..6f9f06794 100644 --- a/apps/docs/docs/app-starters/o2s/overview.md +++ b/apps/docs/docs/app-starters/o2s/overview.md @@ -11,7 +11,7 @@ The O2S Customer Portal starter is our default template for building customer se To create a new customer portal application: ```shell -npx create-o2s-app@latest my-customer-portal --template o2s +npx create-o2s-app my-customer-portal --template o2s ``` This command automatically scaffolds the O2S Customer Portal with its default blocks and integrations — no interactive prompts needed. diff --git a/apps/docs/docs/getting-started/installation.md b/apps/docs/docs/getting-started/installation.md index 5d52c5719..f19e56ba1 100644 --- a/apps/docs/docs/getting-started/installation.md +++ b/apps/docs/docs/getting-started/installation.md @@ -21,9 +21,9 @@ The CLI will prompt you to choose between `o2s`, `dxp` starters or a `fully cust You can also specify a template directly: ```shell -npx create-o2s-app@latest my-project --template o2s -npx create-o2s-app@latest my-project --template dxp -npx create-o2s-app@latest my-project --template custom +npx create-o2s-app my-project --template o2s +npx create-o2s-app my-project --template dxp +npx create-o2s-app my-project --template custom ``` The `custom` template launches an **interactive CLI wizard** that lets you pick blocks, integrations, and configure environment variables step by step. Use it when neither the `o2s` nor `dxp` preset fully matches your use case — for example, when you only need a subset of blocks, want to swap integrations, or are building something custom. You start from a blank slate and hand-pick exactly what goes into your project. @@ -40,7 +40,7 @@ The `custom` template launches an **interactive CLI wizard** that lets you pick **Non-interactive example:** ```shell -npx create-o2s-app@latest my-portal \ +npx create-o2s-app my-portal \ --template o2s \ --blocks ticket-list,invoice-list \ --integrations zendesk,strapi-cms \ diff --git a/apps/docs/docs/integrations/mocked/mocked.md b/apps/docs/docs/integrations/mocked/mocked.md index 0e1267212..0fe3ec475 100644 --- a/apps/docs/docs/integrations/mocked/mocked.md +++ b/apps/docs/docs/integrations/mocked/mocked.md @@ -8,7 +8,7 @@ In order to enable a very quick set-up of O2S, we have prepared an integration t ## Requirements -This integration is automatically installed when you bootstrap a new portal with `npx create-o2s-app@latest my-portal`. If you need to install it manually in an existing workspace (e.g. inside the API Harmonization server), run: +This integration is automatically installed when you bootstrap a new portal with `npx create-o2s-app my-portal`. If you need to install it manually in an existing workspace (e.g. inside the API Harmonization server), run: ```shell npm install @o2s/integrations.mocked --workspace=@o2s/api diff --git a/apps/docs/src/components/HomepageStartersSection/index.tsx b/apps/docs/src/components/HomepageStartersSection/index.tsx index ae6f665d5..f126d4595 100644 --- a/apps/docs/src/components/HomepageStartersSection/index.tsx +++ b/apps/docs/src/components/HomepageStartersSection/index.tsx @@ -35,9 +35,11 @@ const STARTERS: HoverCardProps[] = [ { title: 'Build your own', description: - "Soon, with our CLI you'll be able to scaffold fully tailored customer self-service frontends — composed of modular UI components, blocks and integrations.", - gradient: 'var(--color-violet)', - badge: 'Coming soon', + 'With our CLI you can scaffold fully tailored customer self-service frontends — composed of modular UI components, blocks and integrations.', + href: '/docs/getting-started/installation', + ctaLabel: 'Get Started', + gradient: + 'linear-gradient(90deg, rgba(0, 19, 96, 0.4) 0%, rgba(0, 19, 96, 0.4) 100%), linear-gradient(104.71deg, var(--color-violet) 31.575%, rgba(85, 34, 228, 1) 80.05%)', }, ]; diff --git a/apps/docs/src/pages/product/starters.tsx b/apps/docs/src/pages/product/starters.tsx index 921ae45bf..a6dc9320c 100644 --- a/apps/docs/src/pages/product/starters.tsx +++ b/apps/docs/src/pages/product/starters.tsx @@ -60,7 +60,7 @@ const digitalPortalStarter: StarterInfoSectionProps = { self-service-oriented. ), - cliCommand: 'npx create-o2s-app@latest my-dxp-app --template dxp', + cliCommand: 'npx create-o2s-app my-dxp-app --template dxp', accordionItems: [ { title: 'Feature list', @@ -185,7 +185,7 @@ const customerPortalStarter: StarterInfoSectionProps = { content, and billing. ), - cliCommand: 'npx create-o2s-app@latest my-portal --template o2s', + cliCommand: 'npx create-o2s-app my-portal --template o2s', accordionItems: [ { title: 'Feature list', diff --git a/packages/cli/create-o2s-app/README.md b/packages/cli/create-o2s-app/README.md index 9920b87bf..71291f67d 100644 --- a/packages/cli/create-o2s-app/README.md +++ b/packages/cli/create-o2s-app/README.md @@ -22,21 +22,21 @@ At the end, the wizard scaffolds your project and installs dependencies. ## Templates -| Template | Description | -|----------|-------------| -| `o2s` | Full O2S Customer Portal — ticket management, invoices, notifications, orders and more | -| `dxp` | DXP Frontend Starter — knowledge base, marketing portal, Digital Experience Platform | -| `custom` | Start from scratch — choose only the blocks and integrations you need | +| Template | Description | +| -------- | -------------------------------------------------------------------------------------- | +| `o2s` | Full O2S Customer Portal — ticket management, invoices, notifications, orders and more | +| `dxp` | DXP Frontend Starter — knowledge base, marketing portal, Digital Experience Platform | +| `custom` | Start from scratch — choose only the blocks and integrations you need | ## Options -| Option | Description | -|--------|-------------| -| `--template