Skip to content

Latest commit

 

History

History
2844 lines (1898 loc) · 156 KB

CHANGELOG.md

File metadata and controls

2844 lines (1898 loc) · 156 KB

15.5.0 (2019-12-09)

⛑ Type: Refactoring

  • application-components, application-shell, i18n, jest-stylelint-runner, mc-scripts, react-notifications

    Packages that previously required @commercetools-frontend/ui-kit as a peer dependency now require peer dependencies of specific uikit packages.

    If you keep using @commercetools-frontend/ui-kit you don't need to change anything. If you start using specific uikit packages though, you need to make sure you have the proper peer dependencies in place. To make it easier to install the required peer dependencies of a package, you can use the install-peerdeps.

    • application-components
      • @commercetools-uikit/design-system
      • @commercetools-uikit/constraints
      • @commercetools-uikit/primary-button
      • @commercetools-uikit/secondary-button
      • @commercetools-uikit/secondary-icon-button
      • @commercetools-uikit/spacings
      • @commercetools-uikit/text
    • application-shell
      • @commercetools-uikit/avatar
      • @commercetools-uikit/design-system
      • @commercetools-uikit/flat-button
      • @commercetools-uikit/icons
      • @commercetools-uikit/loading-spinner
      • @commercetools-uikit/select-input
      • @commercetools-uikit/spacings
      • @commercetools-uikit/text
    • i18n
      • @commercetools-uikit/i18n
    • react-notifications
      • @commercetools-uikit/icon-button
      • @commercetools-uikit/icons
      • @commercetools-uikit/spacings

🖥 Type: Website

  • Other
  • application-components

🤖 Type: Dependencies

  • mc-html-template
    • #1194 fix(deps): update dependency serialize-javascript to v2.1.1 security
  • Other
  • application-components, application-shell, babel-preset-mc-app, i18n, mc-scripts, react-notifications
  • mc-scripts

15.4.2 (2019-11-27)

This release publishes all packages due to an issue with npm during the prior 15.4.1 release.

15.4.1 (2019-11-27)

We recommend using the 15.4.2 release as not all packages within this release managed to be published.

🐛 Type: Bug

  • application-shell
    • #1183 fix(app-shell): portal container height to fix tabbing in modals (@jonnybel)

🖥 Type: Website

  • #1181 chore(website): update docs theme to canary.42 (@emmenko)

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, i18n, jest-preset-mc-app, jest-stylelint-runner, l10n, mc-scripts, notifications, permissions, react-notifications, sentry, url-utils
  • application-shell
  • Other

15.4.0 (2019-11-22)

🚀 Type: New Feature

  • application-components, application-shell, i18n, l10n, mc-scripts, react-notifications

15.3.9 (2019-11-20)

💅 Type: Enhancement

  • permissions
    • #1173 refactor: only some subset of demanded DF values should belong to actual DF values (@amine-benselim)

15.3.8 (2019-11-15)

🐛 Type: Bug

  • application-shell
    • #1165 fix: cannot use rerender with app-kit custom render functions (@ahmehri)

🖥 Type: Website

  • #1169 refactor(website): upgrade to theme 1.0.0-canary.28 (@emmenko)

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, i18n, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, permissions, react-notifications, sdk, sentry
  • Other

15.3.7 (2019-11-15)

🐛 Type: Bug

🖥 Type: Website

🌏 Type: Translations

15.3.6 (2019-11-13)

🖥 Type: Website

  • application-components

🐛 Type: Bug

  • application-shell
    • #1161 fix(app-shell): passing of flag config ([@tdeekens]

15.3.5 (2019-11-11)

🐛 Type: Bug

  • application-shell
    • #1159 fix(app-shell): return object with default values ([@tdeekens]

15.3.4 (2019-11-11)

🐛 Type: Bug

  • application-shell

🔮 Type: Chore

  • jest-preset-mc-app
    • #1149 test(setup-tests): ignore CellMeasurerCach warning (@ahmehri)
  • Other

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, constants, i18n, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, notifications, permissions, react-notifications, sdk, sentry, url-utils
  • l10n

15.3.3 (2019-11-05)

🐛 Type: Bug

  • application-shell
    • #1147 fix(app-shell): to merge internal feature flags with provided ones (@emmenko)

🤖 Type: Dependencies

  • application-components, application-shell, mc-scripts
  • application-components, application-shell-connectors, application-shell, i18n, jest-preset-mc-app, mc-http-server, mc-scripts, react-notifications

15.3.2 (2019-11-01)

🔮 Type: Chore

  • application-shell

🤖 Type: Dependencies

  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, jest-preset-mc-app, mc-http-server, mc-scripts, react-notifications

15.3.1 (2019-10-30)

🐛 Type: Bug

  • application-shell

15.3.0 (2019-10-30)

🐛 Type: Bug

💅 Type: Enhancement

  • i18n
    • #1124 PCM-1473: add revert message to Form Modal button messages (@vidurar)

⛑ Type: Refactoring

  • application-components, i18n
    • #1130 refactor(components): use common messages from i18n package (@emmenko)

🤖 Type: Dependencies

  • application-shell, eslint-config-mc-app, sentry
  • application-components, application-shell, babel-preset-mc-app, i18n, jest-preset-mc-app, jest-stylelint-runner, l10n, mc-scripts, react-notifications, sentry

15.2.3 (2019-10-28)

🔮 Type: Chore

  • mc-http-server
    • #1119 chore(mc-http-server): remove duplicate prom metric (@tdeekens)

15.2.2 (2019-10-24)

🔮 Type: Chore

  • mc-http-server

⛑ Type: Refactoring

  • mc-http-server

15.2.1 (2019-10-23)

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, i18n, l10n, mc-http-server, mc-scripts, permissions, react-notifications, sdk, sentry
  • application-shell

15.2.0 (2019-10-22)

🚀 Type: New Feature

  • application-shell-connectors
    • #1108 feat(app-connectors): expose mock functions for image-regex settings as test-utils (@emmenko)

In case your are testing a part of the UI that utilises the project-extension-image-regex connector, you might need to mock the GraphQL request with Apollo. To facilitate this, we expose some test-utils from the @commercetools-frontend/application-shell-connectors package.

Below is an example of how to use them:

import { GRAPHQL_TARGETS } from '@commercetools-frontend/constants';
import {
  createFetchProjectExtensionImageRegexMock,
  createGraphqlResponseForProjectExtensionImageRegexQuery,
} from '@commercetools-frontend/application-shell-connectors/test-utils';
import { renderApp } from '@commercetools-frontend/application-shell/test-utils';

describe('rendering', () => {
  it('should render view with images', async () => {
    const rendered = renderApp(<App />, {
      mocks: [
        createFetchProjectExtensionImageRegexMock(),
        // ...other mocks
      ],
    });
    await waitForElement(() => rendered.getByText('...'));
    // ...
  });
  it('should render view without images', async () => {
    const rendered = renderApp(<App />, {
      mocks: [
        createFetchProjectExtensionImageRegexMock({
          result: {
            data: createGraphqlResponseForProjectExtensionImageRegexQuery({
              projectExtension: {
                __typename: 'ProjectExtension',
                id: 'project-extension-id',
                imageRegex: undefined,
              },
            }),
          },
        }),
        // ...other mocks
      ],
    });
    await waitForElement(() => rendered.getByText('...'));
    // ...
  });
});

15.1.8 (2019-10-22)

🐛 Type: Bug

  • permissions
    • #1109 fix(permissions/has-permissions): use hasExactPermission in hasAppliedDataFences (@adnasa)

🔮 Type: Chore

🚀 Type: New Feature

  • permissions
    • #1102 feat(permissions): allow appliedPermission with Manage to bypass dataFence (@adnasa)
  • i18n

⛑ Type: Refactoring

  • application-shell-connectors
    • #1084 refactor(app-context): restructure tests to RTL (@emmenko)
  • application-shell

🤖 Type: Dependencies

  • application-shell, jest-preset-mc-app, l10n
  • Other
  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, i18n, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, react-notifications, sdk, sentry
  • application-shell
    • #1107 chore(app-shell): update flopflip to allow passing featureFlags (@tdeekens)
  • application-components, react-notifications, sdk
  • eslint-plugin-testing-library-react
  • application-components, application-shell, babel-preset-mc-app, i18n, mc-scripts, react-notifications, sdk

15.1.7 (2019-10-11)

🐛 Type: Bug

  • application-shell
  • application-components

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, create-mc-app, eslint-plugin-testing-library-react, i18n, jest-preset-mc-app, l10n, mc-html-template, mc-scripts, notifications, permissions, react-notifications, sentry, url-utils
  • Other
  • application-shell, eslint-plugin-testing-library-react, sentry
  • actions-global, application-components, application-shell-connectors, application-shell, i18n, jest-preset-mc-app, l10n, mc-scripts, permissions, react-notifications, sdk, sentry

15.1.6 (2019-09-24)

🐛 Type: Bug

  • mc-scripts
  • application-shell
    • #1063 fix(app-shell): apollo header link to omit empty headers (@tdeekens)

🔮 Type: Chore

  • application-shell-connectors, application-shell

⛑ Type: Refactoring

  • application-shell-connectors, application-shell, permissions
    • #1064 refactor(app-context): to derive provider types from generated query types (@emmenko)

🖥 Type: Website

🤖 Type: Dependencies

  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, eslint-plugin-testing-library-react, i18n, jest-preset-mc-app, l10n, mc-scripts, notifications, permissions, react-notifications, sentry, url-utils

15.1.5 (2019-09-17)

🐛 Type: Bug

  • application-shell
    • #1057 fix(app-shell): sanitize correlation id parts (@pa3)

🤖 Type: Dependencies

  • application-components, application-shell-connectors, application-shell, browser-history, i18n, jest-preset-mc-app, mc-scripts, react-notifications, sdk
  • Other

15.1.4 (2019-09-11)

🐛 Type: Bug

  • application-shell-connectors, permissions
    • #1049 fix: to avoid using Mapped Types as babel plugin does not properly generate prop-types (@emmenko)
  • mc-html-template
    • #1045 fix(csp): to whitelist sentry.io in connect-src (@emmenko)

🔮 Type: Chore

  • i18n, permissions

💅 Type: Enhancement

  • application-shell-connectors, application-shell
    • #1048 feat: validate graphql files using eslint and schema introspection (@emmenko)

⛑ Type: Refactoring

  • application-shell
    • #1038 refactor(app-shell): do not fetch unused fields for project query (@emmenko)

🤖 Type: Dependencies

  • eslint-config-mc-app, jest-preset-mc-app, mc-html-template, mc-scripts, sentry
  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, eslint-plugin-testing-library-react, i18n, jest-preset-mc-app, jest-stylelint-runner, l10n, mc-html-template, mc-scripts, notifications, permissions, react-notifications, sentry, url-utils
  • application-components, application-shell, i18n, jest-preset-mc-app, mc-scripts, permissions, react-notifications

15.1.3 (2019-09-05)

🐛 Type: Bug

🖥 Type: Website

15.1.2 (2019-09-03)

🐛 Type: Bug

  • application-shell
    • #1031 fix(app-shell): use default cache-first fetch policy for user account menu (@emmenko)

15.1.1 (2019-09-03)

🐛 Type: Bug

  • mc-html-template
    • #1029 fix(mc-html-template): to load headers not from csp (@tdeekens)

15.1.0 (2019-09-02)

🐛 Type: Bug

  • application-shell
    • #1028 fix(app-shell): null check for dataFences in navbar component (@emmenko)

🚀 Type: New Feature

  • mc-html-template, mc-http-server, mc-scripts

15.0.0 (2019-09-02)

This release introduces some breaking changes related to minimal dependency versions.

In v14.0.0 we introduced full support for React Hooks, as well as other improvements. In this release we iterate on that and mostly update some of the React dependencies that ship with their Hooks support.

React v16.9, together with @testing-library v9, fixes act() by supporting async act() for testing, among other things. This means that React won't throw any more warnings about updating state asynchronously inside Hooks 🎉

NOTE: if you're getting some errors about possible multiple copies of React installed, you can add a resolutions field in your package.json (only supported by yarn) that resolves the following dependencies:

{
  "resolutions": {
    "react": "16.9.0",
    "**/react": "16.9.0",
    "react-test-renderer": "16.9.0",
    "**/react-test-renderer": "16.9.0"
  }
}

Another important change is the support for react-apollo v3, which ships with React Hooks support. This means that you can now start using React Hooks to write queries and mutations.

For example, the FetchUser query can be rewritten as following:

const FetchUser = () => (
  <Query
    query={LoggedInUserQuery}
    variables={{ target: GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND }}
    onError={reportErrorToSentry}
  >
    {({ data, loading, error }) =>
      this.props.children({
        isLoading: loading,
        user: data && data.user,
        error,
      })
    }
  </Query>
);

const FetchUser = props => {
  const { loading, data, error } = useQuery(LoggedInUserQuery, {
    onError: reportErrorToSentry,
    variables: { target: GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND },
  });
  return (
    <>
      {props.children({ isLoading: loading, user: data && data.user, error })}
    </>
  );
};

🚀 Type: New Feature

  • application-components, application-shell, eslint-plugin-testing-library-react
    • #1014 feat: add eslint plugin for react testing library 🔥 (@emmenko)

⛑ Type: Refactoring

🤖 Type: Dependencies

🚨 Type: Security

  • mc-html-template, mc-http-server

14.6.1 (2019-08-29)

🐛 Type: Bug

  • application-shell, permissions

14.6.0 (2019-08-27)

🐛 Type: Bug

  • application-components
  • actions-global, application-shell-connectors, constants, i18n, permissions, sdk, sentry
    • #992 fix: tsconfig to correctly include custom type definitions and check test files (@emmenko)

💅 Type: Enhancement

🚀 Type: New Feature

  • application-shell
    • #991 feat(application-shell/navbar): add demandedDataFences and return dataFenceValues given to the user (@adnasa)

🤖 Type: Dependencies

  • actions-global, application-components, application-shell, babel-preset-mc-app, jest-preset-mc-app, l10n, mc-html-template, mc-http-server, mc-scripts, react-notifications, sdk, sentry

14.5.0 (2019-08-20)

🚀 Type: New Feature

  • application-shell, constants, sdk
    • #986 feat(sdk): allow to pass a mcApiProxyTarget, to the SDK action (@emmenko)

⛑ Type: Refactoring

  • permissions
    • #990 refactor(permissions/has-permissions): pass actualDataFenceValues into selectDataFenceData (@adnasa)
  • application-shell, constants, sdk

🤖 Type: Dependencies

  • application-components, application-shell, l10n, react-notifications

14.4.1 (2019-08-14)

🐛 Type: Bug

  • actions-global
    • #976 fix(actions-global): distinguish unknown/api errors based on presence of body field (@pa3)

⛑ Type: Refactoring

  • application-shell, permissions, react-notifications

14.4.0 (2019-08-14)

🚀 Type: New Feature

  • application-shell, permissions
    • #894 feat(app-shell): add support for dataFences (@adnasa)

🐛 Type: Bug

  • application-shell-connectors, application-shell, permissions
    • #973 fix: prop-types for dataFences optional field (@emmenko)

🔮 Type: Chore

  • application-shell
    • #972 feat(app-shell): load actionRights from gql for menu (@tdeekens)

⛑ Type: Refactoring

  • constants

🖥 Type: Website

14.3.5 (2019-08-12)

🤖 Type: Dependencies

  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, jest-preset-mc-app, mc-scripts, react-notifications, sentry
  • Other

14.3.4 (2019-08-09)

🐛 Type: Bug

  • application-components
    • #953 fix(application-components): prop is optional (@emmenko)

14.3.3 (2019-08-08)

🐛 Type: Bug

  • react-notifications
    • #951 fix(react-notifications): onCloseClick is optional (@emmenko)

14.3.2 (2019-08-08)

🐛 Type: Bug

  • jest-preset-mc-app

🔮 Type: Chore

  • application-components, application-shell, i18n, react-notifications

⛑ Type: Refactoring

  • application-components
    • #949 fix(application-components): rewrite conditional props logic, to account prop-types transformer (@emmenko)

🖥 Type: Website

  • application-components
    • #946 fix(website): syntax highlighting and font-family for UI components (@emmenko)

14.3.1 (2019-08-08)

🐛 Type: Bug

  • application-shell, permissions
    • #945 fix(test-utils): to set default required dataFences option (@emmenko)

🖥 Type: Website

  • #944 refactor(website): use only one font, several other improvements (@emmenko)

14.3.0 (2019-08-08)

🚀 Type: New Feature

  • application-shell
    • #942 feat(app-shell/navbar): add ability to hide menu by action rights (@tdeekens)
  • application-shell-connectors, application-shell
    • #918 feat(application-shell/project-query): add allAppliedDataFences (@adnasa)
  • jest-preset-mc-app, react-notifications
    • #924 chore(types/ui-kit): add more type declarations (@emmenko)

🐛 Type: Bug

  • application-components

⛑ Type: Refactoring

  • application-components, assets
    • #921 refactor(application-components): to convert to TS (@emmenko)
  • application-shell, react-notifications
  • permissions, react-notifications
  • actions-global, application-shell-connectors, browser-history, constants, i18n, jest-preset-mc-app, l10n, notifications, permissions, react-notifications, sentry, url-utils
    • #896 refactor(react-notifications): to convert to TS (@emmenko)

🔮 Type: Chore

  • mc-http-server

🤖 Type: Dependencies

  • application-components, application-shell, mc-scripts, react-notifications
  • application-components, application-shell, react-notifications

🖥 Type: Website

  • #940 fix(website): use default font-family of ui-kit for playground container (@emmenko)
  • #934 feat(circleci): snapshot testing for documentation website (@emmenko)
  • #933 chore(website): update to gatsby-plugin-mdx, workaround for remark images bug (@emmenko)

14.2.0 (2019-07-29)

🚀 Type: New Feature

  • application-shell, i18n
    • #894 feat(app-shell): add api clients to quick access (@tdeekens)

🐛 Type: Bug

  • mc-scripts
    • #905 fix(mc-scripts): to use paths to package directory instead of entry points (@emmenko)

⛑ Type: Refactoring

  • jest-preset-mc-app
    • #902 refactor(jest-preset): to split typescript config from default preset (@emmenko)

🔮 Type: Chore

  • storage
    • #904 chore: remove (deprecated) storage package (@emmenko)
  • Other
    • #903 chore: use recent version 5.4.3 of intl-messageformat (@tdeekens)
  • mc-scripts

🤖 Type: Dependencies

  • application-components, application-shell, react-notifications
  • application-components, application-shell, i18n, jest-preset-mc-app, mc-scripts, react-notifications
  • application-components, application-shell, jest-preset-mc-app, mc-http-server, react-notifications
  • actions-global, application-components, application-shell-connectors, application-shell, babel-preset-mc-app, browser-history, create-mc-app, i18n, jest-preset-mc-app, jest-stylelint-runner, l10n, mc-http-server, mc-scripts, notifications, permissions, react-notifications, sdk, sentry, url-utils

14.1.1 (2019-07-25)

🐛 Type: Bug

⛑ Type: Refactoring

  • actions-global, constants, notifications, react-notifications, sentry
    • #888 refactor(actions-global): to convert to TS (@emmenko)

14.1.0 (2019-07-24)

🚀 Type: New Feature

  • application-shell-connectors, application-shell, permissions
    • #883 feat: add support for action rights through allAppliedActionRights query (@tdeekens)

⛑ Type: Refactoring

  • notifications
  • browser-history
    • #885 refactor(browser-history): to convert to TS (@emmenko)

14.0.0 (2019-07-18)

This release introduces several breaking changes, as documented below, mostly around React Hooks and our own permission functionality.

You can read the v14 announcement and release tracker here: commercetools#748

Full support for React Hooks

In order to support Hooks the following peer dependencies have to be updated:

  • react >=16.8
  • react-dom >=16.8
  • react-intl >=3 (currently still in beta)
  • react-redux >=7

If you need more information about React Hooks, we recommend to have a look at the following resources. Hooks are another way to write components as they come with many benefits:

TL;DR; with Hooks code can become more readable, easier to test while often improving performance and reducing bundlesize.

Some of the AppKit packages now export different Hooks (more might come in the future). Here is a quick overview of existing and new Hooks:

  • actions-global: provides Hooks to dispatch notifications. Previously we had to bind the action creators using connect from react-redux. Now the binding is done within the Hooks.
    • useShowNotification
    • useShowApiErrorNotification
    • useShowUnexpectedErrorNotification
const showSuccessNotification = useShowNotification({
  kind: 'success',
  domain: DOMAINS.SIDE,
});
showSuccessNotification({ text: 'All good!' });

const showApiErrorNotification = useShowApiErrorNotification();
showApiErrorNotification({ errors });

const showUnexpectedErrorNotification = useShowUnexpectedErrorNotification();
showUnexpectedErrorNotification({ error });
  • application-shell-connectors: provides Hooks to connect to the application context.
    • useApplicationContext
const projectName = useApplicationContext(context => context.project.name);
const projectDataLocale = useApplicationContext(context => context.dataLocale);
const user = useApplicationContext(context => context.user);
// ...
  • l10n: provides Hooks to get l10n data.
    • useCountries
    • useCurrencies
    • useLanguages
    • useTimeZones
import {
  useCountries,
  useCurrencies,
  useLanguages,
  useTimeZones,
} from '@commercetools-frontend/l10n';

const countriesData = useCountries('en');
const currenciesData = useCurrencies('en');
const languagesData = useLanguages('en');
const timeZonesData = useTimeZones('en');

// each `xxxData` value has the following shape:
// {
//   isLoading: bool,
//   data: Object,
//   error: Error
// }
  • permissions: provides a Hook to check if the user is authorized to access the given project permissions.
    • useIsAuthorized
const canViewProducts = useIsAuthorized({
  demandedPermissions: ['ViewProducts'],
});

Other than that, we also recommend to use Hooks from other libraries:

Permissions

On July 18, 2019 we migrated the commercetools organizations to our new permissions system (read the announcement). From a technical perspective the following things changed:

  • ManageProject permission does not exist anymore. If your code relies on this, you need to change it to one or more of the available resource permissions:
ManageProducts
ViewProducts
ManageCategories
ViewCategories
ManageCustomers
ViewCustomers
ManageCustomerGroups
ViewCustomerGroups
ManageOrders
ViewOrders
ManageProductDiscounts
ViewProductDiscounts
ManageCartDiscounts
ViewCartDiscounts
ManageDiscountCodes
ViewDiscountCodes
ManageProjectSettings
ViewProjectSettings
ManageProductTypes
ViewProductTypes
ManageDeveloperSettings
ViewDeveloperSettings

This change also implies a change in the @commercetools-frontend/application-shell/test-utils as the permissions property is now empty. This means that you need to explicitly pass the expected permissions that your application deals with, otherwise tests will fail.

import { renderApp } from '@commercetools-frontend/application-shell/test-utils';

// Before
// Here we don't specify any permission, which will probably cause the test to throw errors
it('should render the app', async () => {
  const rendered = renderApp(<MyApplication />);
});

// After
// Here we explicitly specify the permission of the application
it('should render the app', async () => {
  const rendered = renderApp(<MyApplication />, {
    permissions: {
      canManageProducts: true,
      canViewProducts: true,
      // ...
    },
  });
});
  • the @commercetools-frontend/permissions package does not expose the constants permissions anymore, as we don't want to keep things coupled between the package and the API. Instead, we recommend to simply list the permissions that your application uses in a constants.js file:
// constants.js
export const PERMISSIONS = {
  ViewProducts: 'ViewProducts',
  ManageProducts: 'ManageProducts',
  ViewOrders: 'ViewOrders',
  ManageProductTypes: 'ManageProductTypes',
  ViewProductTypes: 'ViewProductTypes',
  // ...
};
  • the @commercetools-frontend/permissions package does not expose the hasPermission function anymore. Instead we recommend to use hasSomePermissions or hasEveryPermissions, which accept a list of permissions (you probably weren't using this function anyway).

Other than that, things should work as before.

UIKit migration to v10

This release also bumps the peer dependency of @commercetools-frontend/ui-kit >=10. We recommend to follow the release notes in the UIKit repository.

Other dependencies upgrades

Apart from the bumped dependency versions documented above, we also bumped other dependencies:

  • @testing-library/react: previously this was named react-testing-library. We removed the react-testing-library peer dependency and defined @testing-library/react >=8 instead.

    NOTE that upgrading to the latest RTL library might cause some tests to break, depending on how you were querying elements. More info here.

  • @commercetools/enzyme-extensions: if you write enzyme tests, and use the renderProp method (available when using our @commercetools-frontend/jest-preset-mc-app setup), the signature of the API changed now.

// before
wrapper.renderProp('children', { loading: true, data: undefined });

// after
wrapper.renderProp('children')({ loading: true, data: undefined });

Things renamed

We took the chance to also rename different things:

  • assets: we renamed the SVG files to have more generic names that reflect the actual image content. #834
Before After
@commercetools-frontend/assets/images/failed-authentication.svg @commercetools-frontend/assets/images/locked-diamond.svg
@commercetools-frontend/assets/images/failed-authorization.svg @commercetools-frontend/assets/images/folder-full-locked.svg
@commercetools-frontend/assets/images/image__broken.svg @commercetools-frontend/assets/images/camera-crossed.svg
@commercetools-frontend/assets/images/image__missing_image.svg @commercetools-frontend/assets/images/diagonal-line.svg
@commercetools-frontend/assets/images/image__no_image.svg @commercetools-frontend/assets/images/camera.svg
@commercetools-frontend/assets/images/link-external__broken.svg @commercetools-frontend/assets/images/camera-chain-broken.svg
@commercetools-frontend/assets/images/link-external__working.svg @commercetools-frontend/assets/images/camera-chain.svg
@commercetools-frontend/assets/images/page-not-found.svg @commercetools-frontend/assets/images/desert-fox.svg
@commercetools-frontend/assets/images/project-expired.svg @commercetools-frontend/assets/images/hourglass.svg
@commercetools-frontend/assets/images/project-not-initialized.svg @commercetools-frontend/assets/images/hourglass.svg
@commercetools-frontend/assets/images/project-suspended.svg @commercetools-frontend/assets/images/doors-closed.svg
@commercetools-frontend/assets/images/unexpected-error.svg @commercetools-frontend/assets/images/icecream.svg

Things removed

We removed some exports that are not necessary anymore:

  • application-components:
    • ServicePageResponseLayout (was deprecated)
  • permissions:
    • hasPermission
    • permissions
  • react-notifications:
    • GetCustomNotificationComponent

Dropped support for IE 11

We decided to drop support for IE 11 as we want to reduce the maintenance costs due to transpilation and polyfills. As a result, we dropped those things from our tooling.

Deprecated packages

The @commercetools-frontend/storage package has been deprecated and won't be maintained anymore. We recommend to use window.localStorage directly. For tests, we use the package jest-localstorage-mock, which provides mocks for the localStorage API. It's included in the @commercetools-frontend/jest-preset-mc-app.

beforeEach(() => {
  window.localStorage.setItem.mockClear();
  window.localStorage.getItem.mockClear();
  window.localStorage.removeItem.mockClear();

  window.localStorage.getItem.mockReturnValue('foo');
});

expect(window.localStorage.setItem).toHaveBeenCalledWith('bar');

13.13.3 (2019-07-15)

⛑ Type: Refactoring

  • application-shell
    • #842 refactor(app-shell/quick-acess): to use new permissions (@tdeekens)

🤖 Type: Dependencies

  • Other
  • actions-global, application-shell-connectors, application-shell, permissions, react-notifications

13.13.2 (2019-07-11)

⛑ Type: Refactoring

  • permissions
    • #838 refactor(permissions): to use sentry for error reporting (@tdeekens)

13.13.1 (2019-07-11)

🐛 Type: Bug

  • mc-html-template, mc-scripts
    • #832 fix(html-template/compile-html): to use correct option for useLocalAssets (@emmenko)

🔮 Type: Chore

  • jest-preset-mc-app
    • #818 fix(jest/setup): to show actual error logs on CI when something is logged to console (@emmenko)

13.13.0 (2019-07-04)

🚀 Type: New Feature

  • application-shell
    • #814 feat(app-shell): allow to disable menu items per env (@tdeekens)

⛑ Type: Refactoring

  • application-shell

13.12.3 (2019-07-01)

🖥 Type: Website

  • #810 refactor(website): to use syntax highlighting plugin for vscode themes (@emmenko)

🤖 Type: Dependencies

  • jest-stylelint-runner, mc-scripts
  • application-components, create-mc-app, mc-http-server, mc-scripts

13.12.2 (2019-06-28)

This release does not contain any changes compared to v13.12.1. However, the v13.12.0 release contained a babel plugin that broke the builds and therefore we had to bundle and bump the version of all packages again to fix it.

13.12.1 (2019-06-27)

🐛 Type: Bug

  • babel-preset-mc-app
    • #797 fix(babel-preset): to remove plugin-transform-react-constant-elements (@tdeekens)

13.12.0 (2019-06-27)

💅 Type: Enhancement

  • application-components

    • #766 feat(modal-pages): add delay before calling onClose to let animations finish (@jonnybel)
  • jest-stylelint-runner Readme

🐛 Type: Bug

  • application-components, application-shell, constants

🔮 Type: Chore

  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app
  • application-shell
    • #792 fix(app-shell): to support admin service target (@tdeekens)
    • #775 chore: move with-mouse-over-state internal (@montezume)
    • #776 chore(application-shell): remove usage of deprecated custom property (@montezume)
  • babel-preset-mc-app
  • Other
    • #786 refactor(circleci): to try improving CI workflow run time, additionally clean things up (@emmenko)

⛑ Type: Refactoring

  • actions-global, application-components, application-shell-connectors, application-shell, browser-history, constants, i18n, l10n, permissions, sentry

🖥 Type: Website

  • #777 fix(website): to use better font sizes scale, fix menu grid row for small screen (@emmenko)
  • #768 refactor(website): restructure pages and navigation (@emmenko)

13.11.0 (2019-06-18)

💅 Type: Enhancement

  • application-shell, constants
    • #764 feat(app-shell): add user deleted logout reason (@tdeekens)
  • i18n
  • application-shell, permissions, storage, url-utils

🐛 Type: Bug

  • i18n
    • #762 fix(i18n): fix naming bug for french and chinese translations (@montezume)

🔮 Type: Chore

  • application-shell
  • application-components
  • actions-global, application-components, application-shell-connectors, browser-history, constants, permissions
    • #746 chore: keep rollup command simple and consistent (@emmenko)

13.10.0 (2019-06-14)

In this new release, we have a few highlights:

  • we started migrating some of the packages to TypeScript, so future releases will include type declarations
  • we have new Modal Pages components in the @commercetools-frontend/application-components package
  • we have a new command mc-scripts compile-html ... to help deploying Merchant Center applications as static apps (check out the playground app to see how we can use it to deploy the app to Zeit Now, more in-depth documentation will follow soon)

🐛 Type: Bug

  • application-components

🔮 Type: Chore

  • application-components
    • #731 revert(storybook): contexts addon, since it's missing the core-js dependency (@emmenko)
    • #741 chore: unrevert contexts for app-components storybook. (@montezume)
    • #744 feat(website): add intl controller for playground mode (@emmenko)
  • application-components, application-shell-connectors, application-shell, create-mc-app, jest-preset-mc-app, l10n, mc-scripts, permissions, react-notifications, sdk

✍️ Type: Documentation

💅 Type: Enhancement

🚀 Type: New Feature

  • application-components
  • mc-html-template, mc-http-server, mc-scripts
    • #670 feat(mc-scripts): add static command to compile final index.html file (and security headers) (@emmenko)

⛑ Type: Refactoring

  • application-shell-connectors, application-shell, constants, jest-preset-mc-app, l10n, permissions, react-notifications, sentry
    • #737 refactor: migrate application-shell-connectors to TypeScript (@emmenko)
    • #740 fix(app-shell-connectors): to cast context type to not be empty, use function overloading for useApplicationContext (@emmenko)
  • mc-scripts
    • #736 fix(build): use overrideBrowsersList to comply with new autoprefixer API (@adnasa)
  • l10n, sentry
  • url-utils
  • sentry, storage

13.9.1 (2019-06-07)

🐛 Type: Bug

  • application-shell
    • #710 fix(app-shell): do not re-export the version field from flopflip (@emmenko)

13.9.0 (2019-06-07)

With this release, each package (besides the tooling related packages) exports a version field, which can be used to see and track the version of the package being used. We also introduced a new field applicationName for the env.json config file. This field is used to track the version used of e.g. application-shell package, which will help us to monitor and mitigate how we introduce future breaking changes.

In the next major version of app-kit, we will make the field applicationName required.

Additionally, we decided to introduce TypeScript to our repository. We will start migrating the packages to use TypeScript and expose type declarations. The sentry package has already been migrated as a starting point.

🔮 Type: Chore

  • application-components, application-shell, babel-preset-mc-app, create-mc-app, jest-preset-mc-app, mc-http-server, mc-scripts, react-notifications, sdk, sentry
  • application-shell, sdk
  • application-shell-connectors, application-shell, jest-preset-mc-app, mc-html-template, permissions, sdk
    • #694 refactor: for the http clients to send a x-user-agent with the package versions (@emmenko)

💅 Type: Enhancement

  • application-shell

13.8.1 (2019-06-04)

🐛 Type: Bug

  • mc-scripts
    • #686 fix(mc-scripts): do not assume that the application entry point is at src/index.js (@emmenko)

13.8.0 (2019-06-04)

🔮 Type: Chore

  • Other
  • mc-scripts
    • #669 chore(mc-scripts): update with upstream react-scripts for (relevant) latest changes (@emmenko)
  • jest-preset-mc-app, mc-http-server, mc-scripts

✍️ Type: Documentation

  • #681 docs(website): fix issuer and audience example (@emmenko)

🚀 Type: New Feature

  • application-components, assets

⛑ Type: Refactoring

  • mc-http-server
    • #682 refactor(http-server): to unset cookie only for local development (@emmenko)

13.7.1 (2019-05-24)

🐛 Type: Bug

  • application-shell
    • #656 fix(app-shell): quick access env not always set (@tdeekens)

13.7.0 (2019-05-23)

🐛 Type: Bug

  • application-shell
    • #652 fix(app-shell): Switcher counter not properly centered (@jonnybel)

🔮 Type: Chore

  • application-shell-connectors, application-shell, babel-preset-mc-app, create-mc-app, jest-preset-mc-app, mc-scripts, sdk, sentry
  • application-components, application-shell, babel-preset-mc-app, jest-preset-mc-app, l10n, mc-scripts, permissions
  • application-shell

💅 Type: Enhancement

  • application-shell, i18n

13.6.0 (2019-05-17)

🔮 Type: Chore

  • application-components, application-shell, i18n, l10n, mc-http-server, mc-scripts, react-notifications, sentry

🚀 Type: New Feature

  • application-shell
    • #637 feat(app-shell): add menuVisibility to menu query (@tdeekens)
  • application-components

13.5.1 (2019-05-13)

🔮 Type: Chore

  • application-components, application-shell, jest-preset-mc-app, mc-scripts, sentry
  • application-shell
    • #627 fix(app-shell): to default to menu if no submenus are defined (@tdeekens)

13.5.0 (2019-05-09)

🐛 Type: Bug

  • application-shell, react-notifications
    • #625 fix(application-shell, react-notifications): fix invalid shadow (@montezume)
  • application-components

🚀 Type: New Feature

  • application-shell-connectors, permissions

⛑ Type: Refactoring

  • application-shell

13.4.2 (2019-05-09)

Now application-components is relying on version 9.2.0 or newer of @commeretools-frontend/ui-kit. If you are using an older version, please update that as well.

Also, now that application-shell no longer uses react-select version 1, you can remove the CSS import in your app entry point. If your application doesn't explicity use react-select version 1, you should remove this import.

// remove this next line
import 'react-select/dist/react-select.css';
import React from 'react';
// etc

🔮 Type: Chore

  • application-shell
  • application-shell, react-notifications

⛑ Type: Refactoring

  • application-shell
    • #617 refactor(application-shell): use ui kit select input for locale switcher (@montezume)
    • #618 refactor(project-switcher): refactor to use ui kit select input (@montezume)
  • application-components

13.4.1 (2019-05-03)

🐛 Type: Chore

  • application-shell

13.4.0 (2019-05-03)

🔮 Type: Chore

  • i18n
  • application-components, application-shell, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, sdk, sentry

💅 Type: Enhancement

  • application-shell, i18n
    • #599 feat(app-shell): add "Manage Projects" to Quick Access (@tdeekens)

13.3.9 (2019-05-02)

🐛 Type: Bug

  • application-shell
    • #590 fix(app-shell): back to project peforming full page reload (@tdeekens)

13.3.8 (2019-04-30)

🐛 Type: Bug

  • application-shell
    • #590 refactor(app-shell): to have redirect-to-project-create component (@tdeekens)

🔮 Type: Chore

  • application-shell
    • #592 chore(app-shell): to not fetch project without key (@tdeekens)

13.3.7 (2019-04-29)

🐛 Type: Bug

  • application-shell

13.3.6 (2019-04-29)

🐛 Type: Bug

  • application-shell
    • #582 fix(app-shell): routing to project without key (@tdeekens)

🔮 Type: Chore

  • application-components, babel-preset-mc-app
    • #574 refactor(components): to use emotion styles (@emmenko)
  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, permissions, react-notifications, sdk, sentry

⛑ Type: Refactoring

  • application-components, babel-preset-mc-app
    • #574 refactor(components): to use emotion styles (@emmenko)

13.3.5 (2019-04-26)

🐛 Type: Bug

  • mc-scripts
    • #571 fix(mc-scripts): do not use ip address as socket host. Closes #569 (@emmenko)

13.3.4 (2019-04-23)

🐛 Type: Bug

  • application-shell

13.3.3 (2019-04-23)

🔮 Type: Chore

  • application-components, application-shell, l10n, react-notifications, sentry

⛑ Type: Refactoring

  • sentry
    • #563 refactor(sentry): to also pass location to sentry environment, enable sentry based on tracking value (@emmenko)

13.3.2 (2019-04-18)

⛑ Type: Refactoring

  • application-shell
    • #555 fix(app-shell): add env variable for enabling sign up (@tdeekens)

13.3.1 (2019-04-17)

🔮 Type: Chore

  • application-shell
    • #550 refactor: to pass intl message to Text components (@emmenko)
  • application-components, application-shell, mc-html-template, mc-http-server, mc-scripts, react-notifications, sdk, sentry

13.3.0 (2019-04-17)

🚀 Type: New Feature

  • application-components, application-shell, i18n, react-notifications
    • #519 refactor(i18n): to load the i18n messages async (@emmenko)
  • application-shell, assets, i18n

🐛 Type: Bug

  • application-components
  • jest-preset-mc-app
    • #535 fix: replace deprecated and broken package jest-plugin-filename with jest-watch-typeahead (@M1r1k)

🔮 Type: Chore

  • i18n
  • application-shell, i18n, l10n
  • application-components, application-shell, react-notifications

13.2.0 (2019-04-09)

💅 Type: Enhancement

  • application-shell
    • #531 feat(configure-apollo): add special mapping for Store entity (@qmateub)

13.1.0 (2019-04-08)

🚀 Type: New Feature

  • application-shell
    • #528 feat(app-shell): add allowing to pass ldTrackingTenant alone (@tdeekens)

⛑ Type: Refactoring

  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, create-mc-app, i18n, jest-preset-mc-app, l10n, mc-scripts, permissions, react-notifications, sdk, sentry

13.0.2 (2019-04-05)

🐛 Type: Bug

  • application-shell
    • #517 fix(app-shell): redirect to logout when catching unauthorized error (@tdeekens)

13.0.1 (2019-04-04)

🐛 Type: Bug

  • application-shell
    • #515 fix(app-shell): to unset previously set cached value (@tdeekens)

13.0.0 (2019-04-04)

This release introduces a breaking change which however will not entail any migration steps as it only affects internal packages. However, we want to follow strict semver and therefore we should mark it as a major version bump.

In short:

  1. A new package called mc-dev-authentication now contains routes and views for login and logout shared by both the webpack-dev-server and mc-http-server
  2. All routes and components around login and logout have been removed from the @commercetools-frontend/application-shell and have been migrated into an internal Merchant Center application
  3. Redirects upon creating an account are not pointing to the account application, where the user can create the first organization + project

For commercetools developers there is more in-depth documentation in our internal repositories. Do not hestitate to reach out for further questions.

💥 Type: Breaking Change

  • application-shell-connectors, application-shell, constants, i18n, mc-dev-authentication, mc-http-server, mc-scripts
    • #444 Remove login/logout components and redirect to urls (@tdeekens)

🚀 Type: New Feature

  • application-components, application-shell, i18n, l10n, mc-scripts
    • #511 feat(i18n): support new locales fr-FR and zh-CN (@emmenko)

12.2.2 (2019-04-03)

🐛 Type: Bug

  • application-shell
    • #509 fix(app-shell): prevent main content to be scrollable when modals are open (@emmenko)
    • #506 fix(app-shell): css height for app container (@emmenko)
  • Other

🔮 Type: Chore

  • application-components, application-shell, jest-preset-mc-app, l10n, permissions, react-notifications, sentry

12.2.1 (2019-04-01)

🐛 Type: Bug

  • assets
    • #503 fix(assets): publish all files and folders (@emmenko)

12.2.0 (2019-04-01)

💅 Type: Refactoring

12.1.0 (2019-03-29)

💅 Type: Enhancement

  • application-shell
    • #487 feat(app-shell): Add prop do defer adapter config on flop flip provider setup (@jonnybel)

⛑ Type: Refactoring

🔮 Type: Chore

  • application-shell
    • #493 chore: update launchdarkly-adapter and flopflip (@tdeekens)

12.0.0 (2019-03-26)

This release introduces a breaking change on the test-utils which requires some migration steps. We'll go through them now:

💥 Type: Breaking Change

  • application-shell
    • #482 refactor(test-utils): to avoid conflicting named exports with rtl render function (@emmenko)

The @commercetools-frontend/application-shell/test-utils render functions have been renamed to avoid naming conflicts with the re-exported properties of react-testing-library (e.g. render).

Before After
render renderApp
renderWithRedux renderAppWithRedux
experimentalRender experimentalRenderAppWithRedux

🐛 Type: Bug

  • application-shell

11.4.0 (2019-03-26)

🔮 Type: Chore

  • mc-html-template
  • application-shell, babel-preset-mc-app, i18n, jest-preset-mc-app, mc-scripts

⛑ Type: Refactoring

  • application-shell, sentry
    • #476 refactor(sentry): to use newest sdk over deprecated raven client (@emmenko)
  • application-components

11.3.0 (2019-03-21)

💅 Type: Enhancement

  • application-shell
    • #462 feat(app-shell): quick-access to have noresults message (@tdeekens)
  • application-shell
    • #463 feat(app-shell): quick access to have loading indicator (@tdeekens)

⛑ Type: Refactoring

  • application-shell, react-notifications

11.2.0 (2019-03-18)

🔮 Type: Chore

  • mc-scripts
  • application-shell, browser-history, react-notifications

💅 Type: Enhancement

  • application-shell
    • #457 feat(app-shell): add re-export of gtm logout and flopflip (@tdeekens)

11.1.0 (2019-03-14)

🚀 Type: New Feature

11.0.2 (2019-03-11)

🔮 Type: Chore

  • application-shell

11.0.1 (2019-03-06)

🐛 Type: Bug

  • application-shell
    • #426 fix(apps-menu): to trigger remote query based on servedByProxy value (@emmenko)
  • application-shell, react-notifications

11.0.0 (2019-02-28)

NOTE: the breaking change only affects our internal discount application. However, we want to follow strict semver and therefore we should mark it as a major version bump.

🐛 Type: Bug

  • application-components
    • #408 fix(components/dialog): to pass title for modal aria-label (@emmenko)
  • application-shell, browser-history
    • #413 fix(test-utils): create default memory history with the enhanced location (@emmenko)

💥 Type: Breaking Change

  • jest-preset-mc-app, mc-scripts

🔮 Type: Chore

  • application-shell-connectors, application-shell
  • application-shell, react-notifications
    • #415 chore: upgrade to react-router v4.4.0-beta.7 (@emmenko)
  • permissions
  • application-components
  • i18n
    • #405 chore: pull translations skip ci

✍️ Type: Documentation

  • actions-global, application-components, application-shell-connectors, application-shell, assets, babel-preset-mc-app, browser-history, constants, create-mc-app, eslint-config-mc-app, i18n, jest-preset-mc-app, l10n, mc-html-template, mc-http-server, mc-scripts, notifications, permissions, react-notifications, sdk, sentry, storage, url-utils
    • #416 docs(readme): update badges skip ci

💅 Type: Enhancement

  • application-components

⛑ Type: Refactoring

  • application-components
    • #411 fix(components/dialog): to have bottom padding for content container (@emmenko)

10.0.0 (2019-02-26)

This release introduces a breaking change which may entail some migration steps. We'll go through them now:

💥 Type: Breaking Change

  • mc-scripts
    • #397 Update uglify plugin / stop shipping es6 code to ie (@montezume)

Previously building an application in production mode would succeeds, even if you imported vendors that shipped untranspiled code. However, now they will fail, as our uglify plugin does not support es6 code. If you get an error building your production build, you should pass a list of vendor packages that need to be transpiled to the create-webpack-config-for-production like below:

const path = require('path');
const createWebpackConfigForProduction = require('@commercetools-frontend/mc-scripts/config/create-webpack-config-for-production');

const distPath = path.resolve(__dirname, 'dist');
const entryPoint = path.resolve(__dirname, 'src/index.js');
// For example, `omit-empty` should be transpiled
const vendorsToTranspile = [/node_modules\/omit-empty/];

const sourceFolders = [path.resolve(__dirname, 'src')];

module.exports = createWebpackConfigForProduction({
  distPath,
  entryPoint,
  sourceFolders,
  vendorsToTranspile,
});

🚀 Type: New Feature

  • application-components

🔮 Type: Chore

9.0.1 (2019-02-22)

🐛 Type: Bug

  • application-shell

9.0.0 (2019-02-22)

BREAKING CHANGES 💣

The ui-kit peer dependency has been bumped to v9.x.

🐛 Type: Bug

  • application-shell
    • #381 fix(app-shell): quick-access to support full reloads (@tdeekens)

🚀 Type: New Feature

  • application-shell, i18n
    • #385 chore(app-shell): expose ApplicationShellProvider (@emmenko)
  • application-components
  • application-components, application-shell

8.0.0 (2019-02-18)

BREAKING CHANGES 💣

This release introduces a breaking change which may entail some migration steps. We'll go through them now:

💥 Type: Breaking Change

  • application-shell
    • #354 fix(application-shell): redirect to welcome by default (@tdeekens)

Previously the <ApplicationShell> had an internal redirect from /:projectKey to /:projectKey/dashboard. This redirect is now removed and it's done by our internal proxy router as we are rolling out a new landing page called Welcome screen (/:projectKey/welcome). However, for development, you need to adjust the redirect as illustrated below:

If you for instance had a:

<Switch>
  {process.env.NODE_ENV === 'production' ? null : (
    <Redirect from="/:projectKey/dashboard" to="/:projectKey/welcome" />
  )}
</Switch>

or any other redirect assuming the dashboard route could have been rendered inadvertently, please change it to:

<Switch>
  {process.env.NODE_ENV === 'production' ? null : (
    <Redirect exact={true} from="/:projectKey" to="/:projectKey/welcome" />
  )}
</Switch>

In short a diff of the change required to the <Redirect /> would be:

<Redirect
+  exact={true}
-  from="/:projectKey/dashboard"
+  from="/:projectKey"
  to="/:projectKey/xxx"
/>

Given during development you intended to not end up on /<projectKey> by default.

🔮 Type: Chore

  • application-components, application-shell, mc-scripts
    • #366 Add Storybook for developing application components (@emmenko)
  • application-components, application-shell-connectors, application-shell, babel-preset-mc-app, i18n, jest-preset-mc-app, l10n, mc-scripts, permissions, react-notifications, sdk, sentry

⛑ Type: Refactoring

  • application-components, application-shell, mc-scripts
    • #366 Add Storybook for developing application components (@emmenko)

7.3.4 (2019-02-08)

🐛 Type: Bug

  • browser-history
    • #355 fix(browser-history): to omit the question mark (@tdeekens)

7.3.3 (2019-02-07)

🐛 Type: Bug

  • application-shell
    • #352 Fix fetching custom application menu only when feature is enabled (@tdeekens)

⛑ Type: Refactoring

  • application-shell, browser-history, sdk

7.3.2 (2019-02-06)

🔮 Type: Chore

  • notifications
    • #345 chore: drop unnecessary deep-freeze dependency (@emmenko)

⛑ Type: Refactoring

  • application-shell, babel-preset-mc-app, jest-preset-mc-app, mc-scripts
    • #346 refactor: to not setupTestFramework for jest (so we can update) (@tdeekens)

7.3.1 (2019-02-04)

🐛 Type: Bug

  • application-shell
    • #341 fix(apollo-cache): to use __typename + key for whitelisted types only if the id is not present (@emmenko)

🚀 Type: New Feature

  • application-shell, i18n

7.3.0 (2019-02-01)

🔮 Type: Chore

  • jest-preset-mc-app

💅 Type: Enhancement

  • mc-http-server
    • #332 Add graceful shutdown and isolated Prometheus metrics server to mc-http-server (@tdeekens)

7.2.1 (2019-01-31)

🐛 Type: Bug

  • application-components
    • #329 fix(application-components): media-queries.css publish file path (@emmenko)

7.2.0 (2019-01-29)

🔮 Type: Chore

  • application-components, application-shell, mc-scripts, react-notifications
  • application-shell-connectors, application-shell

7.1.3 (2019-01-25)

🐛 Type: Bug

  • #313 fix(template/starter): add missing react-select css import skip ci

⛑ Type: Refactoring

  • application-shell
    • #314 Refactor to not ReconfigureFlopflip but pass projectKey from url (@tdeekens)

7.1.2 (2019-01-24)

🐛 Type: Bug

  • application-shell
    • #310 fix(app-shell): to be specific about cache key generation (@tdeekens)

7.1.1 (2019-01-23)

🐛 Type: Bug

  • application-shell
    • #308 fix(app-shell): to pick menu label based on user locale language tag only (@emmenko)

7.1.0 (2019-01-22)

🔮 Type: Chore

  • application-shell, react-notifications

The ui-kit peer dependency now requires to use version 7.x.

7.0.0 (2019-01-18)

BREAKING CHANGES (local development only) 💣

This release contains mostly internal changes that do not affect production environments.

Starting from version 7.0.0, applications will load the navigation menu items on runtime (the links in the left side navigation in the Merchant Center). This change has the benefit of keeping the navigation items consistent and up-to-date for all running applications, as it's not hardcoded anymore in the ApplicationShell package.

**We recommend to upgrade your applications to this version as soon as possible".

Custom applications will still configure their navigation menu items within the Merchant Center.

Development setup

When developing locally, you usually work on one application which has its own navigation menu items. It does not make sense to show all other possible navigation links because they don't work. Therefore, in NODE_ENV=development mode the navigation menu items are not being fetched (including the custom applications menu items). Instead, you should specify a menu.json file that will be loaded by the <ApplicationShell> instead of making the network request.

<ApplicationShell
  // ...
  DEV_ONLY__loadNavbarMenuConfig={() =>
    import('../../../menu.json').then(data => data.default || data)
  }
  render={() => {}}
/>

This function is only executed in NODE_ENV=development. We recommend to use import so that bundlers can create a split point and the menu.json won't end up in the main bundle in production.

The menu.json has the following structure:

{
  "key": "state-machines",
  "uriPath": "state-machines",
  "icon": "RocketIcon",
  "permissions": ["ViewStates", "ManageStates"],
  "featureToggle": null,
  "labelAllLocales": [
    {
      "locale": "en",
      "value": "State Machines"
    },
    {
      "locale": "de",
      "value": "Zustandsmaschinen"
    },
    {
      "locale": "es",
      "value": "Máquinas de estado"
    }
  ],
  "submenu": [
    {
      "key": "state-machines-new",
      "uriPath": "state-machines/new",
      "permissions": ["ManageStates"],
      "featureToggle": null,
      "labelAllLocales": [
        {
          "locale": "en",
          "value": "Add State Machine"
        },
        {
          "locale": "de",
          "value": "Zustandsmaschine hinzufügen"
        },
        {
          "locale": "es",
          "value": "Agregar máquina de estado"
        }
      ]
    }
  ]
}

This is the GraphQL representation of the JSON shape:

type NavbarMenu {
  shouldRenderDivider: Boolean!
  key: String!
  uriPath: String!
  icon: String!
  labelAllLocales: [LocalizedField!]!
  featureToggle: String
  permissions: [String!]!
  submenu: [BaseMenu!]!
}

type BaseMenu {
  key: String!
  uriPath: String!
  labelAllLocales: [LocalizedField!]!
  featureToggle: String
  permissions: [String!]!
}

type LocalizedField {
  locale: String!
  value: String!
}

🐛 Type: Bug

  • l10n

✍️ Type: Documentation

  • #294 docs(readme): update getting started and local development sections (@emmenko)

💅 Type: Enhancement

  • application-shell, i18n, mc-scripts
  • application-shell, babel-preset-mc-app, mc-scripts, sdk
    • #286 refactor: disable loggers based on runtime configuration (@emmenko)

🚀 Type: New Feature

  • application-shell
    • #297 feat(test-utils): allow to pass a mapNotificationToComponent function (@emmenko)

6.0.1 (2019-01-14)

💅 Type: Enhancement

  • application-shell, babel-preset-mc-app, mc-scripts, sdk
    • #286 refactor: disable loggers based on runtime configuration (@emmenko)

⛑ Type: Refactoring

  • application-shell, babel-preset-mc-app, mc-scripts, sdk
    • #286 refactor: disable loggers based on runtime configuration (@emmenko)

🐛 Type: Bug

6.0.0 (2019-01-13)

BREAKING CHANGES 💣

ESLint is now a peer dependency in #277. Please make sure that ESLint and all required plugins are installed in your project. You can always check for the required list of plugins in the package.json of eslint-config-mc-app. In order to install all peer dependencies with a single command run:

$ npx install-peerdeps --dev @commercetools-frontend/eslint-config-mc-app

💥 Type: Breaking Change

  • application-shell-connectors, application-shell, eslint-config-mc-app, i18n, jest-preset-mc-app, permissions, react-notifications, sdk, sentry
    • #277 chore(eslint-config-mc-app): use only peer deps (@emmenko)

⛑ Type: Refactoring

  • application-shell, jest-preset-mc-app, mc-scripts, sdk

5.1.1 (2019-01-12)

🐛 Type: Bug

  • mc-scripts
    • #275 fix(mc-scripts): add dynamic import plugin to fix vendor optimizations (@tdeekens)

5.1.0 (2019-01-10)

🐛 Type: Bug

  • application-shell, react-notifications
    • #271 chore: update ui-kit and make login submit on enter (@montezume)

🔮 Type: Chore

  • application-shell

    • #274 chore(app-shell): remove unused components 🚮 (@emmenko)
  • application-shell, react-notifications

  • application-shell, babel-preset-mc-app, create-mc-app, eslint-config-mc-app, jest-preset-mc-app, l10n, mc-html-template, mc-scripts, sdk

  • mc-scripts

    • #255 fix(deps): update dependency webpack-dev-server to v3.1.14

🚀 Type: New Feature

  • babel-preset-mc-app, mc-scripts
    • #272 feat: allow to enable vendor optimizations in production webpack config (@tdeekens)
  • application-shell-connectors, application-shell
    • #251 Add menuVisibilities and allAppliedMenuVisibilities (@tdeekens)

⛑ Type: Refactoring

  • create-mc-app
    • #265 refactor(create-mc-app): to download template from github repository (@emmenko)

5.0.3 (2019-01-04)

🐛 Type: Bug

  • application-shell
    • #252 fix(app-shell): do not render GtmContext.Provider, so default value is used (@emmenko)

5.0.2 (2019-01-04)

🐛 Type: Bug

  • #247 fix(rollup): rename lodash import to lodash-es only for es bundle (@emmenko)

5.0.1 (2019-01-03)

🐛 Type: Bug

  • create-mc-app
    • #244 chore: include create-mc-app templates in yarn workspaces, to define correct versions of dependencies (@emmenko)

⛑ Type: Refactoring

  • application-shell
    • #245 refactor(application-shell): permission prop-type form navbar (@tdeekens)

5.0.0 (2019-01-03)

BREAKING CHANGES 💣

We dropped some legacy stuff related to Redux. Please refer to the PR #197 to get more detailed info and to follow the upgrade migration guide.

Furthermore, we dropped support to the following deprecated things:

  • format of permissions as objects ([{ mode: 'manage', resource: 'products' }]) from the @commercetools-frontend/permissions package
  • components to access user and project data <FetchUser> and <FetchProject> from the @commercetools-frontend/application-shell package

🐛 Type: Bug

  • application-shell
  • application-shell
    • #211 fix(login): reset password dialog redirect, refactor to use formik (@emmenko)

💥 Type: Breaking Change

  • application-shell, permissions, sdk
  • actions-global, application-shell-connectors, application-shell, create-mc-app, notifications, permissions, react-notifications, sdk
    • #197 Upgrade to react-redux v6, drop legacy plugin stuff 🔥 (@emmenko)

🔮 Type: Chore

  • actions-global, application-shell-connectors, application-shell, permissions, react-notifications
    • #197 Use lodash-es for ESM builds for better tree-shaking support (@emmenko)

🚀 Type: New Feature

  • create-mc-app
    • #226 feat(create-mc-app): add new package create-mc-app to bootstrap applications (@emmenko)

You can now install a starter template with one command:

$ npm install --global @commercetools-frontend/create-mc-app
$ create-mc-app my-new-custom-application-project --template starter

# or

$ npx @commercetools-frontend/create-mc-app my-new-custom-application-project --template starter

⛑ Type: Refactoring

  • application-shell, i18n
    • #211 Migrate login pages to formik and ui-kit form components (@emmenko)
  • application-shell, sdk
  • application-shell-connectors, application-shell
    • #213 Add allAppliedPermissions and remove permissions (@tdeekens)
  • application-shell, permissions
    • #217 Refactor Authorized in permissions pkg to not rely on constants (@tdeekens)

When using the @commercetools-frontend/permissions package, you need to pass a list of permissions as String (e.g. ['ViewProducts']) to the demandedPermissions prop instead of using the constants (e.g. [permissions.ViewProducts]). With that, we can keep the list more flexible and we can avoid doing a release each time we add/remove permissions.

4.4.0 (2018-12-17)

💅 Type: Enhancement

  • actions-global
    • #198 Add array wrapping to showApiErrorNotification (through .isArray) (@tdeekens)

🔮 Type: Chore

  • application-shell-connectors, application-shell, babel-preset-mc-app, eslint-config-mc-app, i18n, jest-preset-mc-app, l10n, mc-scripts, react-notifications, sdk

4.3.0 (2018-12-12)

🔮 Type: Chore

  • application-shell, babel-preset-mc-app, eslint-config-mc-app, i18n, jest-preset-mc-app, mc-scripts

💅 Type: Enhancement

  • constants
    • #195 Add administration GraphQL target to constants (@tdeekens)

4.2.0 (2018-12-04)

🐛 Type: Bug

  • application-shell

💅 Type: Enhancement

  • application-shell, i18n
    • #183 MCD-1523 : Refactor CT logo to be 🏠button (@qmateub)
  • application-shell
    • #175 fix(test-utils): improve test setup (@emmenko)
    • #181 refactor(login): validate same origin for redirect target url after login (@emmenko)

⛑ Type: Refactoring

  • application-shell, i18n
    • #182 MCD-1509(user-settings-menu): address UX review (@qmateub)

4.1.0 (2018-12-04)

🔮 Type: Chore

  • playground
  • application-shell-connectors, application-shell, jest-preset-mc-app, sdk

⛑ Type: Refactoring

  • application-shell
    • #151 [MCD-1509] Refactor dropdown user settings menu (@qmateub)

4.0.1 (2018-12-01)

🐛 Type: Bug

  • i18n, l10n
    • #166 fix(l10n): prefer loading default, fall back to normal import (esm vs cjs) (@emmenko)
  • application-shell
    • #165 fix(navbar): keep WorldIcon for backwards compatibility (@emmenko)

4.0.0 (2018-11-30)

💥 Type: Breaking Change

  • application-shell

🐛 Type: Bug

🔮 Type: Chore

  • mc-html-template, mc-http-server
    • #159 chore(http-server): update favicon images for different resolutions (@emmenko)

💅 Type: Enhancement

  • application-shell
    • #155 feat(test-utils): wrap rendered component with React.Suspense, include modals container, document renderWithRedux (@emmenko)
    • #158 Add new permissions to project query of app-shell (@tdeekens)

3.1.0 (2018-11-28)

🐛 Type: Bug

  • mc-scripts
    • #150 fix(mc-scripts/extract-intl): do not overwrite existing core messages by default (@emmenko)

💅 Type: Enhancement

  • mc-scripts
    • #150 fix(mc-scripts/extract-intl): do not overwrite existing core messages by default (@emmenko)
  • application-shell
    • #143 feat(test-utils): run tests agains actual ApolloProvider (@pa3)
    • #144 Fix double dependency bundling (@tdeekens)

⛑ Type: Refactoring

  • application-shell
    • #149 refactor(navbar): use IconSwitcher to statically render icons based on icon names (@emmenko)

3.0.1 (2018-11-27)

🐛 Type: Bug

  • mc-scripts
    • #141 fix(mc-scripts): re-arrange postcss plugins to fix color mode with css custom properties (@montezume)

3.0.0 (2018-11-27)

BREAKING CHANGES 💣

This release updates UI-Kit to version 4, which includes several breaking changes which require some migration steps. This PR can be treated as a migration guide. As well as the migration steps are listed in the Ui-Kit release section.

🔮 Type: Chore

  • application-shell, react-notifications, mc-scripts, playground

2.4.0 (2018-11-26)

🔮 Type: Chore

  • Other
    • #137 chore: publish to next dist-tag by default, add command to move to latest (@emmenko)
  • application-shell, jest-preset-mc-app
  • i18n
    • #124 chore: sync en.json -> core.json after pulling messages from tx (@emmenko)
    • #125 chore(i18n): pull translations from transifex (@adnasa)

✍️ Type: Documentation

  • actions-global, application-shell-connectors, application-shell, assets, babel-preset-mc-app, browser-history, constants, eslint-config-mc-app, i18n, jest-preset-mc-app, l10n, mc-html-template, mc-http-server, mc-scripts, notifications, permissions, react-notifications, sdk, sentry, storage, url-utils
  • Other
    • #123 docs(playground): update and improve README about developing custom applications (@emmenko)

⛑ Type: Refactoring

  • application-shell, react-notifications
    • #89 refactor: use React.lazy and React.Suspense within the AppShell (@emmenko)

2.3.2 (2018-11-22)

🐛 Type: Bug

  • application-shell, permissions
    • #121 fix: app crashing when project is not found (@emmenko)

🔮 Type: Chore

  • application-shell

2.3.1 (2018-11-22)

🐛 Type: Bug

  • i18n
    • #117 feat(i18n): fix code splitting for mc-app-kit messages (@montezume)
  • application-shell
    • #118 fix(app-shell): add back-to-project data test target (@tdeekens)

⛑ Type: Refactoring

  • application-shell

2.3.0 (2018-11-21)

🚀 Type: New Feature

  • application-shell, i18n

2.2.0 (2018-11-21)

🚀 Type: New Feature

  • application-shell, i18n
    • #115 Replace ProjectSwitcher with a "Back to project" link in AppBar (@tdeekens)

2.1.2 (2018-11-21)

🔮 Type: Chore

  • application-shell
    • #114 chore: update @flopflip version (@pa3)

⛑ Type: Refactoring

  • application-shell, permissions
    • #102 refactor(quick-access): correctly apply permissions to all commands and queries (@emmenko)

2.1.1 (2018-11-18)

🔮 Type: Chore

  • application-shell-connectors, application-shell, babel-preset-mc-app, eslint-config-mc-app, jest-preset-mc-app, l10n, mc-http-server, mc-scripts, permissions, react-notifications, sdk, sentry
    • #109 Update dependencies (incl. and importantly flopflip) (@tdeekens)

2.1.0 (2018-11-17)

💅 Type: Enhancement

  • application-shell-connectors, application-shell
    • #107 feat(application-shell-connectors): expose ownerId (@montezume)

The project object in the <ApplicationContext> now contains the ownerId, which is the id of the organization where the project belongs to.

⛑ Type: Refactoring

  • application-shell
    • #104 refactor(login-sso): use new /tokens/sso endpoint (@emmenko)

This is just an internal refactoring of the login pages, which are part of the <ApplicationShell>.

2.0.7 (2018-11-16)

🐛 Type: Bug

Committers: 1

2.0.6 (2018-11-15)

🐛 Type: Bug

  • i18n
    • #103 fix(i18n): exports to not include default key (@emmenko)

2.0.5 (2018-11-14)

🐛 Type: Bug

  • application-shell
    • #101 fix(login-sso): objects saved in storage need to be serialized/deserialized (@emmenko)

2.0.4 (2018-11-14)

⛑ Type: Refactoring

  • application-shell
    • #98 refactor(login-sso): avoid query params in authorize url, use session storage and state nonce (@emmenko)

2.0.3 (2018-11-13)

🐛 Type: Bug

  • application-shell

    • #96 fix(application-shell): expose test-utils as cjs instead of es (@montezume)
  • mc-scripts

    • #95 fix(mc-scripts): downgrade uglifyjs-webpack-plugin for pegjs fix (@montezume)

2.0.2 (2018-11-13)

🐛 Type: Bug

  • application-shell

2.0.1 (2018-11-13)

🐛 Type: Bug

  • application-shell

    • #90 fix: deprecatedWithProject is now passed the correct parameters (@montezume)
  • jest-preset-mc-app

    • #88 fix(jest-preset-mc-app): to look up root dir (@tdeekens)

2.0.0 (2018-11-09)

BREAKING CHANGES 💣

This release introduces several breaking changes which require some migration steps. We'll go through the list of those now:

Replaced connectors with ApplicationContext

The package @commercetools-frontend/application-shell-connectors used to contain connectors that have now been removed:

  • configuration: injectConfiguration and <ConfigurationConsumer>
  • project-data-locale: withProjectDataLocale and <GetProjectDataLocale>
  • user-permissions: withUserPermissions and <GetUserPermissions>
  • user-time-zone: withUserTimeZone and <GetUserTimeZone>

As a replacement, we now have a single component, <ApplicationContext>, and a matching higher order component, withApplicationContext, that provides all the necessary "global" information about the user, project, permissions, environment, etc.

For the bravers, we also expose a Hook useApplicationContext.

You can find out more on how to access this information in the ApplicationContext documentation.

Usage of <ApplicationContext>

<ApplicationContext
  render={applicationContext => (
    <div>
      <h2>{`Hello ${applicationContext.user.firstName}`}</h2>
      <p>{`You are currently in project "${applicationContext.project.key}"`}</p>
    </div>
  )}
/>

You can also use the HOC withApplicationContext that will inject a applicationContext prop.

withApplicationContext()(MyComponent);

...or pass a mapping function as the first argument to return custom shape of the injected props

withApplicationContext(applicationContext => ({
  projectKey: applicationContext.project && applicationContext.project.key,
  userEmail: applicationContext.user && applicationContext.user.email,
}))(MyComponent);
applicationContext.user
  • id
  • email
  • firstName
  • lastName
  • locale
  • timeZone
applicationContext.project
  • key
  • version
  • name
  • countries
  • currencies
  • languages
applicationContext.permissions

An object containing boolean flags about the permissions of the logged in user for the selected project (e.g. { canViewProducts: true, canManageOrders: false, ... })

applicationContext.dataLocale

The selected project locale (from the locale switcher in the AppBar) used to render a localized field of the project data. The available values are based on the project.languages

applicationContext.environment

This object contains application specific environment information defined in the env.json. The object will then be available on runtime from window.app. However, to avoid accessing those values globally, we inject this object into the application context.

The following are common fields defined in env.json. However, each application can provide more specific fields that cannot be documented.

  • frontendHost: the host where the Merchant Center application is running (e.g. mc.commercetools.com)
  • mcApiUrl: the API URL of the Merchant Center (https://mc-api.commercetools.com for projects in EU and https://mc-api.commercetools.co for projects in US)
  • location: the location where the Merchant Center is running, usually eu or us
  • env: the environment where the Merchant Center is running, usually production or staging
  • cdnUrl: the URL where the static assets are stored
  • servedByProxy: a flag to indicate if this application is running behind the Merchant Center proxy or not, usually true for production and false for local development

Renamed configuration prop of <ApplicationShell>

The prop configuration of <ApplicationShell> has been renamed to environment, to make it less confusing.

Imports

All packages now expose named exports and no longer support imports from paths inside the packages.

// Before
import AsyncLocaleData from '@commercetools-frontend/i18n/async-locale-data';

// After
import { AsyncLocaleData } from '@commercetools-frontend/i18n';

This also includes the <ApplicationShell>. You now need to import { ApplicationShell } from '@commercetools-frontend/application-shell';

Published packages are now bundled to ESM and CJS

Previously we were shipping untranspiled code, requiring consumers of the packages to instruct webpack to include those packages in the transpilation process. Now that we ship transpiled code, it's not necessary to include those packages in your webpack source folders anymore:

const path = require('path');
const createWebpackConfigForDevelopment = require('@commercetools-frontend/mc-scripts/config/create-webpack-config-for-development');

const distPath = path.resolve(__dirname, 'dist');
const entryPoint = path.resolve(__dirname, 'src/index.js');
const sourceFolders = [
  path.resolve(__dirname, 'src'),
-  path.resolve(
-    __dirname,
-    'node_modules/@commercetools-frontend/application-shell'
-  ),
-  // ...plus remove all other `@commercetools-frontend` packages
];

createWebpackConfigForDevelopment({
  distPath,
  entryPoint,
  sourceFolders,
});

🚀 Type: New Feature

  • application-shell

    We now expose some test utils from the application-shell package to be able to write component tests using react-testing-library. More info in #60.

  • assets

    A new package has been added, @commercetools-frontend/assets, that contains static image assets that can be accessed directly from it's image folder. More information can be found in it's README

    If you are currently accessing these image assets from ui-kit, then you can switch over to using them from @commercetools-frontend/assets, as they will be removed from ui-kit in a future release.

⛑ Type: Refactoring

1.0.0-rc.3 (2018-11-05)

🐛 Type: Bug

  • mc-http-server
    • #27 refactor(http-server): configure cloudbuilder to wait for 30s before building the docker image (@emmenko)
  • react-notifications
    • #48 fix(components/notification-kinds): do not report error to sentry for invalid_scope (@adnasa)

🔮 Type: Chore

  • application-shell-connectors, permissions, react-notifications, sdk, sentry
    • #34 chore: define peer deps for other packages, ref #20 (@emmenko)

1.0.0-rc.2 (2018-10-26)

⛑ Type: Refactoring

  • application-shell
    • #25 refactor(navbar): fetch only active applications from project extension (@emmenko)

1.0.0-rc.1 (2018-10-23)

🐛 Type: Bug

  • application-shell
    • #18 feat(quick-access): support opening quick access when link has focus (@dferber90)
    • #24 fix(application-shell): to use expiry not expired in project list (@tdeekens)
    • #15 fix(nav-bar): widen expanded navbar to fit spanish support text (@montezume)

🔮 Type: Chore

  • application-shell, react-notifications

🚀 Type: New Feature

  • application-shell
    • #22 [application-shell]: Allow passing project key as variable on operation (@tdeekens)

1.0.0-rc.0 (2018-10-16)

💥 Type: Breaking Change

  • application-shell

The <ApplicationShell> now requires a prop named applicationMessages, which is an object containing intl messages (e.g. { en: {}, de: {} }). Each Merchant Center application should now extract its own i18n messages and pass them to the <ApplicationShell>. To extract the intl messages, use the mc-scripts extract-intl command:

$ mc-scripts extract-intl --output-path=$(pwd)/i18n/data 'src/**/!(*.spec).js'

💅 Type: Enhancement

  • application-shell
    • #12 fix(navbar): adds Scrollable and FixedMenu (@lufego)

1.0.0-beta.36 (2018-10-15)

🐛 Type: Bug

  • application-shell
    • #8 fix(quick-access): fix cart-discount-list route (@dferber90)
    • #1 fix(app-shell/quick-access): missing dep, log if component cannot be loaded (@emmenko)

🔮 Type: Chore

  • application-shell
    • #2 chore(navbar/feature-toggles): remove PRODUCT_TYPE_ADMINISTRATION (@adnasa)
  • i18n
  • mc-scripts
    • #6 refactor(create-webpack-config-for-*): correct naming of color-mod, change order of execution (@adnasa)

1.0.0-beta.35 (2018-10-10)

🔮 Type: Chore

  • application-shell
    • #2 chore(navbar/feature-toggles): remove PRODUCT_TYPE_ADMINISTRATION (@adnasa)

1.0.0-beta.34 (2018-10-09)

This is the first release after the code has been moved to this public repository. From now we will update the changelog on every new release.

There isn't an official changelog prior to this version.